VIM设置colorcolumn后如何仅对工作文件生效、不影响NERDTree
配置修改方案
你当前全局设置colorcolumn会作用于所有Vim缓冲区,所以NERDTree侧边栏也会继承列着色效果,只需要调整为局部差异化配置即可:
方案1:仅为Cobol文件启用列标记(推荐,适配Cobol开发场景)
删除原来全局的set colorcolumn=7,11,73,80配置,替换为按文件类型触发的本地配置:
" 仅Cobol类型文件启用指定列标记 autocmd FileType cobol setlocal colorcolumn=7,11,73,80 " 原有NERDTree启动配置保留即可 autocmd VimEnter * NERDTree autocmd VimEnter * wincmd p
这里用setlocal而非全局set,配置仅对当前匹配的Cobol文件缓冲区生效,不会影响NERDTree等其他缓冲区。
方案2:保留全局列标记,仅关闭NERDTree的列着色
如果你需要其他类型的文件也保留全局colorcolumn效果,可以额外新增一条自动命令,检测到NERDTree缓冲区时单独关闭列标记:
" 原有全局配置保留 set colorcolumn=7,11,73,80 " 新增:NERDTree缓冲区关闭列着色 autocmd BufEnter * if &filetype == 'nerdtree' | setlocal colorcolumn= | endif " 原有NERDTree启动配置保留 autocmd VimEnter * NERDTree autocmd VimEnter * wincmd p
配置完成后的效果参考:
内容的提问来源于stack exchange,提问作者Plamen Draganov
相关产品推荐
相关产品推荐

