web-dev-qa-db-ja.com

コマンドラインからコードを自動フォーマットするにはどうすればよいですか?

SomeRandomFile.jsにJavaScriptがあり、次のようなコマンドを実行したいとします。

formatMyCode someRandomFile.js

次に、ファイル内ですべてを適切な方法でインデントします。

フォーマットPHPまたはHTMLもやりたいです。VIMでは、テキストを強調表示して=を押すと、自動的にフォーマットされます(たとえそうであっても) HTML/PHP/JavaScriptの混合)。簡単な方法はありますか?

7
Clay

Vimが好きな場合は、コマンドラインからアクションを呼び出すことができます。

echo -e "G=gg\n:wq\n" | vim ./myfile.php 

警告上記のコマンドはプロンプトなしでファイルを変更します。前にバックアップを行ってください。
findと統合された例を見つけて、多数のファイルで同じ作業を実行することができます。 []

先を見ると、このために構築された多くのユーティリティを見つけることが可能であり、この数は時間とともに増加し続けます。あなたはインターネット上でそれらの更新されたバージョンを検索することができ、あなたは例えばから始めることができます:

  • 芸術的なスタイル [ 1 ]astyle、forC、C++、C++/CLI、Objective‑C、C#およびJavaプログラミング言語。
  • tidy [ 2 ] forHtml
  • IDEソリューションkateから始まるコマンドラインによって呼び出されます [] 作成されたばかりのプラグインが存在します。独自のインデントスクリプトを作成できます [ 4 ] また、UniversalIndentGUIを続行します [ 5 ]Eclipse [ 5 ].。
5
Hastur
vim -c "execute 'normal! =G' | :wq! out.js" input.js

+の代わりに代替構文-cを使用することもできます。それは同じだ。

vim +"execute 'normal! =G' | :wq! out.js" input.js
  1. 通常のコマンド=Gを実行し、ファイルの終わり(G)まですべての行を自動フォーマット/インデント(=)します。

  2. 次に、:wq! out.jsはそれをファイルに書き込み、vimを終了します。同じファイルを上書きしたいだけの場合は、out.jsを削除してください。

また、自動フォーマットインデントプラグインを機能させるには、~/.vimrcに次の行を含める必要があります。

filetype plugin indent on

2
wisbucky

Eslintを使用すると、次のことができます

eslint --fix someRandomFile.js

JSONファイルでも機能します。 HTMLの場合は、 https://stackoverflow.com/questions/2191989/a-command-line-html-pretty-printer-making-messy-html-読み取り可能 を検討してください。

0
serv-inc