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


431

有没有一种方法可以获取Vim中所有已安装的配色方案的列表?这样一来,无需查看.vim目录即可轻松选择一个目录。

Answers:


620

类型

:colorscheme然后SpaceTAB

或如彼得所说,

:colorscheme然后SpaceCTRLd

该命令的缩写形式是:colo,您可以在前两个命令中使用它,而不必使用“长格式”。

如果您想查找和预览更多主题,可以使用Vim colors等各种网站


41
也可以尝试<c-d>
Peter Rincker 2011年

1
如果您安装了很多方案,<cd>实际上会更好。
Xavier T.

2
或者,如果您具有:set wildmenu某种效果,则可以得到<c-d>与单击选项卡相同的效果。
Conrad.Dean 2012年

之后我增加了空间,为我工作:colorscheme。也许这很琐碎,但是,我花了一些时间来揭示。
jutky

4
:colo并不是真正的简短形式。因为没有冲突的命令,所以刚刚完成。如果您执行了诸如“ colobanana”之类的命令,:colo则将有多个“长格式”,因此它不会像建议的那样起作用。
dylnmc '16

53

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

在这里解释。

在linux服务器上,我通过ssh使用TABprints ^ICTRLdprints ^D


10
错过了用户安装的配色方案(在主目录下)。
Cristian Ciupitu

4
色表的路径,正是我要寻找的谢谢!
Corepuncher 2013年

1
注意,NNin vimNN将对应于vim的版本,例如vim74vim 7.4。只是想指出这一点,因为我很慢,当我去看时它让我做了两次尝试;)
Adam P

1
@AdamP我在答案中添加了精度。
法比恩

43

只是为了方便参考,因为我看到有很多人在搜索这个主题,但他们太懒了……抱歉,很忙,无法检查自己(包括我)。这是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 

5
非常有用的清单。对于那些眼睛较老,甚至更忙的人,以下是我发现最易读的那些:delek,koehler,slate&zellner。我选择了zellner。
theRiley

不错的选择,但对我来说可能有点过多的红色。我更喜欢使用绿松石/浅蓝色的沙漠。(在vim中,键入:colors desert)
HAltos '19

我一直都用过奶油色,对我来说似乎具有良好的对比度,并且不会尝试成为“样式”,并且不会通过使颜色相似来“浪费对比度带宽”。
NeilG


9

这是我编写的一个小功能,可以尝试$ 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

1
致电DisplayColorSchemes()
Haagenti 2015年

8

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

另一种方法是使用很酷的脚本ScrollColors,当您使用滚动方案时可以预览颜色方案j/k


6

查看系统的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

它执行以下操作:

  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

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


3

一个很好的解决方案,谢谢您的贡献者。多年来,我一直在竭力解决完全糟糕的配色方案-在Windows Vista下使用SSH到Redhat系统(终端类型xterm)使用SSH。编辑者会想到黑色背景和各种关键字的怪异颜色。更糟糕的是-离开Vim后,奇怪的配色方案仍会粘在xterm终端中。

真令人困惑。

另外,在插入模式下,Backspace失败了,这很让人难以忘怀-尽管Delete也做同样的事情。

治愈 -

  1. 在SSH监视器中,选择“编辑/设置”。

    一个。选择配置文件设置/颜色

    b。检查“启用ANSI颜色”

    C。标准文本颜色可能还可以

  2. 将这些行添加到$ HOME / .vimrc中:

    colorscheme默认

    如果&term ==“ xterm”

    设置t_kb = ^ H

    Fixdel

    万一

  3. 注意:^ H必须键入为ctrl-V ctrl-H。似乎很奇怪,但这似乎可行。


0

尝试

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

在你的~/.vimrc

前两行使可能的匹配显示为列表。您可以使用其中之一。

第四行成为leader,,而不是默认值\

最后一行允许您简单地键入,c以获取列表和提示以更改颜色方案。

第三行有效地允许Tabs出现在关键图中。

(当然,所有这些策略我都是最近从互联网上学到的,大部分都是SO。)


0

另一种更简单的方法是在编辑文件时tabe ~/.vim/colors/ -ENTER 将在vim窗口的新选项卡中打开所有主题。

您可能会回到使用-ENTER编辑的文件CTRL + W + W

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

[user @ host〜] $ ls -l〜/ .vim / colors | wc -l

72

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.