7

ソースコードフォーマッターUncrustifyをVimと統合したいと思います。以下の2つのオプションのいずれかで十分です。

  1. 現在編集しているコードをフォーマットします(つまり、gqが押されたとき)。
  2. ファイルを保存するときにコードをフォーマットしてから、フォーマットしたファイルを現在のVimウィンドウにリロードします。

オプション1が推奨されます。私は試した

set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup

つまり、コマンドラインオプションを使用してUncrustifyを呼び出します。これは動作しません。ViはE518: Unknown option: ~/misc/uncrustify.cfgエラーを出します。

オプション2については、vimrcファイルで次のことを試しました

autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup <afile>

ファイルは保存後にフォーマットされますが、手動でファイルをVimにリロードする必要があります。

4

1 に答える 1

4

空白をエスケープしようとしましたか:

:set formatprg=uncrustify\ -c\ ~/misc/uncrustify.cfg\ --no-backup

アップデート

uncrustify"Parsing: 170 bytes ..." メッセージを stderr に出力するので、次の場所にリダイレクトする必要があります/dev/null

:set formatprg=uncrustify\ -c\ ~/misc/uncrustify.cfg\ -l\ CPP\ --no-backup\ 2>/dev/null

gqは行に対して動作するため、ビジュアルモードで必要な行を選択して実行できgqます。たとえば、ファイル全体を再フォーマットする場合は、ggVGgq.

詳細はこちら:help gq

于 2012-03-20T08:17:59.220 に答える