vim:如何复制一条记录
我有超过40000张这样的记录:vim:如何复制一条记录,vim,macros,Vim,Macros,我有超过40000张这样的记录: ------ 18 1,5,0.33 6,10,0.34 11,15,0.36 16,20,0.37 21,25,0.40 26,30,0.44 ------ 我想这样转变: ------ 18 1,5,0.33 18 6,10,0.34 18 11,15,0.36 18 16,20,0.37 18 21,25,0.40 18 26,30,0.44 ------ 知道: 第一个数字后的行数是可变的,但始终大于1 我知道录制宏,所以我想录制一个并播放4000
------
18
1,5,0.33
6,10,0.34
11,15,0.36
16,20,0.37
21,25,0.40
26,30,0.44
------
我想这样转变:
------
18 1,5,0.33
18 6,10,0.34
18 11,15,0.36
18 16,20,0.37
18 21,25,0.40
18 26,30,0.44
------
知道:
- 第一个数字后的行数是可变的,但始终大于1
- 我知道录制宏,所以我想录制一个并播放40000次。我只是想从用户的角度知道我必须键入哪些键
- 下面的顺序应该可以做到这一点
dd<cr>
:%norm I<c-r>*<bck> <cr>
dd
:%I*
其中,
是回车,
是Ctrl+r
分项数字如下:
删除包含要插入的字符的第一行dd
对文件的其余部分执行普通命令:%norm
负责在行前插入李>I
粘贴删除的第一行内容,包括换行符李>*
清理换行符并添加空格
如果要键入,请执行以下操作:
- 向下
Downvey
- Ctrl
v
向上/^-
CtrlI
Backspacer*
- 转到第一个数字:向下,
:选择模式v
转到单词的末尾e
- 复制:
y
- 视觉模式分块:Ctrl
v
- 搜索以
开头的第一行,然后向上搜索:-
向上搜索/^-
- 插入复制到所有行并粘贴当前缓冲区的模式:
CtrlI
r*
DJ
:%s/^/<c-r>" /
DJ
:%s/^/“/
您尝试了什么?您将如何手动解决该问题?这样,您就快成功了;这只是实现可靠宏的一小步。我只是不知道如何通过
粘贴(是Ctrl+r
)就像LK在回答+1 Ah中解释的那样,这回答了我关于dd
的问题,包括换行符。txI编辑了LK的回答,添加了我刚刚应用于记录的解决方案。谢谢你的解决方案!@OlivierPons-我回答中的dd
可以被DJ
替换,这样你就不需要退格了。有没有way是否不将其添加到所有选定行的开头,而是添加到所有选定行的末尾,无论行的长度如何?请在我的回答中将I
替换为A
,或者在此回答中将^
替换为$
。