web-dev-qa-db-ja.com

特定のディレクトリ内のすべてのソースファイルを再フォーマット/再インデントする方法

ソースツリーを含むディレクトリがある場合、コマンドラインから各ソースファイルを美しく再フォーマットされた同等のものに置き換える簡単な方法はありますか?

通常、プロジェクトのソースツリーにはソースではないファイルも含まれており、ソース自体が異なる言語になっている可能性があることに注意してください。

プロジェクトには通常、さまざまな言語のソースが含まれているため、できるだけ多くの言語をサポートするツールを探しています。特に、xml/html、javascript、Ruby、およびJavaをサポートするものを探しています。

14
fdierre

端末から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"
7
taksan

indentパッケージをインストールしてから、ファイルに対してプログラムを実行します。

2
psusi

自由ではなく、コマンドラインではなく、おそらく複雑すぎるかもしれませんが、 IntelliJ Idea はこれを行うことができるIDEです。 JavaやRubyでテストしたことはありませんが、Djangoプロジェクト(python + javascript + HTML)では非常にうまく機能します。

また、何を再フォーマットするかを構成するための非常に広範なオプションがあります。

これが1回限りの問題である場合は、無料で試用版をダウンロードできます。

これはHTML形式オプションのスクリーンショットです。私が使用しているものであるため、PyCharm(python限定版、RubyまたはJavaのサポートなし)から取得しましたが、IntelliJは同じですが、多くをサポートする必要がありますより多くの言語。

enter image description here

0
Javier Rivera

Google Java形式

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を使用して、入力ファイルを直接上書きできるようにします
  • 同じ再フォーマットを実行するEclipseおよびIntelliJプラグインがあります
0