Vim匹配删除其他匹配

3

我在vim中想显示空白符和行尾标识,我使用的命令是

highlight whitespaceEOL term=reverse ctermbg=Grey guibg=Grey
match whitespaceEOL /\s\+\(\%#\)\@!$/

当我使用匹配长行的方法时,
augroup longLines
    autocmd! filetype zsh,sh,python,vim,c,cpp :match ColorColumn /\%>80v.\+/
augroup END 

我输掉了第一场比赛,为什么?
1个回答

6

:match 只能匹配一个模式。

:2match:3match 正是为此而存在。

或者,您可以将其实现为 syntax

尝试:

2match whitespaceEOL /\s\+$/
3match ColorColumn /\%>80v.\+/

或者:

syntax match whitespaceEOL /\s\+$/
syntax match ColorColumn /\%>80v.\+/

使用 syn match ... 是一种解决方案吗? - JuanPablo
但是,我可以在~/.vimrc中为许多文件类型制定定义syn match ...吗? - JuanPablo
我添加了以下内容:highlight whitespaceEOL term=reverse ctermbg=Grey guibg=Grey syn match whitespaceEOL /\s\+\(\%#\)\@!$/但是没有生效。 - JuanPablo
我使用了你的第二个解决方案(语法匹配...),但对我不起作用。 - JuanPablo
只有当我明确语法时才能工作,如 syn match ColorColumn /\%>80v.\+/,但会失去其他语法。 - JuanPablo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接