Vim中的Yank列编号

Vim中的Yank列编号,vim,Vim,我希望能够通过制作宏,在vim中轻松地制作漂亮的代码标题。我希望他们喜欢这样的东西: ################################################################################ ### Preamble ### #############################################

我希望能够通过制作宏,在vim中轻松地制作漂亮的代码标题。我希望他们喜欢这样的东西:

################################################################################
### Preamble                                                                 ###
################################################################################
为了做到这一点,我想从以下几行开始:

Preamble
然后宏将生成周围的哈希和空格。要做到这一点,我需要以某种方式拉动标题中字符的编号。就序言而言也是如此;我想把它的长度8复制到某个寄存器


有什么办法吗?

我不推荐这种风格,因为它的维护需要很高的工作量(而且不是每个人都使用像Vim这样的强大编辑器,也不是每个人都有自己的宏),但您可以使用
strdisplaywidth()
函数:

:echo strdisplaywidth(getline('.'))
旧版本的Vim没有这个功能
strlen()
是一种只能处理普通ASCII字母的替代品


哦,在你提问之前,你可以用
repeat('#',num)
创建标题行,我不推荐这种样式,因为它的维护需要很高的工作量(不是每个人都使用像Vim这样强大的编辑器,也不是每个人都有你的宏),但是你可以用
strdisplaywidth()
函数来实现这一点:

:echo strdisplaywidth(getline('.'))
旧版本的Vim没有这个功能
strlen()
是一种只能处理普通ASCII字母的替代品


哦,在您询问之前,您可以使用
repeat('#',num)

创建标题行,而不是计算长度,我将使用替换模式粘贴,如@FDinoff所说。首先,将以下行拖动到寄存器中,例如
t
寄存器:“tyy

下一步,抓取
序言
行,不带结束行:0vg\u d

然后,将我们的行从
t
粘贴到适当的位置:“tP4l


最后,使用Replace模式粘贴
Preamble
:RCtrl+r“

而不是像@FDinoff所说的那样使用Replace模式粘贴长度。首先,将以下行拖动到寄存器中,例如
t
寄存器:“tyy

下一步,抓取
序言
行,不带结束行:0vg\u d

然后,将我们的行从
t
粘贴到适当的位置:“tP4l


最后,使用替换模式:RCTRL+R“

粘贴”<代码>前缀 >你似乎只想使用替换模式并在用哈希生成框后粘贴在中间。一个好的代码片段插件怎么样?例如,看起来你只想使用替换模式并在用哈希生成框后粘贴在中间。一个好的代码片段插件怎么样?e、 或者我完全同意这里的@Ingo Karkat,请不要这样做。别担心这个。还有很多其他事情需要担心,例如你的代码和文档质量。我完全同意@Ingo Karkat的观点,请不要这样做。别担心这个。还有很多其他事情需要担心,例如,您的代码和文档质量。