这是初始文本。
test1
test2
正文中只有两行。
我想将字符串序列从第 5 行插入到第 16 行。
我已经用下面的代码试过了。
for i in range(1,12)
echo ".item".i.","
endfor
1.初始文本。
2.进入命令模式并输入代码
需要解决的两个问题。
1.echo命令输出第一个字符串
.item1
在结束之前。for i in range(1,12)
echo ".item".i.","
2.如何使用vimscript将字符串序列创建到指定行:从第5行到第16行?
想要的结果如下。
快完成了!
我得到的命令如下
:pu! =map(range(1,12), 'printf(''item%1d'', v:val)')
.他们两个都不能工作。
:5pu! =map(range(1,12), 'printf(''item%1d'', v:val)')
:5,16pu! =map(range(1,12), 'printf(''item%1d'', v:val)')
我想要的格式的最后一个问题是当光标位于第 3 行时,如何创建所需的输出?
最佳答案
为了插入缺失的行,而不插入不需要的空行(-> append()
+ repeat([''], nb)
+ 可能的负值 nb
)
:let lin = 5 - 1
:call append('$', repeat([''], lin-line('$')))
然后,为了插入您要查找的内容(如果您不想格式化数字,则不需要
printf()
):call append(lin, map(range(1,12), '"item".v:val'))
PS:我宁愿避免
:put
我什么时候可以,因为它很难与复杂的表达式一起使用。
关于vim - 如何在编辑文本中将字符串序列创建为特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44103829/