アインシュタインの電話番号
2011.01.09
ターミナルからMacVimを起動するときはタブで開く

以前Vimperator用にmvimコマンドを入れたけど、これはMacVimの環境設定で「外部からファイルを開くときにはタブで開く」の設定にしておいても、mvimコマンドからだと新規ウィンドウで開いてしまう。すでにMacVimのウィンドウが開かれている場合はウィンドウが2個になる。これの解決方法について。

ターミナルからMacVimを起動

この動作はVimperatorからC-iで開く場合には、入力後にMacVimのウィンドウを閉じることでVimperator側に反映させるので新規ウィンドウの方が都合が良いんだけど、ターミナルから普通にコマンドラインで指定して開く場合はタブで開いてほしい。どうしたものかなと調べていたら、そのものズバリの解決方法を紹介してくれているページがあった。

単にmvimコマンドを使うと、実行ごとに新しいウインドウが開いてしまう。 せっかくタブ化できるんだから、タブで開きたい。 そういうときは、mvimのオプションの--remote系を使うと、既存のVIMウインドウ内で、ファイルを開くことができる。

MacVimの起動方法いろいろ - namutakaの日記

というわけで、このページで紹介されている方法で、.bashrcに設定を記述する。

alias macvim="mvim --remote-tab-silent"

保存後に設定を反映させれば、

$ source ~/.bashrc  # 設定を反映
$ macvim hoge.rb

みたいな感じで開ける。このオプション付きのコマンドを使った場合、MacVim側では環境設定の設定に左右されずにタブで開かれる。新規ウィンドウで開きたい場合は、従来通りmvimコマンドを使えばおk。

普通のエイリアスだとワイルドカード指定ができない?

alias macvim2="open -a MacVim"

のような普通のエイリアス指定だと、ワイルドカード指定で複数ファイルを一気に開けないっぽいので、そういう意味でも上記のmvim経由の方が便利。

$ macvim *.html  #=> mvim経由なら、該当するファイルがすべてタブ単位で開かれる
$ macvim2 *.html  #=> 普通のエイリアス指定だと、1個しか開かれない

MacVimの起動方法いろいろ - namutakaの日記