2015-12-04 15 views
8

Emacsに、特定のキーの組み合わせをコマンドにバインドします。しかし、私はEmacsをOS XのiTerm2のターミナルモードで使用しているので、キーコンボを文字エスケープシーケンスに変換し、そのシーケンスをiTerm2で登録してキーの組み合わせを認識する必要があります。特定のキーコンボの対応するエスケープシーケンスを確認してください

しかし、キーの組み合わせを指定して対応するシーケンスを調べるにはどうすればよいですか?例えば、私は^[[1;8Aのようなものは、(私はiTerm2+Escとして機能するようにAltキーを設定している)Ctrlキーに+ Altキー + アップを対応していることを見つけましたが、私はそのキーの組み合わせは、このに変換する方法見当がつかない特定の配列。

特定のキーコンボのエスケープシーケンスをルックアップまたは解決する方法はありますか?たとえば、のシーケンスは何ですか? + Alt + のシーケンスは何ですか?

関連の質問は、誰かが私にiTerm2内の対応する配列とキーのコンボを設定し、Emacs(例えば(define-key input-decode-map "[escape_sequencehere]" [internal_key_representation_here].emacs内部input-decode-mapを使用して、その内部キー表現にシーケンスを変換することとの関係を説明することができますか? Emacsでバインディング作業を行うには、iTerm2に設定するだけで十分であると私には思われます。だから、なぜ、後者を.emacsに設定する必要がありますか? (場合によっては、何らかの作業を行うために両方の必要がある場合もあります)

+0

http://www.emacswiki.org/emacs/EmacsForMacOSやhttp://www.emacswiki.org/emacs/MetaKeyProblemsなどの関連ドキュメントを既に読んでいるとしますか? – jtahlborn

答えて

1

一部のキーの組み合わせは、iTerm2で動作するアプリケーションに直接送信されます。あなたはそれがctrl + vアプローチを使用して

  • In bash, how do I bind a function key to a command?を参照)を取得することができますか

    bash-3.2$ ^[[1;10A (in this case I hit ctrl + v before shift+alt+up) 
    
  • sed -n lは、(それがL小文字です注意してください)。たとえば、あなたが(shift + alt + up)送信した場合、アプリケーションが受け取るものを見ることができます。

    bash-3.2$ sed -n l 
    ^[[1;10A 
    \033[1;10A$ 
    

いくつかのキーの組み合わせを介して取得していない場合、あなたはlet it passiTerm2に指示し、それをマッピングすることができます上記のように検出できるキーの組み合わせです。
例えば、ctrl + alt + cmd + RESC+sdfを送信して、あなたの端末はを受け取り、Emacsのコマンドに割り当てることができます。

関連する問題