ソースツリーを含むディレクトリがある場合、コマンドラインから各ソースファイルを美しく再フォーマットされた同等のものに置き換える簡単な方法はありますか?
通常、プロジェクトのソースツリーにはソースではないファイルも含まれており、ソース自体が異なる言語になっている可能性があることに注意してください。
プロジェクトには通常、さまざまな言語のソースが含まれているため、できるだけ多くの言語をサポートするツールを探しています。特に、xml/html、javascript、Ruby、およびJavaをサポートするものを探しています。
端末からvimをexおよびコマンドモードで使用できます。
単一のファイルをインデントするには:
vim -c "normal gg=G" -e <file-to-indent> <<'EOF'
:wq
EOF
ファイルを再帰的にインデントするには、次のスクリプトを作成します。
indent-with-vim.sh
vim -c "normal gg=G" -e $1 <<'EOF'
:wq
EOF
次に、次を入力します。
$ chmod u+x indent-with-vim.sh
$ find . | xargs -I {} ./indent-with-vim.sh {}
Vimはファイルを再インデントするために最善を尽くします。特定のファイルの種類を改善できます。
XMLの場合:
インストールxmllint
を.vimrc
に追加します
au FileType xml setlocal equalprg=xmllint\ --format\ --recover\ -\ 2>/dev/null
PHPフォーマットを改善するには:
ダウンロード http://www.vim.org/scripts/download_script.php?src_id=15001 (php.vimという名前のファイルをダウンロードします)
自宅に次のディレクトリを作成します。
~/.vim/indent
php.vim
を~/.vim/indent
にコピーします
どのファイルタイプの結果にも満足できない場合は、Webで代替手段を探すことができます(HTMLのhtb、 https://github.com/vim-Ruby/vim-Ruby などRubyの改善など)。
どちらにしても、インデントを改善するには、.vimrcテクニックまたはfoo.vimインデントファイルを使用します。
また、次のような特定のタイプのみに適用するように検索パラメーターを変更できます。
find . -iname "*.html" -or -iname "*.xml"
indent
パッケージをインストールしてから、ファイルに対してプログラムを実行します。
自由ではなく、コマンドラインではなく、おそらく複雑すぎるかもしれませんが、 IntelliJ Idea はこれを行うことができるIDEです。 JavaやRubyでテストしたことはありませんが、Djangoプロジェクト(python + javascript + HTML)では非常にうまく機能します。
また、何を再フォーマットするかを構成するための非常に広範なオプションがあります。
これが1回限りの問題である場合は、無料で試用版をダウンロードできます。
これはHTML形式オプションのスクリーンショットです。私が使用しているものであるため、PyCharm(python限定版、RubyまたはJavaのサポートなし)から取得しましたが、IntelliJは同じですが、多くをサポートする必要がありますより多くの言語。
Google Javaスタイルに準拠するようにJavaソースコードを再フォーマットします。
https://github.com/google/google-Java-format
wget https://github.com/google/google-Java-format/releases/download/google-Java-format-1.5/google-Java-format-1.5-all-deps.jar
Java -jar google-Java-format-1.5-all-deps.jar /path/to/MyClass.Java
ヒント:
--replace
オプションとxargs
を使用しますsponge
を使用して、入力ファイルを直接上書きできるようにします