我想突出显示比设置的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语句可以使代码更清晰。如果有人能向我解释我做错了什么,我将不胜感激。
为了追求答案,我引用了以下示例:
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能够在同一会话中打开时区分不同的文件类型。
答案 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