【问题标题】:How to get the list of all installed color schemes in Vim?如何获取 Vim 中所有已安装配色方案的列表?
【发布时间】:2011-11-12 00:21:42
【问题描述】:

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

【问题讨论】:

    标签: list vim color-scheme


    【解决方案1】:

    键入

    :colorscheme 然后是 Space 后跟 TAB

    或者正如彼得所说,

    :colorscheme 然后是 Space 然后是 CTRLd

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

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

    【讨论】:

    • 如果您安装了很多方案,实际上会更好。
    • 或者如果你有:set wildmenu,你可以通过点击tab获得与<c-d>相同的效果。
    • :colorscheme 之后添加空格后为我工作。也许这是微不足道的事情,但是,我花了一些时间来揭示。
    • @jutky :你是对的,否则它只会完成命令名称。我会相应地更新答案。
    • :colo 并不是真正的短格式。它刚刚完成,因为没有冲突的命令。如果您发出“colobanana”之类的命令,那么:colo 将有多个“长格式”,因此它不会按建议工作。
    【解决方案2】:

    您可以在/usr/share/vim/vimNN/colors 下看到配色方案列表(NN 是版本,例如vim74 用于 vim 7.4)。

    这是解释here

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

    【讨论】:

    • 那错过了用户安装的配色方案(在主目录下)。
    • 颜色表的路径,正是我想要的,谢谢!
    • 请注意vimNN中的NN将对应vim的版本,例如vim74 对于 vim 7.4。只是想指出这一点,因为我很慢,当我去看的时候它让我做了双重考虑;)
    • @AdamP 我在答案中添加了精确度。
    【解决方案3】:

    只是为了方便参考,因为我看到有很多人在搜索这个主题并且太懒了......对不起,忙,检查自己(包括我)。这是 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 
    

    【讨论】:

    • 非常有用的列表。对于那些眼睛较老,甚至更忙的人,以下是我认为最易读的:delek、koehler、slate 和 zellner。我选择了zellner。
    • 不错的选择,但对我来说红色可能有点太多了。我更喜欢沙漠,它使用绿松石色/浅蓝色。 (在 vim 中,输入 :colors Desert)
    • 我一直使用 torte,它在我看来似乎有很好的对比度,不会试图成为“风格”,也不会“浪费对比度带宽”通过使颜色相似。
    【解决方案4】:

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

    循环浏览所有已安装的颜色方案。轻松选择配色方案的好方法。

    【讨论】:

      【解决方案5】:

      这是我编写的一个小函数,用于尝试 $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
      

      【讨论】:

      • 调用 DisplayColorSchemes()
      【解决方案6】:

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

      其他方法是使用很酷的脚本ScrollColors,在您使用j/k 滚动方案时预览颜色方案。

      【讨论】:

        【解决方案7】:

        查看我系统的 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. 获取所有运行时可用的配色方案脚本列表 路径(全局路径、运行时路径)
        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
        

        这意味着我更喜欢 'solarized' 然后是 'darkblue' 方案;如果它们都不可用,则什么也不做。

        【讨论】:

          【解决方案8】:

          一个很好的解决方案,感谢您的贡献者。多年来,我一直在为一个完全蹩脚的配色方案而苦苦挣扎——在 Windows Vista 下使用 SSH 连接到 Redhat 系统,终端类型为 xterm。 编辑器会为各种关键字提供黑色背景和奇怪的颜色。 更糟糕的是——在离开 Vim 后,奇怪的配色方案仍然存在于 xterm 终端中。

          真的很混乱。

          此外,Backspace 在插入模式期间失败,这很难记住 - 尽管 Delete 做了同样的事情。

          解药 --

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

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

            b.勾选“启用 ANSI 颜色”

            c。标准的文本颜色可能还可以

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

            配色方案默认

            如果 &term == "xterm"

            设置 t_kb=^H

            固定删除

            结束

          3. 注意:^H 必须键入 ctrl-V ctrl-H。看起来很奇怪,但这似乎有效。

          【讨论】:

            【解决方案9】:

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

            :help getcompletion():

            :echo getcompletion('', 'color')
            

            您可以将其分配给变量:

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

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

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

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

            【讨论】:

              【解决方案10】:

              试试

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

              在您的~/.vimrc 中。

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

              第四行使领导者, 而不是默认的\

              最后一行让您只需键入,c 即可获得列表并提示您更改配色方案。

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

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

              【讨论】:

                【解决方案11】:

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

                您可以使用 - CTRL + W + W ENTER

                返回到您正在编辑的文件

                注意:只有当您的主目录中有一个.vim/colors 目录用于当前$USER (我有 70 多个主题)

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

                72

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2011-11-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-12-06
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-03-12
                  相关资源
                  最近更新 更多