在.vimrc
中,是否可以加载配色方案?
答案 0 :(得分:45)
如果只是想加载它,那么在 try-catch 中使用:colorscheme
作为Randy has done可能已经足够了,否则就会执行其他操作。如果您对 else 部分不感兴趣,那么简单的:silent! colorscheme
就足够了。
否则,globpath()
是可行的方法。然后,如果您愿意,可以使用filereadable()
检查返回的每个路径。
" {rtp}/autoload/has.vim
function! has#colorscheme(name)
let pat = 'colors/'.a:name.'.vim'
return !empty(globpath(&rtp, pat))
endfunction
" .vimrc
if has#colorscheme('desert')
...
答案 1 :(得分:30)
@eckes答案的替代方法是尝试加载colorscheme并处理错误(如果它不存在):
try
colorscheme mayormaynotexist
catch /^Vim\%((\a\+)\)\=:E185/
" deal with it
endtry
答案 2 :(得分:8)
您可以使用filereadable
函数检查是否存在颜色方案(例如schemename
):在~/vimfiles/colors
下检查一次(Win32,对于Unix使用~/.vim/colors/
)和一次在$VIMRUNTIME/colors/
下:
if filereadable("/path/to/schemename.vim")
colo schemename
endif
答案 3 :(得分:6)
我的方法类似,
if filereadable( expand("$HOME/.vim/colors/railscast.vim") )
colorscheme railscast
endif
这比硬编码整个路径要强一些。
答案 4 :(得分:1)
这是我在.vimrc
文件中拥有的水。
if filereadable( expand("$HOME/.vim/colors/sublimemonokai.vim") )
colorscheme sublimemonokai "https://github.com/ErichDonGubler/vim-sublime-monokai
" vim-sublime-monokai only support 256 colours in terminal. If you are using a terminal which support truecolor like iterm2, enable the GUI color
set termguicolors
" Otherwise, use below setting to activate the 256 color in terminal
set t_Co=256
else
echom "The sublimemonokai.vim were not found to be used as colorscheme. elflord will be set for the timebeing..."
colorscheme elflord
endif
基本上,它会检查机器上是否存在我喜欢的配色方案。如果是这样,它将选择它并应用所有必要的设置。否则,它将选择vim随附的合适的配色方案。
通过查看其他答案,我的答案与@ user427390答案共享一部分,并且还有其他条件。
以下链接为我编写自己的.vimrc
和vim相关文件提供了很多帮助:
http://learnvimscriptthehardway.stevelosh.com/
答案 5 :(得分:0)
通常,如果我的收藏夹不可用,我会使用带有后备选项的收藏夹colorscheme
。嵌套的try
将使此工作有效:
try
colorscheme solarized
catch
try
colorscheme peachpuff
catch
endtry
endtry
如果colorscheme
都不可用,则将加载默认值(无论系统上发生了什么)。如果一种或两种颜色都不可用,则不会显示任何错误。首先放置您喜欢的colorscheme
。
此外,不带参数的catch
会捕获任何错误。如果您要处理的区域设置会给出不同的错误消息,这将很方便。