微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VIM脚本用注释字符包围多行注释

对于我工作地点的标题样式注释(包括文件中的主要新代码段),我们使用以下标准:

##################################
# This is a multiline comment    #
# and we've surrounded it by the #
# comment symbol.                #
##################################

如果有一个冗长的多行注释(因为通常在描述性标题中),这可能需要一分钟.这是一项微不足道的任务,我想让它自动化.我的目标是编写一个脚本,允许我选择一个范围(在可视模式下),输入命令,然后输入注释字符,从而将所选行包含在如上所示的框中.我在VIM脚本上做了一些尝试,但老实说,之前从未编写过VIM脚本,我的代码很乱,我认为发布它的原因实际上是不利的.

有关如何构建此建议的任何建议?

解决方法

你不需要“分钟”来完成这项工作.使用v或c和r(替换)的vtrl-v块选择你可以很容易地做到这一点.但是如果你需要每天做100次,这个小功能可以帮助你:

let g:wrap_char = '#'
function! WrapThem() range
    let lines = getline(a:firstline,a:lastline)
    let maxl = 0
    for l in lines
        let maxl = len(l)>maxl? len(l):maxl
    endfor
    let h = repeat(g:wrap_char,maxl+4)
    for i in range(len(lines))
        let ll = len(lines[i])
        let lines[i] = g:wrap_char . ' ' . lines[i] . repeat(' ',maxl-ll) . ' ' . g:wrap_char
    endfor  
    let result = [h]
    call extend(result,lines)
    call add(result,h)
    execute a:firstline.','.a:lastline . ' d'
    let s = a:firstline-1<0?0:a:firstline-1
    call append(s,result)
endfunction

来源该文件,请注意

> g:wrap_char你可以为你的边框设置任何字符,这里我用#.
>您可以直观地选择线条并用char包裹它们
>您可以通过调用函数在命令行中给出范围
>您可以创建自己的命令作为该函数的包装或创建映射

一个小小的演示:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐