如何在Konsole转发“<ctrl> - <tab>”?</tab> </ctrl>

时间:2010-04-15 18:11:00

标签: c++ emacs tabs kubuntu konsole

我想在C ++模式下使用Emacs中的智能标签,但我还希望能够在必要时插入标签字符。在其他帖子中,我认为最简单的方法是将<Ctrl>-<Tab>绑定到缩进。但是,KUbuntu中的Konsole似乎不会转发<Ctrl>

我当前的.emacs文件包含:

(defun my-c-mode-common-hook ()  
 (setq c++-tab-always-indent t)
 (setq tab-width 4)
 (setq indent-tabs-mode t)
 )

(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

(global-set-key [C-tab] 'self-insert-command)

所以我相信这会将<Ctrl>-<Tab>绑定到插入制表符。但是,当我跑:

<Ctrl>-h k <Ctrl>-<Tab>

Emacs仅报告我按Tab键。是否有一些选项到Konsole(我搜索无效)或KUbuntu中的全局首选项,我需要设置,以便<Ctrl>-也被转发? (它肯定会转发所有其他<Ctrl>-blah命令。)

2 个答案:

答案 0 :(得分:3)

您可以使用Control-Q(引用,我想到的是为了记住这个),然后按Tab键,您将插入制表符。您可以使用Control-Q插入所需的任何字符序列。希望这可以帮助。 :)

答案 1 :(得分:2)

我必须解决同样的问题,我在这里找到答案: http://www.linux-archive.org/ubuntu-user/189410-equivalent-xterm-vt100-translations-string-gnome-terminal.html

我做的是以下几点。

  1. 准备我自己的konsole密钥绑定自定义文件 〜/ .kde /共享/应用/的konsole / Linux的custom.keytab
  2. 通过指定我自定义的keytab

    来运行konsole

    %konsole --keytab linux-custom

  3. 绑定Emacs中的键

  4. 我在linux-custom.keytab中的绑定是

    key Tab   +Control       : "\E[4t" # control tab will generate esc [ 4 t
    key Backtab              : "\E[4s" # shift tab will generate esc [ 4 s
    

    (我不知道任何分配密钥代码的规则,所以我选择了一些尚未使用的代码。)

    在我从.emacs调用的Emacs自定义文件中,我添加了以下绑定

    (define-prefix-command 'terminal-key-map)
    (global-set-key (kbd "\e[") 'terminal-key-map)
    (define-key terminal-key-map (kbd "4t") 'other-window) ;control tab
    (define-key terminal-key-map (kbd "4s") 'other-window) ;shift tab
    

    我也以同样的方式定制了其他键,例如control ;control 'control =等。