「CTRL +矢印/秒」のgnome-terminal ANSIエスケープシーケンスとは何ですか?


10

~/.inputrcこれらの設定にbashを構成しようとしています
(注:左および右矢印キーを意味します)

  • Ctrl+ -単語に戻る必要があります
  • Ctrl+ -単語を先にジャンプする必要があります

現在私はこれを持っていますが、~/.inputrc動作しません。Ctrl + arrow何も生成しません。

"\eC-5C":forward-word
"\eC-5D":backward-word

私のエスケープシーケンスが間違っていると確信しています。組み合わせの
正しいエスケープシーケンスは何Ctrl + arrowですか?

  • 端末:gnome-terminal内のtmux

回答:


14

Gnome-terminal(より正確にはVTE)は、xtermのエスケープシーケンスの一部のバージョンを模倣します。これがどれほど厳密に行われるかは、VTEのバージョンによって異なります。

関連するxtermのドキュメントは、XTerm Control SequencesPCスタイルのファンクションキーセクションにあります。

あなたが探しているのは、\e[1;5D(コントロールの左矢印の)のような文字列で、5control修飾子を示します。

ncursesベースでは、あなたが使用してこれらの文字列を見ることができるinfocmp -xの値として、kUP5kDN5kLFT5kRIT5。例えば:

    kDN5=\E[1;5B,
    kLFT5=\E[1;5D,
    kRIT5=\E[1;5C,        
    kUP5=\E[1;5A,

応答とリソースへのリンクに感謝します。これで問題は解決しました!
the_velour_fog 2016

16

キーシーケンスのコードを見つける最も簡単な方法は、ctrl- を使用することvです。

したがって、入力ctrl Vctrl て取得するには:

^[[1;5C

ESC[1;5Cまたはを書く方法\e[1;5Cです。


わあ、かっこいい。それがgnome-terminalの意図した機能か、それとも偶然発見されたものか知っていますか?
the_velour_fog 2016

zsh(bindkey|grep 'quoted-insert')とbash(bind -p|grep 'quoted-insert')の両方に、キーバインドを設定して、キーコードをに設定して出力します<c-v>
kbaは、2016

1
Ctrl-Vは、Vimの挿入モードとコマンドモードで同じ機能を実行します。
joeytwiddle 2016

4
@the_velour_fog Ctrl + Vは、「次の文字を端末コマンドとして解釈するのではなく挿入する」という意味で、UNIXの初期の頃から使用されています。それは...、などのbash、zshの、viなど、より洗練された入力システムによって模倣しているなら、カーネルのコマンドライン処理の機能です
ジル「SO-停止されて悪」

1
@kba記録のために、彼らだけではありません。Bashは、依存しているGNU Readlineライブラリによって実際に提供されます。これは、Bashをバインドして<c-q>、コピーしているEmacsキーバインドと一致させることもできます。zshのも、両方にバインド<c-v>して<c-q>いますが、皮肉なことに、十分なVimのモードを有効にする場合にのみ。Readlineは、Pythonのimport rlcompleter拡張機能など、他のものでも使用されます。(情報源:tiswww.case.edu/php/chet/readline/readline.html#SEC9およびman zshzle
ssokolow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.