Vim - 更改.vimrc中的状态行颜色?

时间:2013-03-27 10:50:06

标签: vim background-color statusbar

从这个问题:How can I change vim status line colour?我学会了如何更改状态线着色,如下所示:

hi StatusLine ctermbg=3 ctermfg=4

这很好,但我怎么能一直为每个窗口做这个,而不是必须为我打开的每个新窗口应用命令。我希望在.vimrc中这样做,但我无法理解如何。

我在一个不是gui的终端上运行vim;我正在使用沙漠作为颜色方案。


ANSWER!: 在Ingo和Kent提供的答案让我确信我正在做正确的事之后,它仍然无法正常工作。然后我发现我的vimrc中有一行读取

设置背景=黑暗

我不确定为什么会在那里,但当我评论它时,我得到了我想要的状态线颜色。


不是答案!: 嗯。。好。我刚刚发现,当我编辑vimrc时,对.vimrc进行更改确实给了我正确的颜色,但是当我编辑python文件时,状态颜色消失了。我猜这与filetypes = on?

有关

无论哪种方式,当我有更多时间思考它时,我将不得不重新提出这个问题,但似乎'背景设置=黑暗'是一个问题,但它不是整个解决方案。

为什么值得我的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

2 个答案:

答案 0 :(得分:2)

我认为StatusLine没问题(大S)。问题是(我猜):

您将hi StatusLin...放在colorscheme desert来电之前。这样colorscheme就会覆盖你的状态栏突出显示。

您应该将其放在colorscheme desert

.vimrc之后

答案 1 :(得分:1)

首先,您必须在:hi中将:colorscheme命令放在之后的任何~/.vimrc命令中,因为colorscheme可能提供了自己的定义。类似于:set background=...:syntax on

如果状态线的颜色仍然消失,可能(这在您的问题中并不完全清楚)即使切换/打开新窗口,也必须有:autocmd来执行此操作。然后检查已安装的插件。