我希望能够通过创建宏来轻松地在vim中制作漂亮的代码标题。我希望他们喜欢这样的东西:
################################################################################
### Preamble ###
################################################################################
为了做到这些,我想从一行开始:
Preamble
然后宏会产生周围的散列和空格。要做到这一点,我需要以某种方式抽出标题中的字符数。所以在前言的情况下;我想将8的长度复制到某个寄存器中。
任何想法如何做到这一点?
答案 0 :(得分:2)
我不推荐这种风格,因为它的维护需要很高的努力(并不是每个人都使用像Vim这样强大的编辑器,或者有你的宏),但你可以用{{{{{{ 1}}功能:
strdisplaywidth()
较旧的Vim版本没有这个; :echo strdisplaywidth(getline('.'))
是一个只能处理普通ASCII字母的替换。
哦,在你问之前,你可以用strlen()
答案 1 :(得分:2)
正如@FDinoff所说,我会使用替换模式粘贴,而不是计算长度。首先,将以下行放入寄存器,例如t
寄存器:“ t y y
### ###
接下来,抓住没有结束线的Preamble
行: 0 v g _ < KBD> d
然后,从t
粘贴我们的行并移动到适当的位置:“ t P 4 < / KBD> 升
最后,使用替换模式粘贴Preamble
: R Ctrl + r “