• 列出Vim的所有颜色showcolor.vim


    列出Vim的所有颜色-showcolor.vim | Vimer的程序世界

    好吧,我承认我又无聊了---说白了就是在终端Vim中列出所有的256颜色,用来供配色方案选择。
    废话不多说,先上截图如下:

    1

    哈哈,感觉还是不错吧,这样就可以慢慢选择啦。
    下载链接:http://www.vim.org/scripts/script.php?script_id=3235
    安装要求:

    1.vim编译了python支持
    2.机器上安装了python

    调用方式:
    把showcolor.vim放到plugin目录下,执行:

    :call ShowColorTerm()

    当然,上面这个命令是只准在终端下执行的,在gui下执行会报如下错误:

    2

    另外,插件也实现了gui下的颜色显示,截图如下:

    3

    调用方式:

    :call ShowColor(0x00,0xFF,15)

    三个参数分别是:起始颜色,终止颜色,每行颜色个数。
    有3个参数的原因是,因为全部列出所有的配色是不可能的(即使用python,vim也会卡死),所以必须指定范围。

    列出代码如下:

    function! ShowColor(beginColor,endColor,lineSize) 
        if(!has('gui_running'))
            echohl WarningMsg | echo "Must use this function in gui." | echohl None
            return
        endif
    python << EOF
    import vim
    def LinkColor(xColor,beginColor,endColor):
        strColor = '#%06x' % xColor
        matchName = 'scname%06x' % xColor
        strFgColor = ''
        if xColor > (0xFFFFFF-0x000000)/2:
            strFgColor = '#%06x' % 0x000000
        else:
            strFgColor = '#%06x' % 0xFFFFFF
        cmdHighLight = 'hi %s guifg=%s guibg=%s' % (matchName,strFgColor,strColor)
        cmdMatch = 'syn match %s "%s"' % (matchName,strColor)
        vim.command(cmdMatch)
        vim.command(cmdHighLight)
    def PyShowColor():
        beginColor = int(vim.eval('a:beginColor'),16)
        endColor = int(vim.eval('a:endColor'),16)
        lineSize = int(vim.eval('a:lineSize'),10)
        curColor = beginColor
        while(True):
            lColor = []
            for i in range(0,lineSize):
                lColor.append('#%06x' % curColor)
                LinkColor(curColor,beginColor,endColor)
                curColor += 1
                if curColor > endColor:
                    break
            vim.current.buffer.append(' '.join(lColor))
            vim.current.buffer.append('\n')
            if curColor > endColor:
                break
    vim.current.buffer[:]=None
    PyShowColor()
    EOF
    endfunction
    function! ShowColorTerm() 
        if(has('gui_running'))
            echohl WarningMsg | echo "Must use this function in term." | echohl None
            return
        endif
    python << EOF
    beginColor = 0
    endColor = 255
    import vim
    def LinkColor(xColor):
        matchName = 'scname%u' % xColor
        fgColor = 0
        if xColor > (endColor-beginColor)/2:
            fgColor = beginColor
        else:
            fgColor = endColor
        cmdHighLight = 'hi %s ctermfg=%u ctermbg=%u' % (matchName,fgColor,xColor)
        cmdMatch = 'syn match %s "%03u"' % (matchName,xColor)
        vim.command(cmdMatch)
        vim.command(cmdHighLight)
    def PyShowColor():
        lineSize = 16
        curColor = beginColor
        while(True):
            lColor = []
            for i in range(0,lineSize):
                lColor.append('%03u' % curColor)
                LinkColor(curColor)
                curColor += 1
                if curColor > endColor:
                    break
            vim.current.buffer.append(' '.join(lColor))
            vim.current.buffer.append('\n')
            if curColor > endColor:
                break
    vim.current.buffer[:]=None
    PyShowColor()
    EOF
    endfunction

    另外,用python来写vim插件真的比vim本身的脚本好很多,可以在vim中直接输入:

    :h python-vim

    来进行学习。

  • 相关阅读:
    身残志坚,贫困学子返乡创业,做出生态产业园
    贫苦藏家女养豪猪,成功带领村民脱贫致富
    南航大学生校内创业,5个小摊位月销售5万元
    $_server[]关于浏览器和服务器的参数获取
    $_server[]关于浏览器和服务器的参数获取
    $_server[]关于浏览器和服务器的参数获取
    $_server[]关于浏览器和服务器的参数获取
    [20170616]recover copy of datafile 6.txt
    [20170616]recover copy of datafile 6.txt
    [20170616]recover copy of datafile 6.txt
  • 原文地址:https://www.cnblogs.com/lexus/p/2390577.html
Copyright © 2020-2023  润新知