最近tmux+VimをやめてMac版GVimであるMacVimを使うようになりました。
MacVimへ移行した理由
これまでMacVimを敬遠してきました。というのも
- ターミナル上で動くのがVimのいいところだと思う
- tmux上でVimとシェルを行き来するのに慣れてしまった(tmuxから出たくない)
- 改めて設定するのが面倒くさかった
からなのですが、最近は
- tmux上のVimの描画がおかしくなることが多い
- いちいち
:redraw!
を実行するのがつらい(キーバインドを実行するのすら面倒)
- いちいち
- tmux用のエスケープキーが惜しい
という感じであまり上手く行っていませんでした。そこで先日から重い腰を上げてMacVimを試しに使っています。で、その結果としては
- 体感でターミナル上よりさくさく動く(tmuxのオーバーヘッドが無いから?)
- tmuxのpane切り替えを、OS Xのアプリケーション切り替えに変えるだけ
- tmuxのステータスラインが無くなった分、使える画面領域が若干増えた
- 改めて設定することはほとんど無かった
- tmux用のエスケープキーが開放された(私の場合は
Ctrl-J
) - 色の細かい制御ができるようになった
のでこのままMacVimに移行しようと決心しました。MacVimいいよ
MacVimに行った設定
MacVimを使う上で行った設定は下記3つ
- ターミナルから新しいタブを開いてファイルを編集する
- 文字サイズを設定する
- 挿入モードを抜けるときに自動的に英数入力に切り換える
ターミナルから新しいタブを開いてファイルを編集する
基本的にファイルはVimから直接(unite.vimとか使って)開くけど、ターミナルからファイルを選択することもあります。
その場合、既にMacVimが立ち上がっているなら、新しいウィンドウを作るのではなく、既存のものに新しいタブを作って開いて欲しい、と思いました。
で探してみるとMacVimの [Preferences] -> [General] -> [Open files from applications]
に [in the current window] -> [with a tab for each file]
という設定があったのでそれを選択。
そして、ターミナルから開くために下記を.zshrcに追記しました。
case ${OSTYPE} in
darwin*) # Mac OS X
function macvim () {
if [ -d /Applications/MacVim.app ]
then
[ ! -f $1 ] && touch $1
open -a MacVim $1
else
vim $1
fi
}
alias vim='macvim'
;;
esac
これでzsh上で% vim path/to/file
とやればMacVim上の新しいタブでファイルを開くことができます。
ちなみにgvim
コマンドだと上手くいきませんでした。
文字サイズを設定する
MacVimのデフォルトの文字サイズがやたらと小さいのでそれを指定します。フォントにはRictyを使うようにしました。
ホームディレクトリに.gvimrcファイルを置いとけばMacVimが勝手に読んでくれます。
set guifont=Ricty:h16
h16
というのが文字の大きさです。Google先生に聞いた限り、フォントを指定せずに大きさだけを変更することはできない気配がします。
挿入モードを抜けるときに自動的に英数入力に切り換える
挿入モードで日本語入力をしていて、ノーマルモードにCTRL-[
などで抜けたときに、自動的に英数字入力に戻さないと死んでしまう病気にかかっているので、KeyRemap4MacBookに新しい設定を追加しました。
<?xml version="1.0"?>
<root>
<appdef>
<appname>MACVIM</appname>
<equal>org.vim.MacVim</equal>
</appdef>
<list>
<item>
<name>Leave InsMode with EISUU(MacVim)</name>
<identifier>private.app_macvim_esc_with_eisuu</identifier>
<only>MACVIM</only>
<autogen>
--KeyToKey--
KeyCode::ESCAPE,
KeyCode::ESCAPE, KeyCode::JIS_EISUU
</autogen>
<autogen>
--KeyToKey--
KeyCode::C, VK_CONTROL,
KeyCode::C, VK_CONTROL, KeyCode::JIS_EISUU
</autogen>
<autogen>
--KeyToKey--
KeyCode::BRACKET_LEFT, VK_CONTROL,
KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_EISUU
</autogen>
</item>
</list>
</root>
KeyRemap4MacBookの設定の仕方はこの記事参照
MacVimにしてよかったその他のこと
tmux用のエスケープキーバインドが開放された
最初にも書いたようにtmux用のエスケープキーに使っていたCTRL-J
が開放されました。
なので個人的に使用頻度の高いvim-easymotionに割り当てました。
NeoBundle 'Lokaltog/vim-easymotion'
let g:EasyMotion_mapping_j = '<C-j>'
let g:EasyMotion_mapping_k = '<C-k>'
これを設定してから、これまでほとんど使って来なかったi_CTRL-O
が神機能に昇格しました。
色の表現力が上がった
例えばvim-indent-guidesのg:indent_guides_color_change_percent
オプションなどはiTerm2上にいた頃は上手く機能させられていなかったのですが、MacVimに来たら何もしなくてもきちんと描画のされ方が区別されるようになりました。
やったー
まとめ
MacVim意外といいよ!