如何获取Vim中所有已安装颜色方案的列表?

tun*_*nuz 397 vim color-scheme list

有没有办法在Vim中获取所有已安装颜色方案的列表?这样可以很容易地选择一个而不查看.vim目录.

Xav*_* T. 577

类型

:colorscheme然后SpaceTAB.

或者彼得说,

:colorscheme然后SpaceCTRLd

该命令的简短版本是:colo您可以在之前的两个命令中使用它,而不是使用"长形式".

如果您想查找和预览更多主题,有各种网站,如Vim颜色

  • 也试试`<cd>` (41认同)
  • `:colo`不是真正的*短形式*.它刚刚完成,因为没有冲突的命令.如果你做了一个像"colobanana"这样的命令,那么`:colo`会有多个"long form",所以它不会像建议的那样工作. (4认同)
  • 如果你安装了很多方案,&lt;cd&gt; 实际上会更好。 (2认同)
  • 或者,如果你有`:set wildmenu`,你可以通过点击标签获得与`<cd>`相同的效果. (2认同)

Fab*_*ien 49

您可以在下面看到颜色方案列表/usr/share/vim/vimNN/colors(NN作为版本,例如vim74vim 7.4).

在这里解释.

在Linux服务器上,我通过ssh,TAB打印^ICTRLd打印使用^D.

  • 这错过了用户安装的颜色方案(在主目录下). (9认同)
  • 颜色表的路径,正是我要找的感谢! (3认同)

run*_*el0 34

只是为了方便参考,因为有很多人搜索这个主题,以获得快速参考,太懒...对不起,忙,检查自己(包括我),这里的默认颜色方案集的列表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 
Run Code Online (Sandbox Code Playgroud)

  • 非常有用的清单。对于那些眼睛较老,甚至更忙的人,以下是我发现最易读的那些:delek,koehler,slate&zellner。我选择了zellner。 (5认同)
  • 我一直使用 *torte*,在我看来,它具有良好的对比度,并且不会试图成为一种“风格”,并且不会通过使颜色相似来“浪费对比度带宽”。 (2认同)

Joh*_*rls 13

如果您愿意安装插件,我建议您使用https://github.com/vim-scripts/CycleColor.

循环浏览所有已安装的colorschemes.轻松选择colorscheme的好方法.


unp*_*680 7

如果你有你的vim编译+menu,就可以按照用菜单:helpconsole-menu.从那里,您可以导航到Edit.Color\ Scheme获取与in相同的列表gvim.

其他方法是使用一个很酷的脚本ScrollColors,它在您滚动方案时预览colorschemes j/k.


cha*_*par 7

这是我编写的一个小函数,用于尝试$ VIMRUNTIME/colors目录中的所有colorschemes.

将以下函数添加到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
Run Code Online (Sandbox Code Playgroud)


roy*_*roy 5

查看系统的menu.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
Run Code Online (Sandbox Code Playgroud)

它执行以下操作:

  1. 获取所有运行时路径(globpath,runtimepath)下可用的配色方案脚本的列表
  2. 将脚本路径映射到其基本名称(带状父目录和扩展名)(map,fnamemodify)
  3. 排序并删除重复项(uniq,排序)

然后,要使用该功能,我需要执行以下操作:

let s:schemes = GetColorSchemes()
if index(s:schemes, 'solarized') >= 0
   colorscheme solarized
elseif index(s:schemes, 'darkblue') >= 0
   colorscheme darkblue
endif
Run Code Online (Sandbox Code Playgroud)

这意味着我更喜欢“太阳能”方案,然后是“深蓝色”方案;如果它们都不可用,则什么也不做。


jus*_*eep 5

我知道我这个答案迟到了,但正确的答案似乎是

:help getcompletion():

:echo getcompletion('', 'color')
Run Code Online (Sandbox Code Playgroud)

您可以将其分配给变量:

:let foo = getcompletion('', 'color')
Run Code Online (Sandbox Code Playgroud)

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

:put=getcompletion('', 'color')
Run Code Online (Sandbox Code Playgroud)

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