Изменение цветовой схемы при изменении типа файла - PullRequest
3 голосов
/ 28 июня 2011

Можно ли изменить цветовую схему в Vim, когда я открываю файл .vim, .htm, .html, .xml или _vimrc? (также изменить цветовую схему, когда я переключаюсь на уже открытый файл с расширением выше)

Это то, что я хочу, чтобы мой vim делал:

file = txt или новый (не сохраненный) буфер: colorscheme1 (defaultcheme по умолчанию)
файл = vimrc, vim, html, htm: colorscheme2

Я также заметил, что мой vim не обнаруживает все типы файлов.
Текстовые файлы не распознаются как текстовые файлы.

пс:
Если это невозможно, можно ли переключиться на другую цветовую схему и оставить ее при перезапуске VIM (без изменения чего-либо в vimrc)?


редактировать

Нашел решение с помощью autocmd:

augroup filetype_colorscheme
    au BufEnter *
    \ if !exists('b:colors_name')
        \ | if &ft == "vim" || &ft == "html"
            \ | let b:colors_name = 'colorscheme 2'
        \ | else
            \ | let b:colors_name = 'colorscheme 1'
        \ | endif
    \ | endif
    \ | exe 'colorscheme' b:colors_name
augroup END 

еще одна проблема :
Приведенный выше код изменяет цветовую схему всех файлов в разделенном окне, когда я щелкаю в буфере

Есть ли способ деактивировать (и реактивировать) autocmd с помощью сочетания клавиш?

1 Ответ

9 голосов
/ 29 июня 2011

Вы должны быть в состоянии достичь чего-то близкого к тому, что вы хотите, с помощью следующих автокоманд:

colo <colourscheme1>  "default
autocmd! BufEnter,BufNewFile *.html,*.vim,*xml colo <colourscheme2>
autocmd! BufLeave *.html,*.vim,*xml colo <colourscheme1>

И, конечно, вы можете изменить список расширений файлов по своему желанию.Цветовая схема будет <colourscheme1> по умолчанию или <colourscheme2>, если вы откроете (или переключитесь на) любой из указанных типов, и вернется к <colourscheme1>, когда вы откроете (или переключитесь на) любой другой тип в сеансе Vim..

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...