• vim缩进参考线


    编辑缩进嵌套的文件时想找到对应的层级比较困难,写了一个函数,使用cc选项设定一条辅助线,标识到指定的缩进层级。代码如下:

    ReferenceLine
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    " --------------------------------------------------
    " [参考线切换] {{{
    " --------------------------------------------------
    fu! ReferenceLine(t)
        if exists('w:ccnum')
            let ccnum=w:ccnum
        elsei exists('b:ccnum')
            let ccnum=b:ccnum
        else
            let ccnum=0
        en
        let oldcc=ccnum
        " let ccc=&cc
        " ec oldcc
        let ccc=','.&cc.','
        " add/sub
        if a:t=='add' || a:t=='sub'
            " check old cc
            if match(ccc, ','.oldcc.',')<0
                let oldcc=0
                let ccnum=0
            en
            " step
            let csw=&sw
            if a:t=='add'
                let ccnum=ccnum + csw
            elsei a:t=='sub'
                let ccnum=ccnum - csw
                if ccnum < 0 | let ccnum=0 | en
            en
            if oldcc > 0 | let ccc=substitute(ccc, ','.oldcc.',', ',', '') | en
            let ccc=ccc.ccnum
            " ec ccc
            " ec ccnum
            let ccc=substitute(ccc, '^0,|,0,|,0$', ',', 'g')
            let ccc=substitute(ccc, '^,+|,+$', '', 'g')
            " ec ccc
            let w:ccnum=ccnum
            let b:ccnum=ccnum
            exec "setl cc=".ccc
        " del
        elsei a:t=='del'
            let ccc=substitute(ccc, ','.oldcc.',', ',', '')
            let ccc=substitute(ccc, '^,+|,+$', '', 'g')
            " ec ccc
            let w:ccnum=0
            let b:ccnum=0
            exec "setl cc=".ccc
        en
    endf
    nn <silent> <A-u> :call ReferenceLine('sub')<CR>
    nn <silent> <A-o> :call ReferenceLine('add')<CR>
    " }}}

    使用方法:
    Alt+o 增加参考线、Alt+u 减少参考线,最后两行是键映射,可以按照需求自行修改。
    设定参考线后,如果想要设定cc做列宽参照,请使用set cc+=<num>来设定。

    效果如下:左侧的是缩进辅助线,右侧的是手动设置的列宽参照。

  • 相关阅读:
    AIX系统/var/adm/wtmp大文件处理
    script & scriptreplay
    Ubuntu/Debianpxe/isopreseed
    Ubuntu12.04安装gimp-2.8
    Ubuntu 3D特效一览
    Unix history图览
    Undelete Files on Linux Systems
    开源界有趣的循环缩写和LOGO
    Ubuntu上的dock
    linux下歌曲、视频、文件等乱码
  • 原文地址:https://www.cnblogs.com/wajika/p/6554541.html
Copyright © 2020-2023  润新知