我正在清理我的vimrc今天,将其拆分为单独的文件以使其更易于维护。完成这些更改后,除了突出显示尾随空白之外,我的所有配置、映射和插件似乎都在工作。
我在 .vim/rc/appearance.vim 中有以下几行:
highlight RedundantSpaces term=standout ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/ "\ze sets end of match so only spaces highlighted
据我了解,第一行创建一个突出显示组“RedundantSpaces”,并指示 vim 在彩色终端上将与突出显示组匹配的任何文本的背景设为红色。第二行定义用于识别与突出显示组匹配的文本的模式。
当我在 vim 中打开文件并开始在空行上键入空格时,它们不会以红色突出显示。如果我运行:source ~/.vimrc
,则会突出显示。
rc/*.vim
如果我删除从中获取所有单个文件的行.vimrc
并直接将上述两RedundantSpaces
行放入.vimrc
,vim 的行为将按预期进行,并且尾随空白会突出显示。
但是,如果我保留 source 行rc/*.vim
,然后将这些RedundantSpaces
行放在 my 的末尾.vimrc
(即这些命令是调用 vim 时最后运行的命令),突出显示仍然不起作用,我需要这样做source ~/.vimrc
。
很明显,我的rc/*.vim
文件中的某些内容与突出显示配置的交互效果很差,但是我无法解释那是什么。这些文件中的任何内容都不应该与突出显示配置交互。
谁能建议这里可能出了什么问题?
答案1
该问题是由明智的插件:第 93 行。:help t_Co
" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux'
set t_Co=16 " << --- Causes hickup
endif
如果你以详细日志模式 ( vim -V15load_log.vim
) 运行 vim – 并搜索t_Co=
,RedundantSpaces
你会看到它sensible
实际上已被解析后你的appearance.vim
文件。
快速解决方法是注释掉代码的该部分并将其添加到您的 中.vimrc
,但是当您链接到 git 存储库时,这可能不是您想要的。
另一种方法是将其移出bundle
目录并将其作为单独的source
行添加到您的vimrc
,前你的全局循环。
IE:
source ~/.vim/hacks/vim-sensible/plugin/sensible.vim
for f in split(glob ...
另一种方法是在 BufLoad 上加载自定义突出显示。
ETC。 …
答案2
如果你使用 NeoBundle 然后使用NeoBundleLazy 'tpope/vim-sensible'
,那么NeoBundleSource
在你的 vimrc 末尾就可以了。另请参阅https://github.com/tpope/vim-sensible/issues/74。