在vim中将部分内容移动到新文件

10

我有一个在file1中的section,需要将其移动到file2。通常我会通过视觉选择该块,删除它,从file1执行:wq,然后打开file2并粘贴来完成此操作。

是否有一种简单的方法可以在不关闭vim的情况下将文本块从file1移动到file2?

4个回答

26

另一种方法:

  1. 将所选内容写入新文件:'<,'>w file2

  2. 然后使用 gvd 重新选择并删除

第一步在 vimtutorLesson 5.3: SELECTING TEXT TO WRITE 中有详细介绍。


3
好的回答。我认为这应该是被标记为正确的答案。 - ifightcrime
2
另一种追加文件的方法是使用 :'<,'>!cat >> other_file - Frank

7
您可以使用:sp newfile在拆分窗口中打开新文件,然后像平常一样从第一个文件中删除块。接着,使用ctrl ww切换到另一个拆分窗口。最后,使用p将已删除的内容放回到另一个文件中。

4

您可以在新缓冲区中打开文件。

只需通过:e file2打开文件并粘贴文本即可。要在不同的缓冲区之间快速切换,请使用:e #:b #

有关更多信息,请参见:help buffers


4

由于没有人提到:你可以使用选项卡(tab)替代。

  1. 选择你的块。

  2. 使用 d 删除它。

  3. 在新选项卡(new tab)中创建一个新缓冲区(buffer)::tabnew newfile.name

  4. 粘贴并使用 p:w 保存。

  5. 你可以使用 gT 回到上一个选项卡或使用 :q 关闭当前选项卡。

个人而言,我从不使用缓冲区 -- 只用选项卡。更多信息请参阅 :help tabpage


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接