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

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

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

这是我的代码:

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

它们独立工作。但是,我尝试将它们合并到一个命令中。

保存时 VIM 显示:

Error detected while processing /var/home/jesse-atkinson/.vimrc:
line  196:
E488: Trailing characters

有任何想法吗?

答案1

您需要用 替换|该行中的字符<bar>

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

看::help map_bar

答案2

您可能在 .vimrc 中使用了#注释,而"实际上您应该使用。

例子

在这个 ~/.vimrc 文件中,第一行是正确的方式:

" Correct comment
# Incorrect comment

第二行(错误的方式)导致此消息:

line    2:
Trailing characters: Incorrect comment: # Incorrect comment

解决方案

.vimrc"而不是开始评论#,然后消息就会消失。

相关内容