首页 文章

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

提问于
浏览
2

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

hi StatusLine ctermbg=3 ctermfg=4

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

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


答案:在Ingo和Kent提供的答案让我确信我做的是正确的事后,它仍然无效 . 然后我发现我的vimrc中有一行读过

设置背景=黑暗

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


NOT THE ANSWER ! :好的 . 我've just discovered that making that change to .vimrc does indeed give me the right colours when I was editting vimrc but when I edit python files the status colours are gone. I'猜测这与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 回答

  • 2

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

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

    你应该把它放在 .vimrccolorscheme desert 之后

  • 1

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

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

相关问题