牢獄機械文書群 目次 » 計算機 » 現在地
Vim を複数起動しないで1つにまとめる
2011-11-24 19:45

すでに vim を起動しているのに、ファイルを開く度に新たに vim を起動してしまい、煩わしい場合がある。

server 機能を使って、ファイルを開くときすでに vim が起動しているなら、新規起動したvimを閉じ、既存のvimの新しいタブで開くようにする。


サーバー名(v:servername)はデフォルト時、vim は "VIM", gVim は "GVIM" という名前になっている。

新規起動時、サーバー名が重複するときは、VIM1, VIM2... というように名前の後ろに連番が付く。

したがって、サーバー名 "VIM1" で起動した場合にその vim を終了し、サーバー名 "VIM" で開き直せばよい。

if v:servername == 'VIM1'
    let file = expand('%:p')
    bwipeout
    call remote_send('VIM', '<ESC>:tabnew ' .file .'<CR>')
    call remote_foreground('VIM')
    quit
endif

3行目で:bwipeoutしているのは、編集ファイルが重複する('read only'オプションが付けられる)のを避けるため。

v:servernameを操作すればさらに細かい命令ができます。

« もどる
inserted by FC2 system