2013-03-27 3 views
2

От этого вопроса: How can I change vim status line colour? я узнал, как изменить окраску строки состояния, например:Vim - изменить цвет строки состояния в .vimrc?

hi StatusLine ctermbg=3 ctermfg=4 

Это хорошо, но как я могу сделать это для каждого окна, все время, вместо того, чтобы применить команду для каждое новое окно, которое я открываю. Я ожидал бы сделать это в .vimrc, но я не могу понять, как это сделать.

Я бегу vim в терминале не gui; Я использую пустыню как цветовую схему.


ОТВЕТ !: После ответов, предлагаемых Инго и Кент заверил меня, что я делал правильно, он все еще не работал. Потом я обнаружил, что я имел линию в моем vimrc гласившего

набор фон = темный

я не уверен, почему это было там, но когда я заметил это, я получил цвет строки состояния я хотел.


НЕ ОТВЕТ!: Хм ОК. Я только что обнаружил, что внесение этого изменения в .vimrc действительно дает мне правильные цвета, когда я редактировал vimrc, но когда я редактирую файлы python, цвета статуса исчезли. Я предполагаю, что это связано с файловыми файлами = on?

В любом случае мне придется снова задать этот вопрос, когда у меня будет больше времени, чтобы подумать об этом, но кажется, что проблема «set background = dark» была проблемой, но это не все решение.

За что стоит мой vimrc выглядит следующим образом:

 
colorscheme desert 
autocmd BufRead,BufNewFile *.py syntax on 
autocmd BufRead,BufNewFile *.py set ai 
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,with,try,except,finally,def,class 
set tabstop=4 
set expandtab 
set shiftwidth=4 
filetype indent on 
"GLAUCON START 
:set ignorecase "make searches case insensitive by default 
:set incsearch 
:set hlsearch 
" Returns true if paste mode is enabled 
function! HasPaste() 
    if &paste 
     return 'PASTE MODE ' 
    en 
     return '' 
endfunction 
" Always show the status line 
set laststatus=2 
" Format the status line 
set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l 
hi StatusLine ctermbg=3 ctermfg=4 
"set background=dark 
"GLAUCON END 

ответ

1

Во-первых, вы должны поставить :hi команду после любой :colorscheme команды в вашем ~/.vimrc, как ColorScheme вероятно, дает свое собственное определение. Похожие на :set background=... и :syntax on.

Если цвета статусной линии все еще исчезают, возможно (это было не совсем ясно из вашего вопроса), даже при переключении/открытии новых окон должно быть :autocmd, которое делает это. Затем проверьте установленные плагины.

+0

.... не видел ваш пост, когда я писал мое ... :( – Kent

+0

Спасибо, ваши комментарии привели меня к правильному ответу. Я отредактировал вопрос, чтобы включить то, что я делал неправильно. – glaucon

+0

Errh с тех пор я обнаружил, что это немного более тонко, чем я думал, см. Второе редактирование на вопрос – glaucon

2

Я думаю, что StatusLine в порядке (с большим S). проблема (я думаю):

вы положили hi StatusLin... перед вызовом colorscheme desert. так что colorscheme перезаписывает выделение вашей статусной линии.

Вы должны поместить его после colorscheme desert в вашем .vimrc

+0

Спасибо, ваши комментарии (и Ingos) привели меня к правильному ответу.Я редактировал вопрос, чтобы включить то, что я делаю неправильно. – glaucon

+0

Как и выше - я обнаружил, что это немного более тонко, чем я думал, см. Второе редактирование на вопрос – glaucon

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