Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim高亮显示删除覆盖其他hi_Vim_Highlight - Fatal编程技术网

vim高亮显示删除覆盖其他hi

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 但这会覆盖另一

我把这个syn用于长线

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?您可以用
下划线突出显示