vim - 如何在编辑文本中将字符串序列创建为特定行?

标签 vim

这是初始文本。

test1
test2

正文中只有两行。

我想将字符串序列从第 5 行插入到第 16 行。
我已经用下面的代码试过了。
for i in range(1,12)  
    echo ".item".i.","
endfor  

1.初始文本。
enter image description here
2.进入命令模式并输入代码

enter image description here

需要解决的两个问题。
1.echo命令输出第一个字符串.item1在结束之前。
for i in range(1,12)  
    echo ".item".i.","

2.如何使用vimscript将字符串序列创建到指定行:从第5行到第16行?

想要的结果如下。

enter image description here

快完成了!
我得到的命令如下 :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)')

enter image description here

我想要的格式的最后一个问题是当光标位于第 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/

相关文章:

vim - 清除当前行的简短命令?

vim 映射普通键,如 shift

regex - 如何在vim中替换括号

python - 在 Vim 中键入时如何获得数组选项的自动建议?

vim - Vim:视觉模式,w(单词)比单词更多

vim - 检查视觉模式

vim - 当我将一行复制到另一个文件时,为什么vim会剥离回车?

vim - 如何在 Vim 中搜索所有源代码?

python - Ubuntu 10.4 中 Vim 的 Pydiction 和 Python 的问题

regex - 将句点(点)后的 1 个空格增加到 2,但在 vim 中不会更多