有没有办法在 Vim 中获取所有已安装配色方案的列表?这样可以很容易地选择一个,而无需查看 .vim
目录。
类型
:colorscheme
然后是 Space,然后是 TAB。
或者正如彼得所说,
:colorscheme
然后是 Space 后跟 CTRLd
该命令的简短版本是 :colo
,因此您可以在前面的两个命令中使用它,而不是使用“长格式”。
如果您想查找和预览更多主题,可以使用各种网站,例如 Vim colors
您可以在 /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
这是我编写的一个小函数,用于尝试 $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
编译的,你可以用 console-menu
的 :help
跟随菜单。从那里,您可以导航到 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
它执行以下操作:
获取所有运行时路径(globpath、runtimepath)下可用配色方案脚本的列表 将脚本路径映射到它们的基本名称(去除父目录和扩展名)(map、fnamemodify) 排序和删除重复项(uniq、sort)
然后要使用该功能,我会执行以下操作:
let s:schemes = GetColorSchemes()
if index(s:schemes, 'solarized') >= 0
colorscheme solarized
elseif index(s:schemes, 'darkblue') >= 0
colorscheme darkblue
endif
这意味着我更喜欢 'solarized' 然后是 'darkblue' 方案;如果它们都不可用,则什么也不做。
我知道我迟到了这个答案,但正确的答案似乎是
请参阅:help getcompletion():
:echo getcompletion('', 'color')
您可以将其分配给变量:
:let foo = getcompletion('', 'color')
或在表达式寄存器中使用:
:put=getcompletion('', 'color')
这不是我的答案,此解决方案由 u/romainl 在 reddit 上的 this 帖子中提供。
一个很好的解决方案,感谢您的贡献者。多年来,我一直在为一个完全蹩脚的配色方案而苦苦挣扎——在 Windows Vista 下使用 SSH 连接到 Redhat 系统,终端类型为 xterm。编辑器会为各种关键字提供黑色背景和奇怪的颜色。更糟糕的是——在离开 Vim 后,奇怪的配色方案仍然存在于 xterm 终端中。
真的很混乱。
此外,Backspace 在插入模式下失败,这很难记住——尽管 Delete 做了同样的事情。
治愈 -
在 SSH 监视器中,选择编辑/设置。一个。选择配置文件设置/颜色 b。选中“启用 ANSI 颜色” c。标准文本颜色可能没问题 添加这些行到 $HOME/.vimrc: colorscheme default if &term == "xterm" set t_kb=^H fixdel endif 注意:^H 必须输入为 ctrl-V ctrl-H。看起来很奇怪,但这似乎有效。
尝试
set wildmenu
set wildmode=list:full
set wildcharm=<C-z>
let mapleader=','
nnoremap <leader>c :colorscheme <C-z><S-Tab>
在您的 ~/.vimrc
中。
前两行使可能的匹配项显示为列表。您可以使用其中一个或两个。
第四行使领导者 ,
而不是默认的 \
。
最后一行让您只需键入 ,c
即可获得列表并提示您更改配色方案。
第三行有效地允许 Tab
出现在关键映射中。
(当然,所有这些策略都是我从互联网上学到的,而且大部分都是最近才学到的。)
<C-z>
(我可能不是)会将默认的 ctrl-z 重新映射到您的编辑器的后台,这是我一直做的事情。因此,如果您不知道自己在做什么,请注意绑定此键盘映射。
另一种更简单的方法是在编辑文件时 - tabe ~/.vim/colors/
ENTER 将在 vim 窗口的新选项卡中打开所有主题。
您可以使用 - CTRL + W + W
ENTER 返回到您正在编辑的文件
注意:仅当您的主目录中有当前 $USER
的 .vim/colors
目录时,上述内容才有效(我有 70 多个主题)
[user@host ~]$ ls -l ~/.vim/colors |厕所-l 72
不定期副业成功案例分享
:set wildmenu
,您可以通过点击标签获得与<c-d>
相同的效果。:colorscheme
之后添加空间后为我工作。也许这是微不足道的事情,但是,我花了一些时间来揭示。:colo
并不是真正的短格式。它刚刚完成,因为没有冲突的命令。如果您发出“colobanana”之类的命令,那么:colo
将有多个“长格式”,因此它不会按建议工作。