[emacs][改造] MetaキーをEscから、Fnに変更する その2

 emacs改造ねたその2. MetaをFnキーに使う方法について考えてみました。

Fnキーはあまり使われていませんが、Emacsを扱う際にはそこそこに役に立ちそうなので、何とかして使えないかと考えて見ました。

やり方は以下のとおり

emacsのmain関数(emacs.c)に、以下のようにkeyboardを初期化している部分があります。

      keys_of_casefiddle ();
      keys_of_cmds ();
      keys_of_buffer ();
      keys_of_keyboard ();
      keys_of_keymap ();
      keys_of_macros ();
      keys_of_minibuf ();
      keys_of_window ();
      keys_of_frame ();

ここにある、keys_of_keymap内でMetaキーの配置などが決められています。具体的には以下のコード

void
keys_of_keymap ()
{
  initial_define_key (global_map, 033, "ESC-prefix");
  initial_define_key (global_map, Ctl('X'), "Control-X-prefix");
}

で設定されています。というわけで、改造するにはここら辺を好きなようにいじればいいということが分かります。

実際にMetaをFnキーに変更する場合は、引数の033を034にすればいいということが分かります。なぜかというと引数033はAsciiコードでEsc, 034はFnとなっているからです。