クライアントサーバ機能を使って別プロセスでコンパイルしてみた

かなりの苦肉の策なので,もっとスマートな方法はあると思います.
というか,サーバ機能を使ってみたかっただけ.


vimはシングルスレッド(?)なので,
vimからコンパイル等するとコンパイルが終わるまで固まります.
操作を受け付けてくれません.


ただ,簡単なプログラムならいいのですが,
私の場合.texとかコンパイルすると30秒とかかかるので
もう一つvimサーバを立ち上げて,そっちでコンパイルしてもらうことにしました.
(注:vimが+clientserver付きでコンパイルされている必要があります.vim --versionで確認)

やってみた

まず,TEXサーバを立ち上げます.(texMakefileがあるディレクトリで...)

vim --servername TEX

次にクライアント側からコマンドを投げます.

!vim --servername TEX --remote-send "<C-\><C-N>:\!make ps<CR>"

サーバ側で!make psが実行されます.
かなり長いので,コマンドにしておきます.

function! Tec()
  execute ":!vim --servername TEX --remote-send '<C-\\><C-N>:\\\!make ps<CR>'"
endfunction
command! Tex :call Tec()

これで

:Tex

で実行できます.
びみょー...
もう少しまともな使い方ができればいいのだけど.