如何在VIM中将多行合并为一行?

例如:

我想合并这样的文字

CATEGORIES = ['Books',
'商业',
'教育',
'娱乐',
'金融',
“游戏”,
“保健与健身”,
'生活方式',
“医疗”,
'音乐',
'导航',
'新闻',
'摄影',
'生产率',
'参考',
'社交networking',
'体育',
'旅行',
“公用事业”,
'天气',
'全部',]

“娱乐”“金融”“游戏”“健康与健身”“生活方式”“医疗”“音乐”“导航”新闻“,”摄影“,”生产力“,”参考“,”社交networking“,”体育“,”旅行“,”公用事业“,”天气“,”全部“

在命令模式下:

 [range]j[lines] 

EG:在这里你要做整个缓冲区:

 %j 

如果你只想从当前的光标位置做10行:

 j10 

如果你不想用空格replace新的行使用! 之后

 %j! j!10 

而对于这个恶作剧,

 5j20 

会去第5行,并join下20行。

最直观的方法是使用vim visual line mode shift + v 。 您只需要select要合并到一行的内容,然后按shift + j

对于这个特定的例子,以下命令将起作用:

 :1, 21 j 

要么

 :%s/\n/ /g 

使用J(大写)快捷键。 它会join你的线路

查看此线程获取更多连接选项,并查看帮助页面:

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

或者join从方括号到方括号的所有内容(假设你的文件中有很多这样的内容),并保留其他行

:克/ [/,/] / J

快速简单。