当前位置:  开发笔记 > 开发工具 > 正文

在Vim中,将文件中的所有行连接成一行的最简单方法是什么?

如何解决《在Vim中,将文件中的所有行连接成一行的最简单方法是什么?》经验,为你挑选了6个好方法。

我想将文件中的所有行连接成一行.这样做最简单的方法是什么?我尝试使用替换的运气很差(\r\n或者在Windows \n的情况下似乎没有正确选择s/\r\n//).J在范围表达式中使用似乎也不起作用(可能是因为在执行第一个命令后范围不再处于'sync').

我试过,:1,$norm! J但这只做了一半的文件 - 这是有道理的,因为它只加入每一行.



1> orip..:

其他方式:

ggVGJ

" ggVG"可视地选择所有行,并" J"加入它们.



2> Jordan Parme..:

啊,我找到了答案.

:1,$join

奇迹般有效.

编辑:正如评论中指出:

:%join   -or-    :%j

...删除范围.


注意:%j!将没有空格加入.(添加感叹号.)您不能将gJ与%一起使用.
或缩写为:%j
您可能还想使用gJ操作而不是j.gJ操作连接线而不插入或移除任何空格.

3> 小智..:

您可以从正常模式开始执行3次击键:

:%j

: 进入命令模式

% 指的是文件中的所有行

j 执行join命令

现在似乎这在线之间增加了一个空格.我不确定你是否想要这个.



4> 小智..:

你可以减少三次击键:

:1,$j

是不是盛大?



5> Josh Lee..:

神秘的方式:

qqqqqJ@qq@q

(前三个q清除q寄存器,将qqJ@qq宏记录到q执行Join 的寄存器,然后调用q,最后一个@q运行它.



6> Aristotle Pa..:

我很惊讶没有人甚至提到过另一种方式:

:%s/\n/ /

我同样感到惊讶的是,没有人指出该范围1,$有写的速记%.

(这与加入线条的方式不同,但取决于实际上可能更合适的情况.)

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有