我想把Vim中的两行合并,即取k行到l行,并将它们附加到m到n行。如果您更喜欢伪代码解释:[line[k+i] + line[m+i] for i in range(min(l-k, n-m)+1)]。
例如,
abc
def
...
123
45
...应该变成
abc123
def45有没有一个很好的方法来做到这一点,而不复制和粘贴手动逐行?
发布于 2012-05-26 07:09:30
通过组合:global、:move和:join命令,可以获得一个优雅而简洁的Ex命令来解决这个问题。假设第一个行块从缓冲区的第一行开始,并且光标位于紧接第二块第一行的行上,则命令如下所示。
:1,g/^/''+m.|-j!有关此技术的详细说明,请参见my answer中本质上相同的问题“How to achieve the “paste -d '␣'” behavior out of the box in Vim?”。
https://stackoverflow.com/questions/10760326
复制相似问题