gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:38:08 25 4
gpt4 key购买 nike

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

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

如果有冗长的多行注释(因为在描述性标题中经常出现),这可能需要一分钟。这是一项微不足道的任务,我想将其自动化。我的目标是编写一个脚本,允许我选择一个范围(在可视模式下)、输入命令并输入注释字符,从而将选定的行括在上面的框中。我在 VIM 脚本上做了一些尝试,但老实说,我以前从未写过 VIM 脚本,我的代码一团糟,我认为它实际上会损害发布它的原因。

关于如何构建它的任何建议?

最佳答案

你不需要“分钟”来完成这项工作。使用 vim 的 ctrl-v使用 I or c 选择块和 r (replace)你可以很容易地做到这一点。但是,如果您需要每天执行 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你可以为你的边框设置任何字符,这里我使用了 # .
  • 您可以直观地选择行并用字符
  • 包裹它们
  • 您可以通过调用函数
  • 在命令行中给出范围
  • 您可以创建自己的命令作为该函数的包装器或创建映射

  • 一个小演示:

    enter image description here

    关于用注释字符包围多行注释的 VIM 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21118249/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com