繁体   English   中英

在 vim 缓冲区中的每一行上运行 vim 命令

[英]Run vim command on every line in a vim buffer

我想JJ当前 vim 缓冲区中的每一行。 因为我有非常大的文件,所以不可能在每一行都手动运行。 我如何告诉 vim 为我做这件事? 基本上我有一个单列数据的文件。 我想将其转换为三列

a
b
c

到:

a b c

还有一个:

:%norm JJ

请参阅:help:normal

使用宏和普通模式命令

qqJJq

JJ命令重新编码为q

uu

定义q宏。 全部撤消。

:%norm! @q

q应用于整个文档。

PS:我英语不好

:g/^/join

连接整个缓冲区中的连续行(1+2、3+4 等等...)。 您还可以为:global命令提供[range] ,这里仅用于其智能行处理; ^正则表达式模式匹配任何行

要连接三个连续的行,请使用

:g/^/.,.+2join

或者

:g/^/join|join

(如果总行数不能被 3 整除,前者可能会出错;后者避免了这种情况。)

所有行到只有一行

:g/^/1j

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM