4

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コマンドを転送します。)

4

2 に答える 2

3

Control-Q(引用符、これを覚えておくために私が考えているもの)を使用してから、Tabキーを押すと、タブ文字が挿入されます。Control-Qを使用して、必要な任意の文字シーケンスを挿入できます。お役に立てれば。:)

于 2010-04-17T06:34:24.663 に答える
2

私は同じ問題を解決しなければならず、ここで答えを見つけました: http://www.linux-archive.org/ubuntu-user/189410-equivalent-xterm-vt100-translations-string-gnome-terminal.html

私がしたことは次のとおりです。

  1. 独自の konsole キー バインド カスタマイズ ファイルを準備する ~/.kde/share/apps/konsole/linux-custom.keytab
  2. カスタマイズしたキータブを指定して konsole を実行します

    % konsole --keytab linux-custom

  3. Emacs でキーをバインドする

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 =しました。

于 2010-11-19T21:48:04.820 に答える