3

vimでは、外部コードフォーマッターを使用してコードを美化します。Vimはそれをサポートしています。「formatprg」オプションを、コードをフォーマットする外部プログラムに設定できます。:helpformatprgを参照してください。formatprgは、フォーマットされていないコードをstdinに取り込み、フォーマットされたコードをstdoutに配置します。

これで、formatprgが成功すると、すべてが非常にうまく機能します。ただし、問題が発生すると、エラーメッセージがstderrに送信されます。残念ながら、vimはこれを認識せず、フォーマットされていないコードはエラーメッセージに置き換えられます。

エラーをvimのechoerrにリダイレクトするにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

6

エラー出力がバッファに挿入されるのを回避するには、

:set shellredir=>%s

それでも、テキストはクリアされ、エラーが発生したことがわずかに示されます。:undoただし、悪い変更( )は簡単にできuます。

この同様の質問は回避策を示していますが、私にはこれは見苦しく見えます。なぜVimが外部プログラムの終了コードを評価しないのか疑問に思います。(この背後にある理由については、vim_devで質問します。編集ここにあります

于 2012-12-01T11:24:39.717 に答える