今回は Emacs です。
以前から使ってはいたのですが、ここを参考に設定しなおしてみようかと思いまして。
とりあえず Ubuntu Linux の仮想マシンを用意して Putty でログインして Emacs をいじっていました。
で、サンプルの通りにキーバインド「C-,」を割り当てて使ってみると動きません。
現在の割り当てを調べる「C-h c C-,」を使ったところ、どうも「C-,」が Linux に入っていないようでした。
この問題については最終的にこのサイトを参考にして解決できました。
該当ページ中から「xterm風定義」リンクを辿ると他のキー一覧もあります。
その中でカンマを示す「VKey188」の行ですが、以下(4番目が \033[27;6;60~)が正しいのではないかと思います。
VKey188=\054,<,\033[27;5;44~,\033[27;6;60~,\033\054,\033<,\033[27;13;44~,\033[27;14;60~
引き続いて「C-M-v」の別ウィンドウスクロールの逆方向版を「C-M-S-v」(Shift を追加する)に割り当てようとしましたが、こちらは解決できませんでした。
「C-,」と同様に「VKey…」を追加すればいいかと思って下のように色々試したのですがダメでした。
試した内容
- VKey86=,,,,,,,\033[27;14;118~
- VKey86=,,,,,,,\033[27;14;86~
- VKey86=,,,,,,,\033[27;14;v~
- VKey86=,,,,,,,\033[27;14;V~
- VKey86=,,,,,,,\033[27;5;118~
- VKey86=,,,,,,,\033[27;5;86~
- VKey86=,,,,,,,\033[27;5;v~
- VKey86=,,,,,,,\033[27;5;V~
カンマ区切りのキーコード出力部の内容は 「\033[27;≪修飾コード≫;≪キーコード≫~」だろうと思っています。
この中にある「27」は多分 Escape キーの VKey コードでしょう。
どれも思うようにいかなかったので、現在はエスケープシーケンスの規則を調査中です。
参考サイトに書いてある気もしますが、英語を読むのが面倒なので Try&Error で頑張ります。
参考サイト
- 仮想キーコード(VKey)についてはMicrosoft 公式かこちら
- キーコードについてはASCII Table - ANSI Escape Sequences
- 修飾コードについてはXTerm Control Sequences
ちなみに「C-,」問題は nadoka で「key C-Comma = &SendText("\e[27;5;44~")」でも解決できましたが、対象文字列を入れる時に一文字ずつ(少しだけ)ウェイトがかかって微妙な気分になるので止めました…