vimscript语法高亮显示:突出显示大于& textwidth设置值的longlines

时间:2016-12-25 17:23:37

标签: regex unix vim

我想突出显示比设置的textwidth更长的行,以便它对于不同的文件类型是动态的。我有以下内容:

autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#592929  
autocmd FileType * execute 'match OverLength /%\{'.&textwidth.',}v.*/'  

此代码似乎不会激活突出显示,但是,以下方法可以正常工作:

autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#592929  
autocmd BufEnter * match OverLength /\%>90v.\+*/  

我已经尝试排除了执行语句并相应地添加了反斜杠,但我仍然无法使其工作。另外,我认为使用execute语句可以使代码更清晰。如果有人能向我解释我做错了什么,我将不胜感激。

为了追求答案,我引用了以下示例:

highlight long lines

expand a variable in regular expression

如果有更便携,更清洁的方式,请告诉我。我想尽可能地学习。

ANSWER
我最终做的是利用vim的vim / after / ftplugin文件夹层次结构并添加: set textwidth=100
let &colorcolumn=join(range(&textwidth+1,999),",") 每个filetype.vim文件,例如markdown.vim,java.vim,vim.vim

对于help.vim和man.vim文件,我不想要使用colorcolumn突出显示,因此我将这些文件中的textwidth更改为999。通过这样做,vim能够在同一会话中打开时区分不同的文件类型。

1 个答案:

答案 0 :(得分:0)

我最终要做的是利用vim的vim / after / ftplugin文件夹层次结构并添加: set textwidth=100
let &colorcolumn=join(range(&textwidth+1,999),",") 到每个filetype.vim文件,例如markdown.vim,java.vim,vim.vim

对于help.vim和man.vim文件,我不想突出显示色列,因此我将这些文件的文本宽度更改为999。通过这样做,vim能够区分在同一会话中打开的不同文件类型。

– user2904000