LoginSignup
6
6

More than 5 years have passed since last update.

Macのターミナル上で起動しているVimでノーマルモードに移行する時にIMEをOFFにする方法

Posted at

やりたいことは、シンプルで、Vimのノーマルモード移行時にIMEをオフにするというものです。これには、ノーマルモード移行キーとIMEをオフにするキーを組み合わせます。

私の場合は、C-jでノーマルモードに移行しますので、好みの問題ですが、これは適時読み替えてください。ちなみに、今回採用する方法は、Vimの設定は基本不要になります。

imap <C-j> <ESC>

BetterTouchToolを使った方法

BetterTouchToolというアプリを使うのですが、これはショートカットキー、タッチパッドなどを設定するアプリです。個人的にはこのアプリに頼りたくないのですが、既存の方法が全滅でしたので、とりあえずこのアプリで設定しました。誰か、シンプルな方法を知っていたら、ぜひ教えて下さい。

図にするとこんなかんじでキーを設定します。Select ApplicationはGlobalでも良いし、Terminalを指定してもよいです。ここで、Ctrl+Jには、Attach Additional Actionを設定することも忘れずに。

Ctrl+J ---> Ctrl+Shift+;
       |
       ---> Ctrl+[ 

解説ですが、私の場合は、Google IMEを使用していて、英数に切り替えるショートカットキーがCtrl+Shift+;なのです。

ちなみに、これは独自に設定できます。例えば、以下の設定などが便利ですね。

これをしておくと、ターミナルを除くほとんどのアプリでC-Jを押すと、IMEをオフに出来ます。しかし、何故かターミナルでは有効になりませんでした...。

Karabiner

2015年05月、前まで使っていた方法が何故か使えなくなってしまいました。

今までは、Karabinerというアプリを使って、特定のキーをEscape, JIS_EISUU(英数)に割り当てていました。

private.xml
<?xml version="1.0"?>
<root>
  <list>
    <item>
      <name>LeaveInsMode with EISUU(Terminal)</name>
      <identifier>private.app_terminal_esc_with_eisuu</identifier>
      <only>TERMINAL</only>
      <autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
      <autogen>--KeyToKey-- KeyCode::J, VK_CONTROL, KeyCode::J, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
    </item>
  </list>
</root>

割り当て方法としては、アプリの仕様変更などがあったかもしれないと、様々な方法を使ってみたのだけど、何故か有効にならない。アクセシビリティでも権限与えてるはずなんだけどな...。

とりあえず、それは置いておいて、これは、Custom Settingと呼ばれるもので、所定の形式で書かれたXMLファイルを読み込むと、nameで指定された項目が表示され、その設定を有効にできるというものです。設定をチェック後は、Reload XMLで独自の設定が読み込まれ、有効になります。

デフォルトではprivate.xmlなので私はそれを使っていますが、ファイルは指定することもできます。

内容を見ていくと、例えば、以下のようになります。

private.xml
 <autogen>

 --KeyToKey-- 
 KeyCode::ESCAPE, 
 KeyCode::ESCAPE, 
 KeyCode::JIS_EISUU

 </autogen>

これは、ESCが押された場合、ESC,JIS_EISUUの順にキーを押すというか、キーを変換します。

つまり、ESC -> ESC, 英数となるわけですね。また、onlyでは、キーを有効にするアプリを指定できます。ここでは、TERMINAL(ターミナルのこと)を指定していますが、他には、VI, MACVIMなども指定できます。

ちなみに、指定できるキーコードは以下のページが参考になります。USではなくJISキーボードの場合は、前にJIS_をつける点に注意です。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6