こんにちは@toshikimiyagawaです。
最近会社のPCをmacにしました。
それとともにメインエディタをemacsからvimにしてみました。
ただ、emacsからvimに乗り換えるにあたって困ったことが1点ありました。
emacsではCtrl-;にother-window-or-splitを
Ctrl-:にanythingを割り当てていました。
しかし、vimではCtrl-;やCtrl-:にコマンドを割り当てられないようです。
これらのキーバインドは体に染み付いちゃってるので、vimでも同じ動きしてほしいし、
こんな特等席にあるキーを有効利用しない手は無いので、無理矢理割り当ててみます。
必要なソフトのインストール
vim
もちろん最初はvimからですね。今回はGUI版のvimを利用します。
こちらに日本語ローカライズされた良さげなvimがあるので、こちらをインストールします。
KeyRemap4MacBook
これであるキーバインドを別のキーバインドに割り当てることができます。こちらからダウンロードしてインストールします。
KeyRemap4MacBookの設定
必要なソフトをインストールしたら次はKeyRemap4MacBookの設定をします。
これにより、Ctrl-;などのvimが認識できないキーバインドを
Ctrl-Option-Aなどといったvimが認識できて、
かつあまり使わないだろうと思われるキーバインドに置き換えます。
まず起動するとこのような画面が出てきます。
上のタブのMisc & Uninstallをクリックしましょう。
するとこのような画面が出てくるので、Open private.xmlをクリックして、
Finderに出てくるprivate.xmlを開きます。
開いてprivate.xmlを以下のように書き換えましょう。
<?xml version="1.0"?> <root> <appdef> <appname>MACVIM</appname> <equal>org.vim.MacVim</equal> </appdef> <item> <name>Vim Keybind</name> <item> <name>vim keybind</name> <identifier>private.com.vim.MacVim.keybind</identifier> <autogen>__KeyToKey__ KeyCode::SEMICOLON, ModifierFlag::CONTROL_L, KeyCode::A, ModifierFlag::CONTROL_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen> <autogen>__KeyToKey__ KeyCode::JIS_COLON, ModifierFlag::CONTROL_L, KeyCode::B, ModifierFlag::CONTROL_L | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen> <only>MACVIM</only> </item> </item> </root>
保存した後Change Keyの画面でReloadXMLをクリックしてリロードすると
左のようにVim Keybindという項目が出てきますので、そこをクリックすると出てくる
vim keybindという項目にチェックを入れてください。
.vimrcの設定
最後に.vimrcに以下を追加します。
uniteのインストールは他のサイトを参考にしてください。
また<81>はCtrl-V,Ctrl-;で、<82>はCtrl-V,Ctrl-:で入力してください。
function OtherWindowOrSplit() if winnr("$") > 1 :wincmd w else :vsplit endif endfunction noremap <81> :call OtherWindowOrSplit()<cr> noremap <82> :Unite -vertical buffer file_mru directory_mru file<cr>
これでCtrl-;でOtherWindowOrSplitが呼び出され、Ctrl-:でUniteが呼び出されます。
それではみなさん快適なvim生活を。