首页 > 解决方案 > 如何仅更改 NERDTree 中的列颜色

问题描述

我想为 Cobol 开发设置 VIM,并希望标记第 7 到 11 列中的行以指示代码区域。然而,当我在我的 vimrc 文件中添加这行代码时,它也为 NERDTree 着色。

set colorcolumn=7,11,73,80
autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

如何使 NERDTree 列不着色并仅在工作文件上保持着色?

在 VIM 上查看我的 cobol 文件的图片

标签: vimidevicobolnerdtree

解决方案


在您的以下行vimrc

set colorcolumn=7,11,73,80

您为每个新窗口重用的窗口本地选项定义一个全局值。它是为第一个窗口设置的,然后将其传递给第二个窗口,依此类推。

由于该特定选项的特定值仅应用于 Cobol 缓冲区,因此您应该使用 Vim 的内置文件类型插件支持:

  1. 确保您vimrc:

    filetype plugin on
    filetype plugin indent on
    filetype indent plugin on
    

    :help :filetype

  2. after/ftplugin/cobol.vim在你的 Vim 运行时创建。在典型的 Unix 系统上,它应该如下所示:

    $HOME/.vim/after/ftplugin/cobol.vim
    
  3. 并添加以下行:

    setlocal colorcolumn=7,11,73,80
    

    我们:help :setlocal用来确保该选项不会传递到其他窗口。


推荐阅读