我想将文件中的所有行连接成一行.这样做最简单的方法是什么?我尝试使用替换的运气很差(\r\n
或者在Windows \n
的情况下似乎没有正确选择s/\r\n//
).J
在范围表达式中使用似乎也不起作用(可能是因为在执行第一个命令后范围不再处于'sync').
我试过,:1,$norm! J
但这只做了一半的文件 - 这是有道理的,因为它只加入每一行.
ori*_*rip 130
其他方式:
ggVGJ
Run Code Online (Sandbox Code Playgroud)
" ggVG
"可视地选择所有行,并" J
"加入它们.
Jor*_*mer 63
啊,我找到了答案.
:1,$join
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.
编辑:正如评论中指出:
:%join -or- :%j
Run Code Online (Sandbox Code Playgroud)
...删除范围.
小智 32
您可以从正常模式开始执行3次击键:
:%j
Run Code Online (Sandbox Code Playgroud)
:
进入命令模式%
指的是文件中的所有行j
执行join命令现在似乎这在线之间增加了一个空格.我不确定你是否想要这个.
神秘的方式:
qqqqqJ@qq@q
Run Code Online (Sandbox Code Playgroud)
(前三个q
清除q
寄存器,将qqJ@qq
宏记录到q
执行Join 的寄存器,然后调用q
,最后一个@q
运行它.
我很惊讶没有人甚至提到过另一种方式:
:%s/\n/ /
Run Code Online (Sandbox Code Playgroud)
我同样感到惊讶的是,没有人指出该范围1,$
有写的速记%
.
(这与加入线条的方式不同,但取决于实际上可能更合适的情况.)
归档时间: |
|
查看次数: |
24959 次 |
最近记录: |