vim高亮显示删除覆盖其他hi
我把这个syn用于长线vim高亮显示删除覆盖其他hi,vim,highlight,Vim,Highlight,我把这个syn用于长线 augroup longLines au! au! filetype zsh,sh,python,vim,c,cpp \ syn match ColorColumn /\%>80v.\+/ containedin=ALL augroup END 但这会覆盖另一
augroup longLines
au!
au! filetype zsh,sh,python,vim,c,cpp
\ syn match ColorColumn /\%>80v.\+/ containedin=ALL
augroup END
但这会覆盖另一个syn,使用
没有
为什么syn
会覆盖其他突出显示?这在最后几行是臭名昭著的
sys.exit(1)
import settings
有不同的颜色,使用syn,线失去正常高光我使用以下代码:
highlight TooLongLine term=reverse ctermfg=Yellow ctermbg=Red
autocmd BufEnter,WinEnter * if &tw && !exists('b:DO_NOT_2MATCH') |
\ execute '2match TooLongLine /\S\%>'.(&tw+1).'v/' |
\ endif
autocmd BufLeave,WinLeave * 2match
command -nargs=0 -bar Dm let b:DO_NOT_2MATCH=1 | 2match
command -nargs=0 -bar Sm execute '2match TooLongLine /\S\%>'.(&tw+1).'v/' |
\ silent! unlet b:DO_NOT_2MATCH
如果您不想删除此突出显示,请依赖textwidth并坚持突出显示超出限制的空格,然后您可以将其截断为
2match TooLongLine /.\%>80v/
此解决方案使用
匹配突出显示
,它不会取消语法突出显示,但始终会覆盖它。我知道您很久以前问过这个问题,但如果其他人也问,也许您可以尝试使用匹配添加()
函数,如下所示:
hi def longLine gui=reverse "or guibg=pink, or whatever you prefer
augroup longLines
au!
au! filetype zsh,sh,python,vim,c,cpp
\ call matchadd("longLine", "\\%>80v", 0, 9999)
augroup END
最重要的是,确保不要设置您决定使用的突出显示组的guifg
。这将覆盖语法高亮显示
另一个重要的部分(至少对我来说)是使用matchadd
和0
作为第三个参数,这样搜索高亮显示仍然有效,不会被长线高亮显示所取代
第四个参数可以省略。它只是一个常量,因此您可以:调用matchdelete(9999)
,以便在以后方便地再次删除突出显示(如果需要)
请参见
:h matchadd
和:h matchdelete
嗯,好的。。。。有什么问题吗?在vim7.3
中,我使用:set cc=80
@kev我不喜欢cc
非常难看,总是显示第80列,我的syn只有在行数超过80时才显示chars@ldigas问题是,为什么syn
覆盖其他hi?您可以用下划线突出显示