将多个行在vim中平放为单个行,它们之间可以使用分隔符,也可以不使用分隔符



我要把这个粘贴到vim上:

"recreation_ground"
"retail"
"farmyard"
"nature_reserve"
"scrub"
"park"
...

如果我选择这些行作为一个块,我可以使用什么命令:

  1. "flat">
    "recreation_ground""retail""farmyard""nature_reserve""scrub""park"

  2. 和(这将是完美的),在它们之间添加分隔符?"recreation_ground","retail","farmyard","nature_reserve","scrub","park"

你可以通过块显示模式来实现这些。

首先在每行末尾添加',':

<C-v>G$A,<ESC>

然后连行:

vGgJ

签出帮助文件以了解更多

:h visual-block
:h gJ

剥猫皮的方法真多。

With:help :s:

:'<,'>s/n

为第一个问题,和:

:'<,'>s/n/,
$x

为第二个。

注意:有更多的"正确"解决问题#2的方法,没有额外的$x,但它远不那么直观,所以YMMV:

:'<,'>s/n"/,"

Max Shen的解决方案似乎是最好的,但是有很多方法可以让猫蜕皮。

您也可以使用:norm命令添加逗号,然后使用J来平铺所有内容。

首先选择所有带有:

的内容
gg #(go to the top)
v #(visual mode entire line)
GG #(bottom of file)

运行norm命令:

:

'<,'>应该立即插入,然后您可以键入norm,然后键入将在每行上执行的组合按键,在本例中是A,,然后是<Enter>来确认。

你可以这样结束:

V
gg
J #(flatten/join selected section)

最新更新