如何在Vim中将多行合并为一行?
例如,我想合并这样的文本: 类别=[“书籍”, “生意”, "教育",, "娱乐",, "金融",, “游戏”, “医疗保健与健身”, “生活方式”, "医疗",, "音乐",, “导航”, "新闻",, "摄影",, "生产力",, “参考”, “社交网络”, "体育",, “旅行”, "公用事业",, “天气”, “全部”,] 进入 类别=[‘书籍’、‘商业’、‘教育’、‘娱乐’、‘金融’、‘游戏’、‘医疗保健与健身’、‘生活方式’、‘医疗’、‘音乐’、‘导航’、‘新闻’、‘摄影’、‘生产力’、‘参考’、‘社交网络’、‘体育’、‘旅游’、‘公用事业’、‘天气’、‘所有’、] 使用J(大写)键。它会帮你排队的 检查线程以了解更多连接选项,并查看帮助页。在命令模式下:如何在Vim中将多行合并为一行?,vim,Vim,例如,我想合并这样的文本: 类别=[“书籍”, “生意”, "教育",, "娱乐",, "金融",, “游戏”, “医疗保健与健身”, “生活方式”, "医疗",, "音乐",, “导航”, "新闻",, "摄影",, "生产力",, “参考”, “社交网络”, "体育",, “旅行”, "公用事业",, “天气”, “全部”,] 进入 类别=[‘书籍’、‘商业’、‘教育’、‘娱乐’、‘金融’、‘游戏’、‘医疗保健与健身’、‘生活方式’、‘医疗’、‘音乐’、‘导航’、‘新闻’、‘摄影’、‘生产力
[range]j[lines]
例如:在这里,您要对整个缓冲区执行以下操作:
%j
如果您只想从当前光标位置执行10行操作:
j10
如果不想用空格替换新行,请使用!在j
对于超级用户来说:
5j20
它将转到第5行,并连接接下来的20行。对于该特定示例,以下命令将起作用:
:1, 21 j
或
最直观的方法是使用Vim可视线路模式Shift+v。您所要做的就是选择要合并到一行的内容,然后按Shift+j.或将从开始方括号到结束方括号(假设文件中有很多这样的内容)的所有内容合并在一起,并保留其他行不变
:g/\[/,/\]/j
它快速而简单
:g/\[/,/\]/j
或
如果你有:
edit "Komputer"
ala
ala
next
edit "FortiGate"
ala
ala
next
:g/edit/,/next/j
为什么不简单地执行一个视觉选择,然后按
J
?vipJ在这里会更有效。或者,如果在“[”前面的第一行,v%J也可以。或者,在文本块的任何地方,va]J这应该是大写的J
,而不是小写的J
。我完全同意。这就是我使用它的方式。在我的mac电脑上,似乎我需要使用RightShift才能工作,LeftShift选择下面的下一行并将其添加到视觉选择中。
:g/\[/,/\]/j
/^CATEGORIES
:v//-1j
edit "Komputer"
ala
ala
next
edit "FortiGate"
ala
ala
next
:g/edit/,/next/j