使用 vim 合并两个垂直块

使用 vim 合并两个垂直块

我有 2 个文件

文件1.txt
a =
b =

文件2.txt
1
2

我可以使用 gvim 合并它们以便输出如下所示:
a = 1
b = 2

答案1

拉出垂直块:例如,选择 中的行,file2.txtCTRLv拉出,然后在移动到中y第一行的末尾后粘贴。file1.txtp

如果您vim在 GNU 堆栈上运行,您也可以使用该paste程序执行相同操作。用于-d指定在文件中的字段之间使用什么分隔符。

paste -d "" 1 2 > merged.txt

答案2

如果你使用的是 Unix 或 Linux,只需使用粘贴命令:

:%!粘贴 - 文件2.txt

这也适用于经典 vi,或者直接从命令行:

$ 粘贴 文件1.txt 文件2.txt >out.txt

希望这可以帮助

答案3

也可以与纯 vim 一起使用:

 % vim -O file1.txt file2.txt  # open both files vertically splitted

然后在 file1.txt 中将该块拖放到一个命名的寄存器中,比如说‘a’:

  • gg转到文件开头
  • ctrlv去选择块模式
  • G转到最后一行
  • $转到最后一行的最后一个字符
  • "ay拉出以注册“a”

然后切换到 file2.txt 并执行:

  • gg转到文件开头
  • "aP将寄存器‘a’的内容粘贴到文本之前

答案4

您还可以在 Linux 上使用命令 :read 将一个文件的文本粘贴到另一个文件中,例如:

无论是哪种情况,首先用 vim 打开一个文件,然后定位到文件的某个部分并执行:

:读取文件1.txt

或者

:读取!cat file1.txt

它对于合并两个或多个文件的内容非常有用......

相关内容