[英]vim in ubuntu terminal: “background” property is set after vimrc is loaded
我在ubuntu的默认终端中使用vim。 我设置了两个终端配置文件:一个名为“ dark”的颜色>内置方案>“ Solarized dark” ,另一个名为“ light”的太阳光。
在Vim中,我希望光标线突出显示,因此我将以下命令放在vimrc
:
hi CursorLine cterm=NONE ctermbg=254 ctermfg=NONE
这会以浅灰色背景突出显示光标线。 当使用日光照明时,它是完美的选择,但当使用日光照明黑暗时,则完全没有。
幸运的是,通过某种我不了解的机制,vim知道我使用的是日光暗还是日光: background
选项相应地设置为“亮”或“暗”。 例如,如果我使用日光灯,则会发生以下情况:
:set background?
background=light
所以我想我会在vimrc
使用它来更改光标线的颜色,具体取决于我使用的颜色方案:
set cursorline
if &background == "light"
hi CursorLine cterm=NONE ctermbg=254 ctermfg=NONE
else
hi CursorLine cterm=NONE ctermbg=238 ctermfg=NONE
endif
问题 :它不起作用。 光标线始终为浅灰色,就像background
属性始终设置为"light"
。
似乎在加载vimrc
时, background
属性尚未更改。
请注意,如果我在Vim中执行source ~/.vimrc
时效果很好,则光标线将以适当的颜色突出显示。
关于如何解决这个问题的任何想法?
vim 7.4.1689
GNOME终端3.18.3
Ubuntu 16.04 LTS和Ubuntu 17.04
请注意, 我的vimrc
没有任何:colorscheme <something>
:我通过gnome终端配置文件获得了主题化的主题。 我不认为Vim会“知道”我正在使用这些颜色。 只是某些脚本根据我的gnome终端颜色选择设置了vim的background
变量。
有一个名为AfterColors.vim
的vim插件,允许您在加载配色方案后自定义事物。 基本上,您需要将您的高亮hi CursorLine...
语句( hi CursorLine...
)放在after/colors/common.vim
文件中。
从AfterColors.vim脚本的文档中:
允许您创建after / colors /脚本以自定义任何颜色方案。
-例子-如果您喜欢'desert'的colorcheme,但是您确实希望注释为红色而功能为蓝色,则之前,您需要将整个colorcheme复制到主目录并对其进行自定义。 安装此插件后,您可以创建一个小脚本来仅更改要用于该颜色方案的部分,完全就像您对ftplugin或语法脚本所做的那样:
对于Unix系统,您将创建:〜/ .vim / after / colors / desert.vim:Highlight Comment guifg = Red ctermfg = Red Highlight功能guifg = Blue ctermfg = Blue
在Windows上,您将创建:C:\\ Documents and Settings \\ Peter \\ vimfiles \\ after \\ colors \\ desert.vim:高亮注释guifg = Red ctermfg = Red高亮函数guifg = Blue ctermfg = Blue
-版本6警告-如果您的Vim早于版本7,则After / colors脚本仅在Vim启动时才加载一次。 如果您在.vimrc文件中选择colorscheme,这不会有问题,但是如果在vim加载后更改了colorcheme,则after / colors脚本将被忽略。 这在Vim 7中不是问题。
和,
安装细节
1)将AfterColors.vim放入〜/ .vim / plugin /或$ HOME \\ vimfiles \\ plugin \\
2)在after / colors / .vim中创建您的colorscheme自定义项
3) 在after / colors / common.vim中创建全局自定义(针对所有颜色方案)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.