3

ターミナルの Emacs での Ctrl-矢印キーバインドについて質問しました。

Emacs Ctrl 修飾子がコンソールで機能しない

そして、Linux 端末エミュレーターはこの組み合わせを処理しないと言われました。loadkeysこれらのキーを処理するコマンド用のファイルを作成できました。

control keycode 105 = F100
string F100 = "\033[[left"
control keycode 106 = F101
string F101 = "\033[[right"

次に、ルートからロードします。

#loadkeys ./funcskeys

その後、コンソールで Ctrl-right または Ctrl-left をクリックするたびに、「右」または「左」が出力されます。これを Emacs で処理する必要があります。この質問から私が理解する限り:

Emacs 23.1.1 でのバインド M-<up> / M-<down>

関数を使用して行う必要がありinput-decode-mapます。しかし、私はそれを機能させることができませんでした。助けてください。

4

1 に答える 1

6

「funcskeys」ファイルを少し変更して、次のエスケープ シーケンスを生成します。

control keycode 105 = F100
string F100 = "\033[1;5D"
control keycode 106 = F101
string F101 = "\033[1;5C"

.emacs次に、次の行をファイルに追加します。

(define-key input-decode-map "\e[1;5C" [(control right)])
(define-key input-decode-map "\e[1;5D" [(control left)])

loadkeysEmacsを実行して再起動するCTRL+leftと、動作CTRL+rightするはずです。次のように入力して、これを確認できます。

C-h k C-right

C-h k C-left

これらのキーストロークを などのコマンドに実際にバインドするには、次の行もファイルforward-wordに追加する必要がある場合があります。.emacs

(global-set-key [(control right)] 'forward-word)
(global-set-key [(control left)] 'backward-word)

この全体的なアプローチは、具体的にはキーの組み合わせCTRL+leftCTRL+right機能のみを行うことに注意してください。たとえば、作成/機能したり、キャラクターに関連するその他のキーの組み合わせはありませんALT+leftALT+rightCTRL

于 2012-11-06T13:35:34.283 に答える