Reputation: 793
Is there a simple command that will move lines from one window to another. Currently I go to one window, yank the lines, and then paste in the other window.
I would like to know if I can do it without switching windows.
Upvotes: 7
Views: 2216
Reputation: 5243
using vimdiff you can use diffput or diffget to copy changes between buffers. From the manual:
There are two commands to copy text from one buffer to another. The result is
that the buffers will be equal within the specified range.
*:diffg* *:diffget*
:[range]diffg[et] [bufspec]
Modify the current buffer to undo difference with another
buffer. If [bufspec] is given, that buffer is used.
Otherwise this only works if there is one other buffer in diff
mode.
See below for [range].
*:diffpu* *:diffput*
:[range]diffpu[t] [bufspec]
Modify another buffer to undo difference with the current
buffer. Just like ":diffget" but the other buffer is modified
instead of the current one.
See below for [range].
Upvotes: 1
Reputation: 42522
I would do this sort of thing with a macro. So to record a macro for a, qa. Then yy to yank the line, :bnext to switch buffers, p to paste the line, then bnext again to switch back to the original buffer (on the line you started on). Then hit q to stop recording.
So to copy, switch windows, paste then switch back, you just need to use @a. Or map it to a function key (map @a).
N.B. Just noticed in the comments you had multiple buffers, so obviously you would need to record your macro accordingly.
Upvotes: 8
Reputation: 23016
I doubt whether this is possible. But here is an interesting post about 100 Vim commands every programmer should know if you are interested.
Upvotes: 0