我有一个问题,当我启动 VIM 时,我在 .vimrc 上设置的颜色方案在第一次运行 VIM 时不会生效,但是每当我执行:colorscheme 'mycolorscheme' 时,都会应用颜色方案。
我是 linux 的初学者,所以请多多包涵。
我只是在想是否应该设置一个设置。这是我使用 xterm 设置的设置。
.X资源
*customization: -color
XTerm*termName: xterm-256color
Run Code Online (Sandbox Code Playgroud).xsession
if [ -f $HOME/.Xresources ]; then
xrdb -merge $HOME/.Xresources
fi
Run Code Online (Sandbox Code Playgroud)运行后xrdb -query
输出如下:
*customization:-color
XTerm*termName: xterm-256color
Xft.dpi: 96
Xft.antialias: 1
Xft.hinting: 1
Xft.hintstyle: hintslight
Xft.rgba: rgb
Xft.lcdfilter: lcddefault
Run Code Online (Sandbox Code Playgroud)
顺便说一句,每当我想启动 VIM 时,只有颜色方案不会生效。但所有映射和其他设置都有效
这是我的 .vimrc
"**********************************************"
" VUNDLE SETTINGS "
"**********************************************"
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
filetype plugin indent on " required!
"**********************************************"
" PLUGINS "
"**********************************************"
"EasyMotion
Bundle 'Lokaltog/vim-easymotion'
"Sparkup
Bundle 'tristen/vim-sparkup'
"Surround
Bundle 'tpope/vim-surround'
"CsApprox
Bundle 'godlygeek/csapprox'
"**********************************************"
" COLOR SCHEMES "
"**********************************************"
" Distinguised
Bundle 'Lokaltog/vim-distinguished'
" Github
Bundle 'endel/vim-github-colorscheme'
" VividChalk
Bundle 'tpope/vim-vividchalk'
" Pyte
Bundle 'therubymug/vim-pyte'
" Vibrantink
Bundle 'vim-scripts/vibrantink'
"**********************************************"
" MAP LEADER "
"**********************************************"
let mapleader = ","
"**********************************************"
" SYNTAX "
"**********************************************"
syntax enable
"**********************************************"
" VIM SCRIPTS "
"**********************************************"
if has('gui_running')
colorscheme github
else
colorscheme pyte
endif
"**********************************************"
" CUSTOM SETTINGS "
" "
"**********************************************"
set hidden
" Show what mode you're currently at
set showmode
" Enable enhanced command line completion
set wildmenu
" Don't redraw while executing macros
set lazyredraw
" Indentation settings (SOFT TABS)"
set shiftwidth=4
set softtabstop=4
set smarttab
set expandtab "enable this to use spaces instead of tabs
" show line number
set nu
" hightlight as you type
set incsearch
" ignore case when searching
set ignorecase
" set statusline
set laststatus=2
"**********************************************"
" NOTE don't map <c-s> and <c-q> "
"**********************************************"
"**********************************************"
" KEYMAPS "
"**********************************************"
"*******NORMAL MODE MAPPING********"
"map for editing .vimrc
nnoremap <leader>ev :e $MYVIMRC<cr>
"map for sourcing vimrc
nnoremap <leader>sv :so $MYVIMRC<cr>
"map for switching windows
"_ in this keymap is to jump for a line with a nonblank char
nnoremap <space> <c-w><c-w>_
"*******INSERT MODE Mapping********"
"map for escape while in insert mode
inoremap <leader>; <esc>
"map for ins-completion
inoremap <leader>x <c-x>
"*********COMMAND MODE Mappings*******
"exit out of command line mode
cnoremap <leader>; <c-c>
Run Code Online (Sandbox Code Playgroud)
编辑
无论我使用什么终端模拟器,它都不起作用。gnome-terminal 或 xterm。看起来 colorsheme 确实已加载。首次加载时,键入 :colorscheme 会报告我在 .vimrc 上设置的正确颜色方案。但是第一次不会生效。我必须在 VIM 上输入
:colo 'colorschemename'
Run Code Online (Sandbox Code Playgroud)
或再次使用它来激活配色方案
:so $MYVIMRC
Run Code Online (Sandbox Code Playgroud)
但是退出 VIM 后,colorscheme 再次没有生效,而是在启动 VIM 时加载。
提前致谢。
将 colorcheme 指令放入 ~/.vimrc 文件中
例如
colorscheme evening
Run Code Online (Sandbox Code Playgroud)
更新1:
通过您的 ~/.vimrc 和Vundle安装,我重现了您的问题。添加
set t_Co=256
colorscheme evening
Run Code Online (Sandbox Code Playgroud)
在 ~/.vimrc 的末尾,看看这是否适合你。
您还可以查看http://vim.wikia.com/wiki/Using_GUI_color_settings_in_a_terminal
我找到了解决方案。我想我必须回答我自己的问题。我真的很绝望,所以我继续通过 BundleClean 将插件一一删除!在Vundle中检查是否有任何插件行为异常。
毕竟这不是我的 .vimrc 的问题。这是与EasyMotion和CSApprox插件的冲突。
我在Vundle上的CSApprox之前进行了EasyMotion配置,我按照此配置中的说明进行操作。
https://github.com/Lokaltog/vim-easymotion/issues/55
这是另一篇文章,可能会帮助其他人解决与我相同的问题。
https://github.com/Lokaltog/vim-easymotion/issues/39