I am working with two files, I need to copy a few lines from one file and paste into another file. I know how to copy (yy) and paste(p) in the same file. But that doesn't work for different files, how is this done??
Also, is there a way to cut-paste? I have tried googling, but most of the resources only talk about copy-paste.
These remaps work like a charm for me:
So, when I'm at visual mode, I select the lines I want and press Ctrl + c and then Ctrl + v to insert the text in the receiver file. You could use "*y as well, but I think this is hard to remember sometimes.
This is also useful to copy text from vim to clipboard.
Source: http://vim.wikia.com/wiki/Copy_and_paste_between_sessions_using_a_temporary_file
If you want to copy a part of a file and paste that content in the middle of another file, you can do this way.
Example:
Or
Example:
Now the lines are copied to another file. If you want to delete those lines after copying, you can do
Or
Now, go to other file. Then keep the cursor on the line where you wanted to paste.
Type
Now, the content of the temp file is pasted here. You can delete the temp file from the command line itself, after pasting the content.
This would help if you wanted to copy and paste several times.
Another way could be to open the two files in two split buffers and use the following "snippet" after visual selection of the lines of interest.
Use the variations of
d
likedd
to cut.To write a range of lines to another file you can use:
Where
<n>
and<m>
are numbers (or symbols) that designate a range of lines.For using the desktop clipboard, take a look at the
+g
commands.Example: fileA and fileB - start in fileA at line 25, copy 50 lines, and paste to fileB
The below option works most of time and also for pasting later.
The lines yanked will be stored in the buffer
'x'
. It can be used anywhere in the edit.To paste line(s) in the other file,
Example: Type the below command in the current edit
Complete operation
open file 1 :
-now open the second file from the current edit
-move the cursor to the line where you have to paste
--Lines from the buffer
'*a*'
will be copied after the current cursor pos