LoginSignup
70
69

More than 5 years have passed since last update.

tmux+Vimが不安定なら、いっそMacVimを使おう

Last updated at Posted at 2013-05-18

最近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つ

  1. ターミナルから新しいタブを開いてファイルを編集する
  2. 文字サイズを設定する
  3. 挿入モードを抜けるときに自動的に英数入力に切り換える

ターミナルから新しいタブを開いてファイルを編集する

基本的にファイルはVimから直接(unite.vimとか使って)開くけど、ターミナルからファイルを選択することもあります。
その場合、既にMacVimが立ち上がっているなら、新しいウィンドウを作るのではなく、既存のものに新しいタブを作って開いて欲しい、と思いました。
で探してみるとMacVimの [Preferences] -> [General] -> [Open files from applications][in the current window] -> [with a tab for each file] という設定があったのでそれを選択。
そして、ターミナルから開くために下記を.zshrcに追記しました。

.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が勝手に読んでくれます。

~/.gvimrc
set guifont=Ricty:h16

h16というのが文字の大きさです。Google先生に聞いた限り、フォントを指定せずに大きさだけを変更することはできない気配がします。

挿入モードを抜けるときに自動的に英数入力に切り換える

挿入モードで日本語入力をしていて、ノーマルモードにCTRL-[などで抜けたときに、自動的に英数字入力に戻さないと死んでしまう病気にかかっているので、KeyRemap4MacBookに新しい設定を追加しました。

private.xml
<?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に割り当てました。

.vimrc
NeoBundle 'Lokaltog/vim-easymotion'
let g:EasyMotion_mapping_j = '<C-j>'
let g:EasyMotion_mapping_k = '<C-k>'

これを設定してから、これまでほとんど使って来なかったi_CTRL-Oが神機能に昇格しました。

色の表現力が上がった

例えばvim-indent-guidesg:indent_guides_color_change_percentオプションなどはiTerm2上にいた頃は上手く機能させられていなかったのですが、MacVimに来たら何もしなくてもきちんと描画のされ方が区別されるようになりました。
やったー

まとめ

MacVim意外といいよ!

70
69
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
70
69