我正在尝试设置一个 autocmd 来运行 Eclim 命令:JavaImportOrganize 和 :syntax 每次我保存 java 文件时。
au BufWritePost {*.java} silent :JavaImportOrganize :syntax on
其中(预期)会产生错误。我试图找到一个包含插件命令(在本例中是从守护程序加载?)和普通命令的 autocmd 示例,但我似乎无法找出正确的语法。
非常感谢任何帮助!
知道确切的错误消息是什么会很有用。在我的机器上,错误是:
Error detected while processing BufWritePost Auto commands for "{*.java}":
E488: Trailing characters: silent :JavaImportOrganize :syntax on
我认为这对您来说是一样的,但是将其粘贴到问题中会有很大帮助,因此人们可以更轻松地猜测问题所在。
在这种情况下,这是在一次调用中组合两个命令的简单案例。您可以使用|
字符执行此操作(请参阅:help :|
详细信息):
:silent JavaImportOrganize | syntax on
现在,在我的实验中,这并没有起到作用,因为它| syntax on
可能被认为是JavaImportOrganize
调用的一部分。所以我不得不使用exe
(:help :execute
更多信息):
:silent exe 'JavaImportOrganize' | syntax on
完整的调用如下所示:
au BufWritePost *.java silent exe 'JavaImportOrganize' | syntax on
*.java
不需要花括号(事实上,我什至不知道它们有效:))。命令前面的:
符号不是必需的——它们在命令行模式下使用,但它们在脚本中是完全可选的。