内置方案>“Solarized dark”,一个名为“light”,带Solarized ligh-6ren">
gpt4 book ai didi

ubuntu - ubuntu终端中的vim : "background" property is set after vimrc is loaded

转载 作者:行者123 更新时间:2023-12-04 18:40:41 26 4
gpt4 key购买 nike

我在 ubuntu 的默认终端中使用 vim。
我设置了两个终端配置文件:一个名为“dark”,颜色>内置方案>“Solarized dark”,一个名为“light”,带Solarized light。

在 Vim 中,我喜欢突出显示光标行,所以我把这个命令放在我的 vimrc 中。 :

hi CursorLine   cterm=NONE ctermbg=254 ctermfg=NONE

这会以浅灰色背景突出显示光标线。使用 Solarized Light 时它是完美的,但在使用 Solarized Dark 时则完全不是。

幸运的是,通过某种我不理解的机制,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属性尚未更改。

请注意,如果我执行 source ~/.vimrc当我在 Vim 中时,它工作得很好,光标线以正确的颜色突出显示。

关于如何解决这个问题的任何想法?

配置

vim 7.4.1689
GNOME 终端 3.18.3
Ubuntu 16.04 LTS 和 Ubuntu 17.04

编辑

请注意 我没有:colorscheme <something>在我的vimrc :我通过 gnome 终端配置文件获得日晒主题。我认为 Vim 不“知道”我正在使用这些颜色。只是某些脚本以某种方式设置了 vim 的 background根据我的 gnome 终端颜色选择而变化。

最佳答案

有一个名为 AfterColors.vim 的 vim 插件允许在加载配色方案后自定义事物。您基本上需要将突出显示光标线语句( hi CursorLine... )放在 after/colors/common.vim 中文件。

从 AfterColors.vim 脚本的文档中:

Allows you to create an after/colors/ script for customizing any colorscheme.

-- EXAMPLE -- If you like the 'desert' colorscheme, but you really want comments to be red and functions to be blue, previously you would copy the entire colorscheme into your home directory and customize it. With this plugin installed, you can create a small script to change just the parts you want for that colorscheme, exactly how you would for an ftplugin or syntax script:

For unix systems you would create: ~/.vim/after/colors/desert.vim: highlight Comment guifg=Red ctermfg=Red highlight Function guifg=Blue ctermfg=Blue

On windows you would create: C:\Documents and Settings\Peter\vimfiles\after\colors\desert.vim: highlight Comment guifg=Red ctermfg=Red highlight Function guifg=Blue ctermfg=Blue

-- VERSION 6 WARNING -- If your Vim is older than version 7, then the after/colors scripts will only be loaded once when Vim starts. This will not be a problem if you choose your colorscheme in your .vimrc file, but if you change your colorscheme after vim has loaded then your after/colors scripts will be ignored. This is not an issue in Vim 7.



和,

install details

1) Put AfterColors.vim in ~/.vim/plugin/ or $HOME\vimfiles\plugin\

2) Create your colorscheme customizations in after/colors/.vim

3) Create global customizations (for all colorschemes) in after/colors/common.vim



链接: AfterColors.vim plugin home page

关于ubuntu - ubuntu终端中的vim : "background" property is set after vimrc is loaded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com