ユースケースとしては、vimを起動して、:terminal でコマンドプロンプトを起動したとき、カレントディレクトリが操作したいディレクトリじゃなくて、操作したいディレクトリまで移動して、移動先でvimで編集したいファイルが出てきたときに、vimに戻ると、カレントディレクトリが違うから、またおんなじようにディレクトリ移動しないといけなくなるのがめんどくさいっていうケース。ありますよね?(脅迫)
そういう時は --remote-send を使って vim を実行しましょう。
> vim --servername %VIM_SERVERNAME% --remote-send "何か実行したいコマンド"
%VIM_SERVERNAME%
は :terminal で起動したコマンドプロンプトのみで設定される環境変数らしく、これを使うと、親vimに対して--remote-send できるようになります。"何か実行したいコマンド"
にいつも通りコマンドを打つとvim上でコマンドが実行されてハッピーです。
ただし、コマンドの前にウィンドウのフォーカスをコマンドプロンプトからVimに移動しておかないと、コマンドプロンプト上にコマンドが入力されてしまうので注意です。.vimrc で何も設定していないのであれば、フォーカス移動のキーバインドは <C-W><C-W>
のはずです。なので、何か実行したいコマンドの前にプレフィックス的に <C-W><C-W>
を入力すればOK
例えば、コマンドプロンプトで開いているカレントディレクトリにVimで移動したい場合は以下のようにコマンドを打てばいいことになります。
> vim --servername %VIM_SERVERNAME% --remote-send "<C-W><C-W>:cd %CD%<CR>"
... 長いですね。このコマンドを一発で打てるようなバッチファイルかコマンドエイリアスを作っておくといいのかもしれません。