0

我正在尝试设置一个 autocmd 来运行 Eclim 命令:JavaImportOrganize 和 :syntax 每次我保存 java 文件时。

au BufWritePost {*.java} silent :JavaImportOrganize :syntax on

其中(预期)会产生错误。我试图找到一个包含插件命令(在本例中是从守护程序加载?)和普通命令的 autocmd 示例,但我似乎无法找出正确的语法。

非常感谢任何帮助!

4

1 回答 1

2

知道确切的错误消息是什么会很有用。在我的机器上,错误是:

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不需要花括号(事实上,我什至不知道它们有效:))。命令前面的:符号不是必需的——它们在命令行模式下使用,但它们在脚本中是完全可选的。

于 2015-02-26T09:23:36.323 回答