在.vimrc
中,是否可以加载仅存在的配色方案?
最佳答案
如果只想在尝试捕获中将:colorscheme
用作Randy has done,则仅将其加载即可,否则执行其他操作即可。如果您对else部分不感兴趣,只需一个简单的:silent! colorscheme
就足够了。
否则, globpath()
是必经之路。然后,如果您确实愿意,可以检查用filereadable()
返回的每个路径。
" {rtp}/autoload/has.vim
function! has#colorscheme(name) abort
let pat = 'colors/'.a:name.'.vim'
return !empty(globpath(&rtp, pat))
endfunction
" .vimrc
if has#colorscheme('desert')
...
编辑:
filereadable($HOME.'/.vim/colors/'.name.'.vim')
看起来很简单,而且绝对具有吸引力,但是如果我们要寻找的颜色方案在其他地方,这还不够。通常情况下,如果有插件管理器,它是否已安装在另一个目录中。在这种情况下,唯一可靠的方法是检入vim 'runtimepath'
(又称'rtp'
)。因此globpath()
。请注意,:colorscheme name
命令搜索{rtp}/colors/{name}.vim
。关于vim - 在我的.vimrc中,如何检查配色方案的存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5698284/