如何从命令行自动格式化代码?

如何从命令行自动格式化代码?

假设我在 someRandomFile.js 中有一个 JavaScript,并且我想要运行如下命令:

formatMyCode someRandomFile.js

然后,在文件内部,它会以一种很好的方式缩进所有内容。

我也想格式化 PHP 或 HTML。在 VIM 中,您可以突出显示一些文本并按 =,它会自动格式化它(即使它是混合的 HTML/PHP/JavaScript)。有没有简单的方法可以做到这一点?

答案1

如果你喜欢 vim您可以从命令行调用其操作

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

警告上述命令将在没有提示的情况下修改你的文件。先备份。
可以找到集成的示例,以find在一堆文件上完成相同的工作[0]

除此之外,还可以找到很多为此构建的实用程序,并且这个数字还会随着时间的推移而不断增长;您可以在互联网上搜索它们的更新版本,例如可以从以下位置开始:

  • 艺术风格[1]astyle, 为了C、C++、C++/CLI、Objective-C、C# 和 Java 编程语言。
  • tidy [2]为了HTML
  • IDE 解决方案通过从[开始的命令行调用kate 3]有一个刚刚制作的插件;你可以构建自己的缩进脚本[4]也继续UniversalIndentGUI [5]eclipse [5] ...

答案2

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

答案3

使用 eslint,你可以

eslint --fix someRandomFile.js

也适用于 JSON 文件。对于 HTML,请考虑https://stackoverflow.com/questions/2191989/a-command-line-html-pretty-printer-making-messy-html-readable

相关内容