ターミナルでC-,やC-.に割り当てたい
無理らしいです…
たぶん不可能です。ターミナルの上で動いているアプリケーションにはターミナル経由で文字コードしか渡せません。ASCII文字の制御コードは0x00〜0x1fの32種類しか覆?0x40〜0x5fの文字とCtrlキーの同時押しに割り当てられています。
つまり使える組み合わせは以下のものだけです。
C-@(C-SPC), C-a 〜 C-z, C-[, C-?, C-], C-^, C-_X上ではすべてのキーがイベントを起こすので、任意の通常キーと任意のモディファイキーの組み合わせを使えるわけですが、ターミナルではそうはいかないということですね。
2002-02-22追記。
片山@PFUさんのフォローでうまくいったっす。
まとめるとこんな感じ。(googleのアーカイブ)
* 目的 xterm, kterm などの中で emacs -nw で起動した Emacs で、C-. や C-, にキー バインドしたい。 * 方法 ~/.Xdefaults に以下を設定。 KTerm*VT100.Translations: #override \ Shiftspace: begin-conversion(JAPANESE_CONVERSION) \n\ !Ctrl period: string(0x1b) string("[34~") \n\ !Ctrl comma: string(0x1b) string("[33~") XTerm*VT100.Translations: #override \ !Ctrl period: string(0x1b) string("[34~") \n\ !Ctrl comma: string(0x1b) string("[33~") ~/.emacs に以下を設定。 (global-set-key [f20] FUNC-FOR-CONTROL-PERIOD) (global-set-key [f19] FUNC-FOR-CONTROL-COMMA) * 説明 ターミナルの上で動いているアプリケーションにはターミナル経由で文字コー ドしか渡せません。ASCII文字の制御コードは0x00〜0x1fの32種類しかなく、 0x40〜0x5f の文字とCtrlキーの同時押しに割り当てられています。つまり使 える組み合わせは以下のものだけです。 C-@(C-SPC), C-a 〜 C-z, C-[, C-?, C-], C-^, C-_ 従って (global-set-key [??C-.] FUNC) などとしてもターミナルの中の Emacs は反応しない。 一方、X 上ではすべてのキーがイベントを起こすので、任意の通常キーと任意 のモディファイキーの組み合わせ (C-.とか) であまり使わないキー (F20とか) の keysym を発生させるように Translations クラスで設定し、Emacs 側で F20 に global-set-key すればよい。 * 参考 # 間違っているかもしれませんが参考までに。 rxvt では Translations が実装されていないようなのでこの方法は使えない。 Emacs 側でのファンクションキーと keysym の対応 ("[34~"は f20 であるな ど) を確認するには、/usr/local/share/emacs/VERSION/lisp/term/lk201.el を見ればよい。
mlterm
# ~/.mlterm/key Control+slash = "\x1b[23~" # F11 Control+Tab = "\x1b[24~" # F12 Control+comma = "\x1b[25~" # F13 Control+period = "\x1b[26~" # F14 Control+apostrophe = "\x1b[28~" # help F15? Control+semicolon = "\x1b[29~" # menu F16? Control+minus = "\x1b[31~" # F17 Control+equal = "\x1b[32~" # F18 Control+Shift+plus = "\x1b[32~" # F18 Control+Mod+space = "\x1b[33~" # F19
iTerm2
Preferences→KeysのGlobal Shortcut Keys
^/ Send Hex Codes: 0x1b 0x5b 0x32 0x33 0x7e #F11 ^TAB Send Hex Codes: 0x1b 0x5b 0x32 0x34 0x7e #F12 ^, Send Hex Codes: 0x1b 0x5b 0x32 0x35 0x7e #F13 ^. Send Hex Codes: 0x1b 0x5b 0x32 0x36 0x7e #F14 ^' Send Hex Codes: 0x1b 0x5b 0x32 0x38 0x7e #F15 ^; Send Hex Codes: 0x1b 0x5b 0x32 0x39 0x7e #F16 ^- Send Hex Codes: 0x1b 0x5b 0x33 0x31 0x7e #F17 ^= Send Hex Codes: 0x1b 0x5b 0x33 0x32 0x7e #F18 ^⌘Space Send Hex Codes: 0x1b 0x5b 0x33 0x33 0x7e #F19