Vim:用于删除colorscheme背景的Autocmd无法运行

Vim:用于删除colorscheme背景的Autocmd无法运行,vim,terminal,autocmd,Vim,Terminal,Autocmd,在使用终端窗口时,我试图覆盖所有颜色方案的背景-主要是因为我发现透明终端窗口非常令人兴奋。我所有的研究工作都指向定义一个自动命令,它将在每次更改配色方案时运行。当前该命令如下所示: autocmd ColorScheme * so rmbackground.vim rmbackground.vim是我自己制作的一个文件,它基本上列出了一系列hilight命令,如下所示: hi Normal ctermbg=NONE hi Comment ctermbg=NONE ... 现在奇怪的是,如果我

在使用终端窗口时,我试图覆盖所有颜色方案的背景-主要是因为我发现透明终端窗口非常令人兴奋。我所有的研究工作都指向定义一个自动命令,它将在每次更改配色方案时运行。当前该命令如下所示:

autocmd ColorScheme * so rmbackground.vim
rmbackground.vim是我自己制作的一个文件,它基本上列出了一系列hilight命令,如下所示:

hi Normal ctermbg=NONE
hi Comment ctermbg=NONE
...
现在奇怪的是,如果我手动获取rmbackground.vim文件的源代码,那么一切都正常工作,但是自动命令不会按预期运行。如果我将单个hilight命令指定为autocmd,而不是将整个rmbackground文件源化,那么它也不起作用

我对整个问题感到很困惑。下面是我的完整vimrc和rmbackground.vim,以防出现我不知道的冲突。(由于我刚刚开始构建配置文件,所以该文件目前非常糟糕,但我希望您能原谅我;-))

vimrc先生

runtime bundle/vim-pathogen/autoload/pathogen.vim
call pathogen#infect()

"Turn on syntax
if has("syntax")
  syntax on
endif

"Jump to last edited line
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

"Indent correctly
if has("autocmd")
  filetype plugin indent on
endif

set t_Co=256 "use 256 colors
let g:CSApprox_attr_map = { 'bold' : 'bold', 'italic' : '', 'sp' : '' }

set background=light
colorscheme twilight

set showcmd     " Show (partial) command in status line.
set showmatch       " Show matching brackets.
set ignorecase      " Do case insensitive matching
set smartcase       " Do smart case matching
set hlsearch        " Highlight search-terms
set incsearch       " Incremental search
set autowrite       " Automatically save before commands like :next and :make
set hidden             " Hide buffers when they are abandoned
set mouse=a     " Enable mouse usage (all modes)

set history=1000

runtime macros/matchit.vim

set wildmenu
set wildmode=list:longest

set title
set scrolloff=3
set backupdir=~/.vim/tmp,~/.tmp,/var/tmp,/tmp
set directory=~/.vim/tmp,~/.tmp,/var/tmp,/tmp
set ruler

set backspace=indent,eol,start

set tabstop=4
set softtabstop=4
set shiftwidth=4
set shiftround "Round the indention nicely with other indents

set visualbell

"!autocmd
autocmd ColorScheme * so rmbackground.vim

.vimrc
中的命令按顺序执行。您首先设置了
:colorscheme
,但是
:autocmd
仅在最后才出现


要么将autocmd移动到
:colorscheme
命令之前(以便它已应用于该命令),要么在
:colorscheme
命令之后显式地执行
:source rmbackground.vim
,并将
:autocmd
仅用于以后的动态更改。

按顺序执行
.vimrc
中的命令。您首先设置了
:colorscheme
,但是
:autocmd
仅在最后才出现


要么将autocmd移动到
:colorscheme
命令之前(以便它已应用于该命令),要么在
:colorscheme
命令之后显式地执行
:source rmbackground.vim
,并将
:autocmd
仅用于以后的动态更改。

认为这可能是一个路径问题,因此将.vimrc中的最后一行更改为:
autocmd ColorScheme*so$HOME/.vim/rmbackground.vim
,但没有任何更改:p当它位于
.vim
目录中时,只需使用
:runtime-rmbackground.vim
而不是
:source
。认为这可能是路径问题,所以将.vimrc中的最后一行更改为:
autocmd ColorScheme*so$HOME/.vim/rmbackground.vim
,但没有任何更改:当它在你的
.vim
目录中时,你应该简单地使用
:runtime-rmbackground.vim
而不是
:source
。所以我把autocmd行放在病原体的后面,并像你建议的那样将源代码更改为runtime。不幸的是,这似乎没有什么区别。我甚至把运行时rmbackground.vim放在了最后(我认为这意味着rmbackground.vim在启动时会被源代码获取两次),但这也没有什么好运气…:p可能不是我的vimrc中有什么错误(在建议的修改之后),而是由于我使用的CS近似插件?是的,CS近似修改是在.vimrc之后触发的,这是一个可能的原因。您应该告诉我们您正在使用该插件:-)禁用它或尝试将
:runtime
放入
~/.vim/after/plugin/zzz.vim
我创建了文件
.vim/after/plugin/CSApprox.vim
,并将rmbackground.vim的内容放入该文件中,无论何时启动新的vim实例,该文件都有效。对我来说已经够好了!谢谢谢谢我也被CSAbrox咬了一口。所以我把autocmd行放在病原体之后,并像你建议的那样将源代码更改为运行时。不幸的是,这似乎没有任何区别。我甚至把运行时rmbackground.vim放在了最后(我认为这意味着rmbackground.vim在启动时会被源代码获取两次),但这也没有什么好运气…:p可能不是我的vimrc中有什么错误(在建议的修改之后),而是由于我使用的CS近似插件?是的,CS近似修改是在.vimrc之后触发的,这是一个可能的原因。您应该告诉我们您正在使用该插件:-)禁用它或尝试将
:runtime
放入
~/.vim/after/plugin/zzz.vim
我创建了文件
.vim/after/plugin/CSApprox.vim
,并将rmbackground.vim的内容放入该文件中,无论何时启动新的vim实例,该文件都有效。对我来说已经够好了!谢谢谢谢我也被狗咬了一口。
"Remove background set by colorscheme
hi Normal ctermbg=NONE
hi Comment ctermbg=NONE
hi Constant ctermbg=NONE
hi Special ctermbg=NONE
hi Identifier ctermbg=NONE
hi Statement ctermbg=NONE
hi PreProc ctermbg=NONE
hi Type ctermbg=NONE
hi Underlined ctermbg=NONE
hi Todo ctermbg=NONE
hi String ctermbg=NONE
hi Function ctermbg=NONE
hi Conditional ctermbg=NONE
hi Repeat ctermbg=NONE
hi Operator ctermbg=NONE
hi Structure ctermbg=NONE