回答:
次のキーストロークを試してください。
gg=G
説明:gg
ファイルの先頭に移動し=
、インデントを修正するコマンドG
であり、ファイルの最後まで操作を実行するように指示します。
私はArtistic Styleプログラムを使いたいです。彼らのウェブサイトによると:
Artistic Styleは、C、C ++、C#、およびJavaプログラミング言語用のソースコードインデンター、フォーマッター、およびビューティファイヤーです。
Windows、Linux、Macで動作します。インデント、タブをスペースに、またはその逆に置き換え、操作の周りにスペースを入れます(変換if(x<2)
( x<2 )
それが好きな場合はする)、関数定義と同じ行に中括弧を付ける、またはそれらを以下の行など。すべてのオプションは、コマンドラインパラメータによって制御されます。
vimで使用するには、formatprgオプションを設定してから、gqコマンドを使用します。したがって、たとえば、私は私の.vimrcにあります:
autocmd BufNewFile,BufRead *.cpp set formatprg=astyle\ -T4pb
.cppファイルを開くたびに、formatprgに好きなオプションが設定されるようにします。次に、ggと入力してファイルの先頭に移動し、gqGし、標準に従ってファイル全体をフォーマットします。単一の関数のみを再フォーマットする必要がある場合は、関数の先頭に移動して、次のように入力します。gq][と、その関数だけが再フォーマットされます。
astyleのオプション-T4pb
は、私の好みにすぎません。あなたが見ることができます彼らのドキュメント、オプションを変更して好きなようにコードをフォーマットすることができます。
こちらがデモです。アスタイル前:
int main(){if(x<2){x=3;}}
float test()
{
if(x<2)
x=3;
}
アスタイル後(gggqG):
int main()
{
if (x < 2)
{
x = 3;
}
}
float test()
{
if (x < 2)
x = 3;
}
お役に立てば幸いです。
プラグインvim-autoformatを使用すると、単一のコマンド(https://github.com/Chiel92/vim-autoformat)でバッファー(またはバッファー選択)をフォーマットできます。そのために外部フォーマットプログラムを使用し、vimのインデント機能にフォールバックします。
私はそれclang-format
がうまくいくと思います。
clangのドキュメントにいくつかのキーバインドの例があります
私equalprg
はvimでバインディングを使用することを好みます。これによりclang-format
、G=gg
またはその他の=
インデントオプションを呼び出すことができます。
以下を.vimrcファイルに追加するだけです。
autocmd FileType c,cpp setlocal equalprg=clang-format
sudo apt install clang-format