使用vim将代码块从您正在编辑的文件移动到另一个文件。
是否有任何提高效率的技巧?
这个问题接近下面的网址,但不完全相同
How can I extract a predetermined range of lines from a text file on Unix?
# tasks
identity lines range in file_A where you are working
append the code block to file_B
remove the code block from file_A
我以前的例行程序 - 4个步骤
# write down line range, exit vim
sed -n 1,33p file.pl >> lib/module.pm
vim lib/module.pm - to check
vim file.pl again to delete the code block
答案 0 :(得分:6)
如果不必打开目标文件 ,您可以这样做:
执行以下命令:
:w >>file_B
通过激活选择,它将实际显示并执行:
:'<,'>w >>file_B
然后只需输入gvd
(或d']
)即可删除之前选择的文字。
要避免在文件不存在时出错,请在写入命令中添加一个!
:
:'<,'>w! >>file_B
答案 1 :(得分:2)
尝试以下方法:
移+ V
d
:tabnew / my / new / file
:$
P
:WA
使用以下标签浏览:tabnext和:tabprevious,然后关闭单个标签:q。
除了使用:wa之外,您还可以使用:wqa来编写所有内容并立即退出。
答案 2 :(得分:1)
我会做的:
打开两个文件(shell):
$ vim -O2 file1 file2
删除并阻止阻止
:l1,l2d
其中l1和l2是您要删除的行范围
切换窗口
<C-w>l
正常
将bloc粘贴到文件末尾
Gp
答案 3 :(得分:1)
作为另一种解决方案,您可以选择文本(shift v
),将文本移动到剪贴板寄存器("+x
),然后切换到新文件并粘贴它("+p
)
这具有跨vim实例工作的额外优势(如果你出于某种原因这样做)。