我编写了一些命令,通过将以下内容放在我的.vimrc
文件中来执行常见功能:
command! FixWhitespace %s/ \+$//g
command! FixCommas %s/,\S\@=/, /g
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个运行这两个命令的第三个命令,但以下不起作用:
command! Fix FixWhitespace|FixCommas
Run Code Online (Sandbox Code Playgroud)
当我:Fix
从内部运行时,vim
我收到以下消息:
E488:尾随字符:FixWhitespace|FixCommas
我不确定此错误消息与我所做的事情有何关系,但显然我没有做正确的事情!
我正在使用 Vim 7.4。
小智 14
你需要告诉 vimcommand! -bar
一个命令后面可以跟另一个带有管道符号的命令|
:
command! -bar FixWhitespace %s/\s\+$//e
command! FixCommas %s/,\S\@=/, /ge
Run Code Online (Sandbox Code Playgroud)
现在可以了:
command! Fix FixWhitespace|FixCommas
Run Code Online (Sandbox Code Playgroud)
但这不是:
command! Fix FixCommas|FixWhitespace
Run Code Online (Sandbox Code Playgroud)
有关:h command-bar
更多详细信息,请参阅。
错误消息E488: Trailing characters: FixWhitespace|FixCommas
是 vim 告诉您它不希望FixWhitespace
命令后面有任何内容的方式。见:h E488
。
顺便说一句,您的FixWhitespace
命令不需要g
标志,因为模式在每一行上最多可以匹配一次。我还会设置e
标志以抑制烦人的错误消息。见:h s_flags
。