【发布时间】:2011-11-12 00:21:42
【问题描述】:
有没有办法在 Vim 中获取所有已安装配色方案的列表?这样可以很容易地选择一个,而无需查看 .vim 目录。
【问题讨论】:
标签: list vim color-scheme
有没有办法在 Vim 中获取所有已安装配色方案的列表?这样可以很容易地选择一个,而无需查看 .vim 目录。
【问题讨论】:
标签: list vim color-scheme
键入
:colorscheme 然后是 Space 后跟 TAB。
或者正如彼得所说,
:colorscheme 然后是 Space 然后是 CTRLd
该命令的简短版本是:colo,因此您可以在前面的两个命令中使用它,而不是使用“长格式”。
如果您想查找和预览更多主题,有各种网站,如Vim colors
【讨论】:
:set wildmenu,你可以通过点击tab获得与<c-d>相同的效果。
:colorscheme 之后添加空格后为我工作。也许这是微不足道的事情,但是,我花了一些时间来揭示。
:colo 并不是真正的短格式。它刚刚完成,因为没有冲突的命令。如果您发出“colobanana”之类的命令,那么:colo 将有多个“长格式”,因此它不会按建议工作。
您可以在/usr/share/vim/vimNN/colors 下看到配色方案列表(NN 是版本,例如vim74 用于 vim 7.4)。
这是解释here。
在我通过 ssh 使用的 linux 服务器上,TAB 打印 ^I 和 CTRLd 打印 ^D。
【讨论】:
vimNN中的NN将对应vim的版本,例如vim74 对于 vim 7.4。只是想指出这一点,因为我很慢,当我去看的时候它让我做了双重考虑;)
只是为了方便参考,因为我看到有很多人在搜索这个主题并且太懒了......对不起,忙,检查自己(包括我)。这是 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
【讨论】:
如果你愿意安装插件,我推荐https://github.com/vim-scripts/CycleColor。
循环浏览所有已安装的颜色方案。轻松选择配色方案的好方法。
【讨论】:
这是我编写的一个小函数,用于尝试 $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
【讨论】:
如果你的 vim 使用 +menu 编译,你可以使用 :help 或 console-menu 跟随菜单。从那里,您可以导航到 Edit.Color\ Scheme 以获取与 gvim 中相同的列表。
其他方法是使用很酷的脚本ScrollColors,在您使用j/k 滚动方案时预览颜色方案。
【讨论】:
查看我系统的 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
它执行以下操作:
然后要使用该功能,我会这样做:
let s:schemes = GetColorSchemes()
if index(s:schemes, 'solarized') >= 0
colorscheme solarized
elseif index(s:schemes, 'darkblue') >= 0
colorscheme darkblue
endif
这意味着我更喜欢 'solarized' 然后是 'darkblue' 方案;如果它们都不可用,则什么也不做。
【讨论】:
一个很好的解决方案,感谢您的贡献者。多年来,我一直在为一个完全蹩脚的配色方案而苦苦挣扎——在 Windows Vista 下使用 SSH 连接到 Redhat 系统,终端类型为 xterm。 编辑器会为各种关键字提供黑色背景和奇怪的颜色。 更糟糕的是——在离开 Vim 后,奇怪的配色方案仍然存在于 xterm 终端中。
真的很混乱。
此外,Backspace 在插入模式期间失败,这很难记住 - 尽管 Delete 做了同样的事情。
解药 --
在 SSH 监视器中,选择编辑/设置。
一个。选择配置文件设置/颜色
b.勾选“启用 ANSI 颜色”
c。标准的文本颜色可能还可以
将这些行添加到 $HOME/.vimrc:
配色方案默认
如果 &term == "xterm"
设置 t_kb=^H
固定删除
结束
注意:^H 必须键入 ctrl-V ctrl-H。看起来很奇怪,但这似乎有效。
【讨论】:
我知道这个答案我迟到了,但正确答案似乎是
见:help getcompletion():
:echo getcompletion('', 'color')
您可以将其分配给变量:
:let foo = getcompletion('', 'color')
或在表达式寄存器中使用:
:put=getcompletion('', 'color')
这不是我的答案,这个解决方案由 u/romainl 在 reddit 上的 this 帖子中提供。
【讨论】:
试试
set wildmenu
set wildmode=list:full
set wildcharm=<C-z>
let mapleader=','
nnoremap <leader>c :colorscheme <C-z><S-Tab>
在您的~/.vimrc 中。
前两行使可能的匹配显示为列表。您可以使用其中一个或两个。
第四行使领导者, 而不是默认的\。
最后一行让您只需键入,c 即可获得列表并提示您更改配色方案。
第三行有效地允许Tabs 出现在关键映射中。
(当然,所有这些策略都是我从互联网上学到的,而且大部分都是最近才学到的。)
【讨论】:
另一种更简单的方法是在编辑文件时 - tabe ~/.vim/colors/ ENTER
将在 vim 窗口的新选项卡中打开所有主题。
您可以使用 - CTRL + W + W ENTER
注意:只有当您的主目录中有一个.vim/colors 目录用于当前$USER
(我有 70 多个主题)
[user@host ~]$ ls -l ~/.vim/colors | wc -l
72
【讨论】: