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


当前回答

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出现在键映射中。

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

其他回答

下面是我编写的一个小函数,用于尝试$VIMRUNTIME/colors目录中的所有配色方案。

将下面的函数添加到vimrc中,然后打开源文件并从命令调用该函数。

function! DisplayColorSchemes()
   let currDir = getcwd()
   exec "cd $VIMRUNTIME/colors"
   for myCol in split(glob("*"), '\n')
      if myCol =~ '\.vim'
         let mycol = substitute(myCol, '\.vim', '', '')
         exec "colorscheme " . mycol
         exec "redraw!"
         echo "colorscheme = ". myCol
         sleep 2
      endif
   endfor
   exec "cd " . currDir
endfunction

如果你愿意安装插件,我推荐https://github.com/vim-scripts/CycleColor。

循环使用所有已安装的配色方案。很好地选择一个配色方案。

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

参见:help getcompletion():

:echo getcompletion('', 'color')

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

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

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

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

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

Type

:配色方案,然后空格,然后TAB。

或者如彼得所说,

:配色方案,然后空格后跟CTRLd

该命令的简短版本是:colo,因此您可以在前面的两个命令中使用它,而不是使用“长形式”。

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出现在键映射中。

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