2013-08-03 3 views
1

У меня есть несколько файлов R и Python, все из которых я работаю одновременно. Я предпочитаю иметь разные цвета, а не только для разных типов файлов, но для разных файлов одного и того же типа. Это так, что я могу легко найти их на своем экране и быстро переключить свой разум с одного фрагмента кода на другой. Могу ли я сделать это автоматически в своем vimrc? Переменная filetype не является тем, что я ищу, поскольку уже есть несколько ответов на этот конкретный вопрос. Я хочу изменить colorschemes на основе файла * name *.Как активировать цветовую схему при загрузке определенного файла в vim

Например, один файл можно назвать bbg.r, тогда как другой можно назвать fx.r. Обратите внимание, что это не расширение, которое меня интересует, чтобы изменить цветовую схему, это для отдельных файлов, поэтому вышеупомянутые два файла должны вызывать разные цветовые схемы.

+1

дубликата http://stackoverflow.com/questions/16692581/automatically -change-colorscheme-based-on-filetype и http://stackoverflow.com/questions/15153381/why-is-my-vim-colorscheme-changing-when-i-change-buffers и http://stackoverflow.com/questions/12062491/how-to-get-different-colorschemes-in-vim-split-window? rq = 1 и http://stackoverflow.com/questions/5171184/how-to-set-a-different-colorscheme -for-each-file-type-in-vim? rq = 1 –

+0

Пожалуйста, прочитайте вопрос. Вы предлагаете альтернативные ответы * все * из которых предназначены для разных типов файлов **. Это для отдельных файлов. Таким образом, нет дублирования, как я уже искал. –

+0

Если вы уже нашли их, рекомендуется обратиться к этому вопросу в свой вопрос, чтобы мы знали, с чем именно вы боретесь. Адаптация от типов файлов к файлам не является большой разницей. –

ответ

2

Цветовые схемы загружаются для всех буферов, но если вы просто хотите загрузить определенную цветовую схему при загрузке буфера для sagb.r, вы можете использовать следующую цветовую схему.

autocmd BufEnter sagb.r colorscheme <colorscheme_name> 

И затем, если вы хотите сбросить ColorScheme по умолчанию один, когда вы выходите из буфера можно использовать

autocmd BufLeave sagb.r colorscheme <default_colorscheme> 

В общем

autocmd BufEnter <filename> colorscheme <colorscheme_for_file> 
autocmd BufLeave <filename> colorscheme <default_colorscheme> 
1

У вас есть две общие механизмы определение конкретных предметов для конкретных типов файлов:

  • автокоманды, см :help autocmd,

  • ftplugins см :help ftplugin.

Однако, они не будут иметь какой-либо помощи, то здесь, потому что

Vim может иметь только один активный ColorScheme одновременно.

С другой стороны, если вы используете отдельные экземпляры, вы можете отлично иметь разные цвета. Если это так, то вы можете сделать что-то вроде:

function! FTColors() 
    if &filetype == "python" 
     colorscheme foo 
    elseif &filetype == "r" 
     colorscheme bar 
    else 
     colorschem baz 
    endif 
endfunction 

autocmd BufNew,BufEnter * call FTColors() 

или:

autocmd BufNew,BufEnter * colorscheme baz 
autocmd BufNew,BufEnter *.py colorscheme foo 
autocmd BufNew,BufEnter *.r colorscheme bar 

(не тщательно протестированы)

+0

Да, я имею тенденцию иметь отдельные экземпляры, работающие именно по этой причине (хотя tabpagecolorscheme.vim addin обходит это ограничение). На самом деле для отдельных файлов (даже одного и того же типа файлов) я хочу изменить цвета. –

Смежные вопросы