繁体   English   中英

在ubuntu终端中的vim:加载vimrc后设置“ background”属性

[英]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中创建全局自定义(针对所有颜色方案)

链接: AfterColors.vim插件主页

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM