ターミナルで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\
 !Ctrlperiod: string(0x1b) string("[34~") \n\
 !Ctrlcomma: string(0x1b) string("[33~")

XTerm*VT100.Translations: #override \
 !Ctrlperiod: string(0x1b) string("[34~") \n\
 !Ctrlcomma: 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