是否有一个命令行 Unix 工具可以格式化/缩进/美化不同语言的源代码?我对 Java、JavaScript、PHP 和 XML 特别感兴趣,但理想情况下它会处理其他的。
(我不是在寻找生成语法高亮标记的东西;我已经知道一些可以做到这一点的工具。)
是否有一个命令行 Unix 工具可以格式化/缩进/美化不同语言的源代码?我对 Java、JavaScript、PHP 和 XML 特别感兴趣,但理想情况下它会处理其他的。
(我不是在寻找生成语法高亮标记的东西;我已经知道一些可以做到这一点的工具。)
我一直发现 Vim 的代码格式化程序是一个不错的选择。它知道多种语言并且可以合理地定制。
您可以像这样将相关命令通过管道传输到 vim 中:
vim MyClass.java <<< gg=G:wq
解释:
gg=G
格式化文件:wq
保存文件并返回命令提示符如果您已将自动格式化选项设置为 Eclipse 中的项目特定设置,则可以执行以下操作:
/opt/local/eclipse/eclipse -nosplash
-application org.eclipse.jdt.core.JavaCodeFormatter
-verbose
-config .settings/org.eclipse.jdt.core.prefs
src/ tests/ doc/examples/
这意味着您实际上安装和配置 Eclipse 只是为了使用它的自动格式化功能,而不管您通常使用什么编辑器。:)
来源:http: //blogs.operationaldynamics.com/andrew/software/java-gnome/eclipse-code-format-from-command-line
在 Mac OS X 上:
/Applications/eclipse/java-oxygen/Eclipse.app/Contents/MacOS/eclipse -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter -verbose -config ~/my-eclipse-workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs MyClass.java
Vim 通常具有自动语法高亮功能,并且在您安装时可在大多数基于 Unix 的系统上使用。对于 Vim 中的格式化和缩进,我在启动时自动使用:set autoindent
and :set tabstop=4
。autoindent
当你开始一个新的行时保持你当前的缩进,并tabstop
设置你的代码在你按下制表符时缩进多少(仅用于缩进,对于一般使用的制表符shiftwidth
)。要在启动 Vim 时配置这些选项,请将它们放在一个~/.vimrc
文件中。
因此,我提请您注意 Style Revisor,具有 GUI 和命令行界面的源代码格式化程序。它将支持不同的语言,包括 JavaScript 和 PHP。如果您对命令行使用感兴趣 - 您可以将自己的格式化样式定义为插件。当然,您也可以使用许多预定义的样式。例子:
./Style\ Revisor --lang=PHP --style=GNU --path=~/to-your-project-root-dir
目前,Style Revisor 支持两种语言:C 和 Objective-C。欢迎访问:http ://style-revisor.com/
真挚地。