为什么 VIM 说这个命令有尾随字符?

Jes*_*son 5 unix vim vi command-line vimrc

我正在尝试在 vim 中编写一个 beautify CSS 命令,该命令对所有 CSS 属性进行排序和按字母顺序排列,并检查冒号后是否没有空格并插入一个空格。

这是我的代码:

nnoremap <leader>S :g#\({\n\)\@<=#.,/}/sort | %s/:\(\S\)/: \1/g<CR>
:command! SortCSSBraceContents :g#\({\n\)\@<=#.,/}/sort | %s/:\(\S\)/: \1/g              
Run Code Online (Sandbox Code Playgroud)

这些独立工作。但是,我试图将它们通过管道传输到一个命令中。

保存 VIM 说:

Error detected while processing /var/home/jesse-atkinson/.vimrc:
line  196:
E488: Trailing characters
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Hep*_*ite 11

您需要|将该行中的字符替换为<bar>.

发生的事情是 Vim 将该行作为单独的命令执行,而不是从整行创建映射。

看: :help map_bar