iterm2でのキーの再マッピング


15

iTerm2のデフォルトのキーの組み合わせのいくつかを再マップしようとしていますが、キーを「16進コードの送信」にバインドするとどうなるかを理解したいと思います。

以前の投稿は、ctrl-aとctrl-eのキーコンボをそれぞれcmd-leftとcmd-rightに再マッピングするのに役立ちましたが、他のキーコンボも再マップしたいと思います。(前のStackoverflow投稿へのリンク)。

16進コードが関係していることを漠然と理解していますが、何が起こっているのか、何をすべきかを理解するために次にどこに行けばよいのかわからない状態です。


bashとは関係ありません。タグを削除しました。

回答:


16

これらの16進コードは単なるバイトのシーケンスです。たとえば、キーの組み合わせをマッピング0x66 0x6f 0x6fすると、挿入されfooます。0xc3 0xa4UTF-8を使用する場合、äを挿入します。0x1b 0x1b 0x5b 0x43を意味しescape escape [ Cます。

ANSIエスケープシーケンスのような一部のバイトシーケンスや、ASCII制御文字のような単一バイトでさえ、端末では特別な意味を持ちます。

⌘←と⌘→を行の先頭と末尾に移動するには、それらを0x01(キャレット表記の^ A)と0x05(キャレット表記の^ E)に割り当てます。

  • ⌘←:16進コードの送信:0x01
  • ⌘→:16進コードの送信:0x05

単語を前方に削除するには、次のように割り当てます\ed

  • ⌥⌦:送信^ [d

→に⌥⌥変更←と\eb\efITERMの好みにもreadlineのやemacs風のキーバインドをサポートしていないプログラムでそれらを変更します。別のオプションはこれを〜/ .inputrcに追加することです:

"\e\e[D": backward-word
"\e\e[C": forward-word

実行readしてキーの組み合わせを押すと、挿入される文字を確認できます。たとえば、⌥← は^[^[[Dデフォルトで挿入します。ここ^[で、キャレット表記のエスケープです。

http://code.google.com/p/iterm2/wiki/Keybindingsも参照してください


ありがとう。ここで私の質問の解決策を探すとき、私はこの答えに出くわします。特定のキーの組み合わせの16進コードを検索するにはどうすればよいですか?(私は組み合わせに興味を持って私の場合Ctrl+Alt+<char><char>あることijkl及びu
アメリオバスケス・レイナ

6

多くのトリックでキーコード($ 0)をインストールし、自分のショートカットを見つけることをお勧めします。

たとえば、文字を削除するための既定のショートカット(Ctrl-D(⌃D))を既定のショートカットに再マップして、前方削除キー()を押すのと同じくらい簡単にしたい場合、…

  1. アプリを開いて押します Ctrl-D

    キーコードの例

  2. iTerm 2に戻り、iTerm> Preferences> KeysでUnicodeショートカットを追加します

    iTerm 16進コードの送信

注:コピーして貼り付けないで、スペースなしでUnicodeを入力してください。


2

私が見つけた最良の方法は、キーコードを送信することです(@pattulusで説明されているように、またはvimキーバインディングを使用します)。

キーコード上の注意:実際にはあなたはそれが上記のようにUnicode文字列を送信することにより動作させることができない、あなたが修飾子とした場合にGETHERするキーの両方に送信する必要がありますControl+ Dあなたがコードとしてこれを送信するために必要を:コントロールキーモディファイアがありますキーコードから取得できます。0x840101 0x40x840101

vimシーケンスとして送信する場合の注意:iTerm2のドキュメントで説明されているように\<C-d>Control+の送信などのvim-bindings形式でキーコードを送信できますD\重要なことに注意してください)。

個人的には、より読みやすく、後であなたが何をしたかを理解できるので、vimキーバインディングを好みます。


1

Karabinerをご覧ください。

このツール内で、アプリケーションに固有の主要なカスタムマッピングを作成できます。それを支援するいくつかのツールが付属しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.