リターンキーを修飾キーに変える in MacOSX Emacs

Returnキーを修飾キーに出来るとなると、かなり便利な位置にあることがわかり、次の結果が得られました。

  • Return/C-mの代わりにC-jを使う
  • M-キーが押しやすくなった
  • Return単体で押されると通常のReturnとして働く
  • Emacs内だけではそれもglobal-unset-keyして無効にする
  • しかしミニバッファやDiredなどにはそのままReturnとして機能する
  • Mac OSX側にはReturn単体の場合通常のReturnを返すのであまり影響はない。

定番中の定番のKeyRemap4MacBookを使うわけですが、Return to Control_Lがあるのにもかかわらず。Return to Control_Rがなかったので、アプリ内のファイルを参考に書き換えさせてもらいました。

次の設定から個人用のカスタマイズができるので、下のコードを貼付けて保存します。

keyremap4macbook return to right control


<?xml version="1.0"?>
<root>
  <item>
    <name>Change Return Key R</name>
    <item>
      <name>Return to Command_R</name>
      <identifier>remap.return2commandR</identifier>
      <autogen>__KeyToKey__ KeyCode::RETURN, KeyCode::COMMAND_R</autogen>
    </item>
    <item>
      <name>Return to Control_R</name>
      <appendix>(+ When you type Return only, send Return)</appendix>
      <identifier>remap.return2controlR_return</identifier>
      <autogen>__KeyOverlaidModifier__ KeyCode::RETURN, KeyCode::CONTROL_R, KeyCode::RETURN</autogen>
    </item>
    <item>
      <name>Return to Control_R</name>
      <appendix>(+ When you type Return only, send Return) + [KeyRepeat]</appendix>
      <identifier>remap.return2controlR_return_keyrepeat</identifier>
      <autogen>__KeyOverlaidModifierWithRepeat__ KeyCode::RETURN, KeyCode::CONTROL_R, KeyCode::RETURN</autogen>
    </item>
    <item>
      <name>Return to Option_R</name>
      <identifier>remap.return2optionR</identifier>
      <autogen>__KeyToKey__ KeyCode::RETURN, KeyCode::OPTION_R</autogen>
    </item>
    <item>
      <name>Option_R to Return</name>
      <identifier>remap.optionRreturn2</identifier>
      <autogen>__KeyToKey__ KeyCode::OPTION_R, KeyCode::RETURN</autogen>
    </item>
    <item>
      <name>Return to Option_R</name>
      <appendix>(+ When you type Return only, send Escape)</appendix>
      <identifier>remap.return2optionR_escape</identifier>
      <autogen>__KeyOverlaidModifier__ KeyCode::RETURN, KeyCode::OPTION_R, KeyCode::ESCAPE</autogen>
    </item>
    <item>
      <name>Fn+Return to Option_R</name>
      <identifier>remap.fnReturn2optionR</identifier>
      <autogen>__KeyToKey__ KeyCode::RETURN, ModifierFlag::FN, KeyCode::OPTION_R</autogen>
    </item>
    <item>
      <name>Return to Control_R+F4 (= Move focus to the active (or next) window)</name>
      <identifier>remap.return2controlRf4</identifier>
      <autogen>__KeyToKey__ KeyCode::RETURN, KeyCode::F4, ModifierFlag::CONTROL_R</autogen>
    </item>
    <item>
      <name>Fn+Return to Shift_R+Insert</name>
      <identifier>remap.fnReturn2shiftRinsert</identifier>
      <autogen>__KeyToKey__ KeyCode::RETURN, ModifierFlag::FN, KeyCode::PC_INSERT, ModifierFlag::SHIFT_R</autogen>
    </item>
  </item>
</root>

ReloadXMLを押して反映させ、検索名を入れます。一応、右OptionでReturnが出来るようにしておきました。

keyremap4macbok config

Emacsの設定ファイルには以下を書きます。


(global-unset-key (kbd "RET"))
(setq ns-right-control-modifier 'meta)
;; meta, alt, control, super, hyper

参考

private.xml Reference Manual