这是最初的文字。
test1
test2
文字中只有两行。
我想将字符串序列从第5行插入到第16行。 我已尝试使用以下代码。
for i in range(1,12)
echo ".item".i.","
endfor
有两个问题需要解决
1.echo命令在endfor之前输出第一个字符串.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行时,如何创建所需的输出?
答案 0 :(得分:4)
为了插入缺失的行,而不插入不需要的空行( - > 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
,因为它很难用于复杂的表达。
答案 1 :(得分:1)
假设您使用的是基于Unix的操作系统,则可以使用textlinepre
命令。
所以你可以这样做:
%Created with Spacar 2.0.25 at 18-05-17, 11:43:37
% leafspring1
BEAM 1 1 2 3 4 0.0000000000 1.0000000000 0.0000000000
% solid bar
BEAM 2 3 4 5 6 0.0000000000 0.0000000000 1.0000000000
% leafspring2
BEAM 3 5 6 7 8 0.0000000000 1.0000000000 0.0000000000
X 1 0.0000000000 0.0000000000 0.0000000000
X 3 0.0000000000 0.1000000000 0.1000000000
X 5 0.0000000000 0.0000000000 0.1000000000
X 7 0.0000000000 0.1000000000 0.0000000000
FIX 1 1
FIX 1 2
FIX 1 3
FIX 2 2
FIX 2 3
FIX 2 4
FIX 7 1
FIX 7 2
FIX 7 3
FIX 8 2
FIX 8 3
FIX 8 4
RLSE 3 1
RLSE 3 2
RLSE 3 3
RLSE 3 4
RLSE 3 5
RLSE 3 6
DYNE 1 1
DYNE 1 2
DYNE 1 3
DYNE 1 4
DYNE 1 5
DYNE 1 6
END
HALT
XF 3 0.000000000000 0.000000000000 0.000000000000
EM 1 0.070650000000 0.000001909022 0.000001907550 0.000000001472 0.000000000000
EM 2 1.999400000000 0.000094804883 0.000066646667 0.000028158217 0.000000000000
EM 3 0.070650000000 0.000001909022 0.000001907550 0.000000001472 0.000000000000
ESTIFF 1 1890000.000000000000 0.058028906301 51.030000000000 0.039375000000 0.000000000000 0.000000000000
ESTIFF 3 1890000.000000000000 0.000000000000 0.000000000000 0.039375000000 0.000000000000 0.000000000000
EDAMP 1 0.365400000000 0.000006500000 0.000190000000 0.000005300000
EDAMP 3 0.365400000000 0.000000000000 0.000000000000 0.000005300000
TIMESTEP 10.00 50
ITERSTEP 10 10 0.00005
END
END
VISUALIZATION
BEAMVIS 1 0.000500000000 0.018000000000
BEAMVIS 2 0.013000000000 0.020000000000
BEAMVIS 3 0.000500000000 0.018000000000
VIBRATIONMODE 1
VIBREND 7.854
ENLARGEFACTOR 0.01
TRANSPARENCY 0.6
在seq
内,您可以尝试从外部命令读取方法:
$ seq -f 'Item %.0f' 20
Item 1
Item 2
...
Item 20