我正在处理两个文件,我需要从一个文件复制几行并粘贴到另一个文件。我知道如何复制(yy)和粘贴(p)在同一个文件。但这对不同的文件不起作用。这是怎么做到的?
还有,是否有一种方法可以剪切粘贴?我试着在谷歌上搜索过,但大多数资源只讨论复制粘贴。
我正在处理两个文件,我需要从一个文件复制几行并粘贴到另一个文件。我知道如何复制(yy)和粘贴(p)在同一个文件。但这对不同的文件不起作用。这是怎么做到的?
还有,是否有一种方法可以剪切粘贴?我试着在谷歌上搜索过,但大多数资源只讨论复制粘贴。
当前回答
您可以打开另一个文件并键入:r file_to_be_copied_from。或者你可以缓冲。或者转到第一个文件,在你想复制的那行,输入“qY”,转到你想粘贴的文件,输入“qP”。
buffer_name,复制到缓冲区。Y是拉,P是放。希望有帮助!
其他回答
目标:将一个文件的一部分保存到另一个文件中。
解决方案:
选择要保存的文本: 将光标定位到要开始选择的位置 按“v”选择字符或按“大写v”选择整行 将光标移动到要选择的内容的末尾 将所选文本保存到新文件中。类型:wSpace和新文件的名称。实际上你会看到 : <、> w new.txt 然后按Enter键
在编辑文件时,在希望使用的开始和结束处做标记
马云树立了一个标杆
MB -设置b标记
然后,复制到另一个文件,只需使用w命令:
:'a,'bw /name/of/output/file.txt
这些都是很好的建议,但如果您知道文本在另一个文件中的位置,则可以轻松使用sed。: r !sed -n '1,10 p' < input_file.txt这将在一个已经打开的文件中插入10行到光标当前位置。
进入命令模式并运行
:r! sed -n '<start_line_num>, <end_line_num> p' file_to_extract_text_from
例如,将文件名中的20-30行提取到当前打开的文件中
:r! sed -n '20, 30p' filename
另一种方法是在两个分割缓冲区中打开两个文件,并在可视化选择感兴趣的行后使用下面的“snippet”。
:vnoremap <F4> :y<CR><C-W>Wr<Esc>p