.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/

10-10 17:18