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


14

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

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

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


1
そして、言語は...?
ユーザー不明

2
stackoverflowでの同様のQ&A:stackoverflow.com/questions/1731357/…–
lumbric

回答:


7

ターミナルからexおよびコマンドモードでvimを使用できます。

単一のファイルをインデントするには:

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 、Rubyの改善のためのhttps://github.com/vim-ruby/vim-rubyなど)を探すことができます。)。

どちらにしても、インデントを改善するには、.vimrcテクニックまたはfoo.vimインデントファイルを使用します。

また、次のような特定のタイプのみに適用するように検索パラメーターを変更できます。

find . -iname "*.html" -or -iname "*.xml"

2

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


1
これはCのみをサポートしていますか?indent.isidore-it.eu/beautify.html-
セシウム

fdierreは普遍的なものを探していると思いますか?
ユーザー不明

1
はい、可能な限り「ユニバーサル」なツールを探していました。それを指定するために質問を修正しました。
fdierre

0

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

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

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

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

ここに画像の説明を入力してください


0

Google Java形式

Javaソースコードを再フォーマットして、Google 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

チップ:

  • multipeファイルでそれを行うには、--replaceオプションと一緒に使用しますxargs
  • sponge入力ファイルを直接上書きできるように使用します
  • 同じ再フォーマットを実行するEclipseおよびIntelliJプラグインがあります
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.