Vim: Autocmd для удаления фонового цвета не запускается
Я пытаюсь переопределить фон всех цветовых схем при использовании окон терминала - главным образом потому, что я нахожу прозрачные окна терминала странно захватывающими. Все мои старания в исследованиях направлены на определение автокоманды, которая будет выполняться каждый раз при изменении схемы цветов. В настоящее время команда выглядит так:
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
rmbackground.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
1 ответ
Команды в .vimrc
выполняются последовательно. Вы первая настройка :colorscheme
, но :autocmd
приходит только в конце.
Либо вы перемещаете autocmd до :colorscheme
команда (так что это уже относится к этому), или вы явно :source rmbackground.vim
после :colorscheme
командовать и иметь :autocmd
только для более поздних динамических изменений.