我想加入很多(~1000)行,但只有下一个奇数。用手我可以做
Jj
Run Code Online (Sandbox Code Playgroud)
500 次就完成了。但是,如何在一个命令中执行这两个语句 500 次?打字
500Jj
Run Code Online (Sandbox Code Playgroud)
将加入接下来的 500 行,然后向下移动一行。
例子:
我有:
a
b
c
d
e
f
g
h
Run Code Online (Sandbox Code Playgroud)
我想要:
a b
c d
e f
g h
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试映射:
:map X Jj
500X
Run Code Online (Sandbox Code Playgroud)
但显然我应该再次阅读映射文档。不起作用。
aki*_*ira 33
我会这样做:
开始录制宏“q”: qqJjq
重放宏 'q' 500 次: 500@q
(实际上它不是一个名为“q”的宏,它是一个名为“q”的命名寄存器。而不是像 1. 那样以交互方式填充该寄存器,你也可以先做:let @q = "Jj"然后再做 2。)
Kev*_*nko 29
要在文件的每一行执行此操作:
:%normal J
Run Code Online (Sandbox Code Playgroud)
或者,更短:
:%norm J
Run Code Online (Sandbox Code Playgroud)
要仅对文件的一部分执行此操作,请选择带有V或以其他方式获取范围的行:
:'<,'>global/^/normal J
Run Code Online (Sandbox Code Playgroud)
或者,更短:
:'<,'>g/^/norm J
Run Code Online (Sandbox Code Playgroud)
小智 15
那这个呢:
:g/$/j
Run Code Online (Sandbox Code Playgroud)
或者
:g/$/j!
Run Code Online (Sandbox Code Playgroud)
并每三行分组
:g/$/j3
Run Code Online (Sandbox Code Playgroud)