我的~/.vimrc我使用此同义词作为长行
augroup longLines
au!
au! filetype zsh,sh,python,vim,c,cpp
\ syn match ColorColumn /\%>80v.\+/ containedin=ALL
augroup END
但是这会用
覆盖其他synss http://f.cl.ly/items/1n28361h1X3U3J203x2D/ss%202011-12-30_at_22.11.46.png
没有
ss http://f.cl.ly/items/1m2H1R1Y3P3i3f0G3U0x/ss%202011-12-30_at_22.19.47.png
为什么syn
会覆盖其他突出显示?
这在最后几行中是臭名昭着的
sys.exit(1)
import settings
有不同的颜色,使用syn,线条会失去正常的高光
答案 0 :(得分:2)
我使用以下代码:
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/
此解决方案使用的match-highlight
不会废弃语法突出显示,但始终会覆盖它。
答案 1 :(得分:0)
我意识到你很久以前就问了这个问题,但如果其他人也问过,也许你可以尝试使用$tables[$table] = $result;
功能,而不是这样:
matchadd()
最重要的是,请确保不要设置您决定使用的任何突出显示组的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
作为第三个参数,这样您的搜索突出显示仍然有效,并且不会被longLine突出显示超越。< / p>
第四个参数可以省略。这只是一个常数,以便您可以0
稍后再次轻松删除突出显示,如果您愿意的话。
请参阅:call matchdelete(9999)
和:h matchadd