Vim 用于运行Eclim的autocmd';s:JavaImportorOrganize
我试图设置一个autocmd,以便在每次保存java文件时运行Eclim命令:JavaImportOrganize和:syntaxVim 用于运行Eclim的autocmd';s:JavaImportorOrganize,vim,eclim,autocmd,Vim,Eclim,Autocmd,我试图设置一个autocmd,以便在每次保存java文件时运行Eclim命令:JavaImportOrganize和:syntax au BufWritePost {*.java} silent :JavaImportOrganize :syntax on 这(预期)会产生错误。我试图找到一个autocmd示例,其中包含一个插件命令(在本例中是从守护进程加载的?)和一个普通命令,但我似乎无法找到正确的语法 非常感谢任何帮助 了解确切的错误信息将非常有用。在我的机器上,错误是: Error de
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:|
):
现在,在我的实验中,这并没有起作用,因为上的|语法可能被认为是JavaImportOrganize
调用的一部分。因此我不得不使用exe
(:help:execute
了解更多信息):
完整调用如下所示:
au BufWritePost *.java silent exe 'JavaImportOrganize' | syntax on
*.java
周围的花括号不是必需的(事实上,我甚至不知道它们有用:)。:
不需要在命令前签名——它们在命令行模式下使用,但在脚本中是完全可选的。谢谢!很抱歉没有提到这个错误。我注意到使用“静默”有一个问题:它会抑制“按Enter”消息,但同时也会删除在导入时有多个库可供选择时弹出的对话框。是否有办法使命令仅抑制“按Enter键”,而不抑制“库选择”对话框?谢谢。如果“按Enter键”消息是由于长时间输出造成的,您可以尝试:set shortmess+=T
(请参阅:帮助避免点击Enter
),但这是一个全局设置。除此之外,我想不出什么。
:silent exe 'JavaImportOrganize' | syntax on
au BufWritePost *.java silent exe 'JavaImportOrganize' | syntax on