emacs の Google フォーマット機能を使用して、すべてのソース ファイルを再フォーマットしたいと考えています: google-c-style.el (こちらを参照)。
この関数をすべてのソース ファイルに一度に適用して、すべてのソース ファイルが Google スタイルに従って正しくフォーマットおよびインデントされるようにするにはどうすればよいですか?
emacs の Google フォーマット機能を使用して、すべてのソース ファイルを再フォーマットしたいと考えています: google-c-style.el (こちらを参照)。
この関数をすべてのソース ファイルに一度に適用して、すべてのソース ファイルが Google スタイルに従って正しくフォーマットおよびインデントされるようにするにはどうすればよいですか?
これにはいくつかの要素があります:
indent-region
が始まりですが、タブを解除したり、他のことをしたりすることもできます。mark-whole-buffer
.私は以前、キーボードで定義されたマクロを使用してこれを行いました。すべてのファイルをemacs(のようなものfind . -name "*.cpp" | xargs emacs
)にロードしてから、次のキーを入力します。各キーの組み合わせに、その機能に注釈を付けました。
C-x-( 'Begin recording macro
M-< 'Go to start of file
C-space 'Mark current location (now start of file)
M-> 'Go to end of file
M-x indent-region 'Indent entire file according to coding style
C-x C-s 'Save the current buffer
C-x C-k 'Close the current buffer
C-x-) 'End recording macro
これで、。と入力してバッファでこれを実行できますC-x e
。複数のファイルをロードした場合はC-u 100 C-x e
、100個のファイルでこれを実行するようなものを実行できます。これがファイルの数を超えている場合、つまり問題がない場合は、すべての処理が完了したら無視できる「ベルリング」またはその他のエラーが発生します。
このスクリプトは再フォーマットを行わないと思います。代わりに、次の説明に従ってカスタム「スタイル」を作成する方法の例です: CC モード マニュアル - スタイル
CC モードのマニュアルにも次のように書かれています。
古いコードを再フォーマットしたい場合は、CC モードよりも強力な再フォーマット機能を備えた GNU indent など、代わりに他のツールを使用した方がよいでしょう。