是否有一种方法可以在Vim中获得所有已安装的配色方案的列表?这样就可以很容易地选择一个,而不需要查看.vim目录。


当前回答

我知道我回答这个问题有点晚了,但正确答案似乎是

参见:help getcompletion():

:echo getcompletion('', 'color')

你可以把它赋值给一个变量:

:let foo = getcompletion('', 'color')

或者在表达式寄存器中使用:

:put=getcompletion('', 'color')

这不是我的答案,这个解决方案是由reddit上的u/romainl提供的。

其他回答

Try

set wildmenu
set wildmode=list:full
set wildcharm=<C-z>
let mapleader=','
nnoremap <leader>c :colorscheme <C-z><S-Tab>

在~/.vimrc中。

前两行使可能的匹配显示为列表。你可以用其中之一,也可以两者都用。

第四行是leader,而不是默认的\。

最后一行允许你简单地输入c来得到一个列表和一个改变配色方案的提示。

第三行有效地允许tab出现在键映射中。

(当然,所有这些策略都是我最近从网上学到的。)

看着我的系统菜单。vim(寻找“配色方案子菜单”)和@chappar的答案,我想出了以下函数:

" Returns the list of available color schemes
function! GetColorSchemes()
   return uniq(sort(map(
   \  globpath(&runtimepath, "colors/*.vim", 0, 1),  
   \  'fnamemodify(v:val, ":t:r")'
   \)))
endfunction

它的功能如下:

获取所有运行时下可用的配色方案脚本的列表 路径(globpath, runtimepath) 将脚本路径映射到它们的基名(条带父dirs和 扩展)(映射,fnamemodify) 排序和删除重复项(uniq, sort)

然后使用这个函数,我这样做:

let s:schemes = GetColorSchemes()
if index(s:schemes, 'solarized') >= 0
   colorscheme solarized
elseif index(s:schemes, 'darkblue') >= 0
   colorscheme darkblue
endif

这意味着我更喜欢“太阳能”和“深蓝色”方案;如果没有,什么都不做。

另一种更简单的方法是在编辑文件时-表~/。vim /颜色/输入 将在vim窗口的新选项卡中打开所有主题。

您可以返回到您正在编辑的文件使用- CTRL + W + W ENTER

注意:只有当你当前$USER的主目录中有一个.vim/colors目录时,以上才有效 (我有70多个主题)

[user@host ~]$ ls -l ~/.vim/colors |厕所 -l 72

只是为了方便参考,因为我看到有很多人在搜索这个话题,他们太懒了…对不起,很忙,要自己检查(包括我)。下面是Vim 7.4的默认配色方案:

blue.vim
darkblue.vim,
delek.vim
desert.vim
elflord.vim
evening.vim
industry.vim                                                                                                                                                 
koehler.vim                                                                                                                                                  
morning.vim                                                                                                                                                  
murphy.vim                                                                                                                                                   
pablo.vim                                                                                                                                                    
peachpuff.vim                                                                                                                                                
ron.vim                                                                                                                                                      
shine.vim                                                                                                                                                    
slate.vim                                                                                                                                                    
torte.vim                                                                                                                                                    
zellner.vim 

你可以在/usr/share/vim/vimNN/colors下面看到配色方案的列表(NN是版本,例如vim 7.4的vim74)。

这里解释一下。

在我通过ssh使用的linux服务器上,TAB打印^I, CTRLd打印^D。