LoginSignup
3
3

More than 5 years have passed since last update.

Vim以外でVimっぽくctrl+hjklカーソル移動する。(Macのみ)

Posted at

新参弱Vimmerなのでお手柔らかに…
タイトルにあるように、Macユーザー向けです。
hjklじゃなくて、ctrl+hjkl です。悪しからず。

vim使い始めるとhjklでのカーソル移動に慣れてしまって、カーソルキーまで移動するのが億劫に…
ブラウザはChromeなのでVimiumはもちろん導入しました。

で、当然ながら他の環境でもhjklしたくなるじゃないですか?

そこで、登場するのがKeyRemap4MacBookです。
名前にMacBookって入ってますが他のMacでもいけます。

名前の通りKeyをremapするものです。
そもそもKeyRemap4MacBookには
normal mode,visual modeとかが簡単に利用できる設定も存在します。

僕の場合は、normal modeに入ったりしないでctrl+hjklでのカーソル移動だけ使えりゃいい && MacVim使ってる時は無効化したいので自分で書きました。如何にも新参弱Vimmerっぽいですね!!

private.xml
<?xml version="1.0"?>
<root>
  <appdef>
    <appname>MACVIM</appname>
    <equal>org.vim.MacVim</equal>
  </appdef>

  <item>
    <name>Control_L + hjkl to Left/Down/Up/Right except MacVim</name>
    <identifier>private.vim_mode_except_vim</identifier>
    <not>MACVIM</not>
    <autogen>__KeyToKey__ KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::CURSOR_LEFT</autogen>
    <autogen>__KeyToKey__ KeyCode::J, ModifierFlag::CONTROL_L, KeyCode::CURSOR_DOWN</autogen>
    <autogen>__KeyToKey__ KeyCode::K, ModifierFlag::CONTROL_L, KeyCode::CURSOR_UP</autogen>
    <autogen>__KeyToKey__ KeyCode::L, ModifierFlag::CONTROL_L, KeyCode::CURSOR_RIGHT</autogen>
  </item>
</root>

自分で設定を追加する手順は公式にある通りです。


備忘録的にちょっと解説書くと
下記部分が設定内で指定したいアプリケーションの割り当て。

  <appdef>
    <appname>MACVIM</appname>
    <equal>org.vim.MacVim</equal>
  </appdef>

appnameは自分のわかりやすいように決めて大丈夫。あとで使う。
equalはKeyRemap4MacBook同梱アプリのEventViewerで確認します。

  1. KeyRemap4MacBook上部の Misc&Uninstallタブ を選択。
  2. Launch EventViewerで起動。
  3. 上部appタブを選択してからアプリを切り替えると、切り替えたアプリの履歴が出るのでApplication Bundle Identifier を確認。

といった感じです。
で、下記で具体的なremapの指定。

  <item>
    <name>Control_L + hjkl to Left/Down/Up/Right except MacVim</name>
    <identifier>private.vim_mode_except_vim</identifier>
    <not>MACVIM</not>
    <autogen>__KeyToKey__ KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::CURSOR_LEFT</autogen>
    <autogen>__KeyToKey__ KeyCode::J, ModifierFlag::CONTROL_L, KeyCode::CURSOR_DOWN</autogen>
    <autogen>__KeyToKey__ KeyCode::K, ModifierFlag::CONTROL_L, KeyCode::CURSOR_UP</autogen>
    <autogen>__KeyToKey__ KeyCode::L, ModifierFlag::CONTROL_L, KeyCode::CURSOR_RIGHT</autogen>
  </item>

nameはremapの名前。そのまんまですね。この名前が設定画面に表示されます。
identifierは…忘れたw
notはこのremapを除外するアプリを指定します。ここでさっきappdefで割り当てたnameを書いてやります。
最後にautogenに肝心のremapを書きます。ここの書き方はググるといっぱい出てくるので割愛。

このファイルを読み込んでやると、設定一覧に出てくるのでチェックを入れるだけです!

スクリーンショット 2014-01-14 4.11.01.jpg

これでカーソルキーまで手を伸ばさなくても!カーソルが!移動!で!き!r!u!

最後に一言

exceptって単語使い方あってるのかな…間違ってたら指摘して下さい…

3
3
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
3
3