我正在处理两个文件,我需要从一个文件复制几行并粘贴到另一个文件。我知道如何复制(yy)和粘贴(p)在同一个文件。但这对不同的文件不起作用。这是怎么做到的?
还有,是否有一种方法可以剪切粘贴?我试着在谷歌上搜索过,但大多数资源只讨论复制粘贴。
我正在处理两个文件,我需要从一个文件复制几行并粘贴到另一个文件。我知道如何复制(yy)和粘贴(p)在同一个文件。但这对不同的文件不起作用。这是怎么做到的?
还有,是否有一种方法可以剪切粘贴?我试着在谷歌上搜索过,但大多数资源只讨论复制粘贴。
当前回答
2017 - 05年更新:
我刚刚发现,如果你在vimrc文件中添加以下一行,
设置剪贴板=不知名的
那么Vim正在使用系统剪贴板。
我刚刚发现yank的方式不会工作在我复制内容之间不同的Vim实例窗口的方式。(至少,根据我的Vim知识,它不能工作。我不知道是否有其他方法使其工作)。
根据我的测试,yank方法只适用于在同一个窗口中打开多个文件的情况。
如果你想这样做,你最好使用操作系统的剪切复制过去的方式,如Ctrl + x, Ctrl + c(在Windows下)。
其他回答
这里有一种方法;
启动Vim并打开正在处理的文件file1。 :e file2,将会弹出file2,即你想要从其中复制行的文件。 找到要复制的行。如果是三行,点击3yy 这将切换到缓冲区1,file1所在的位置 找出你想插入的线的位置,然后点击p
您也可以让两个文件都可见。用Ctrl + w s来分割屏幕。
至于切割,d切割并将切割的东西放在yank缓冲区中。Dd会“切”出一条线。
目标:将一个文件的一部分保存到另一个文件中。
解决方案:
选择要保存的文本: 将光标定位到要开始选择的位置 按“v”选择字符或按“大写v”选择整行 将光标移动到要选择的内容的末尾 将所选文本保存到新文件中。类型:wSpace和新文件的名称。实际上你会看到 : <、> w new.txt 然后按Enter键
2017 - 05年更新:
我刚刚发现,如果你在vimrc文件中添加以下一行,
设置剪贴板=不知名的
那么Vim正在使用系统剪贴板。
我刚刚发现yank的方式不会工作在我复制内容之间不同的Vim实例窗口的方式。(至少,根据我的Vim知识,它不能工作。我不知道是否有其他方法使其工作)。
根据我的测试,yank方法只适用于在同一个窗口中打开多个文件的情况。
如果你想这样做,你最好使用操作系统的剪切复制过去的方式,如Ctrl + x, Ctrl + c(在Windows下)。
我的场景是,我需要拷贝中间n行,n未知,从文件1到文件2。
:'a,'bw /name/of/output/file.txt
另一种方法是在两个分割缓冲区中打开两个文件,并在可视化选择感兴趣的行后使用下面的“snippet”。
:vnoremap <F4> :y<CR><C-W>Wr<Esc>p