使用Vim的参数定义用户命令

时间:2018-01-30 21:50:58

标签: vim

我正在尝试在vim中创建用户定义的命令,以替代quickfixlist命令

我定义了这样的命令:

:command G -nargs=1 cr <args>

现在,当我键入:G 1时,我希望vim执行:cr 1并从quickfix列表转到错误号1。相反,我得到一个“尾随字符”错误。知道可能导致这种情况的原因吗?

谢谢

1 个答案:

答案 0 :(得分:3)

您的定义创建G作为:-nargs=1 cr <args>的别名,不带任何参数。这就是:G 1为您提供E488: Trailing characters的原因。

只运行:G会产生E492: Not an editor command: -nargs=1 cr

修复方法是在命令名称之前移动命令属性:

:command -nargs=1 G cr <args>

这种方式-nargs=1被解释为属性,而不是命令替换的一部分。