ターミナルエミュレータに"Ctrlキー+何か"で送信できる範囲 - すぎゃーんメモ の記事の続き。コメントにてid:masutaka26さんに教えていただきました。こんな方法があるそうで。
工夫と趣向と分別と。ターミナルのEmacsでも特殊キーコンボ - 工夫と趣向と分別と。
全然知りませんでした。Emacsにはデフォルトで以下のように修飾キーを押しながらキーを押したとみなすような関数が定義されているそうで
C-x @ S event-apply-shift-modifier C-x @ a event-apply-alt-modifier C-x @ c event-apply-control-modifier C-x @ h event-apply-hyper-modifier C-x @ m event-apply-meta-modifier C-x @ s event-apply-super-modifier
C-x @ c ;
と押せば
iTerm2の場合、設定から以下のようにすることで"C-;"のときにC-x @ c ;
というキー操作を送ることができる。
ので、こう設定しておくと、iTerm2上で動くEmacsにも
ちゃんとEmacsで受け取れてますね。上記記事によるとその他のキーストロークも方法次第でどうにか送ることができるようで。
ただ、この設定は"iTerm2での"設定なので、Emacsを起動していない状態のシェルなどでもC-x @ c ;
が送られることになってしまう。意図しない動作にならないよう気をつける必要があるし、またこういったシーケンスの送信を設定できないターミナルエミュレータを使った場合に無力になってしまう。ターミナルエミュレータソフトに依存することになってしまうので、結局ターミナル上でEmacsを使うことを考えるならば"C-;"のようなキーバインドは避けておいた方が無難だと思いました。