1

いくつかの複雑な環境変数が必要なため、GNU 画面から Make を実行することにしました。screen vim プラグインを使用して、.vimrc に次の設定を行いました。

map <Leader>mm :call ScreenShellSend("cd ".expand("%:p:h")." && make 2>&1 | tee /path/to/errorfile") <CR>

大まかに翻訳すると、これは、必要なすべての環境変数が事前設定された既存の screen セッションを介して、現在の作業ディレクトリで make を実行します。その後、そのコマンドの出力を別のターミナル ウィンドウで確認できます。

私の質問は、make の結果をテキスト ファイルに出力すると仮定して、次のように vim の make プロセスを自動化するにはどうすればよいかということです。

A.) vimscript 関数を使用するように make を設定します。つまり、外部プログラムの代わりに SreenShellSend() を呼び出します。

B.) エラーファイルを /path/to/errorfile に設定します

4

1 に答える 1

0

'makeprg'残念ながら、 Vim の関数やコマンドに設定することはできません。シェル プログラムでなければなりません。(コロンで始まるコマンドを Vim コマンドとして扱う拡張機能を希望し:helpます'keywordprg'

ただし、回避策はあります。1 つは、この別の一時的な Vim インスタンスをvim --remote-sendas として使用し、元の Vim にコールバックすることです。ただし、これらのバッファーのcmdalias.vim プラグインを介してコマンドを'makeprg'オーバーライドしています。そのエイリアスは、単に私の機能です。:make:call

Vim 関数を呼び出すことができるようになったら'errorfile'、関数ラッパーを配置ScreenShellSend()してそこに設定するだけです。

于 2013-01-24T08:18:07.153 に答える