Yank a region in VIM without the cursor moving to the top of the block?
Is there a simple way (i.e. without writing a script or elaborate keymap sequence) to Yank a group of lines and leave the cursor wherever the Yank was performed, as opposed to at the start of the block?
According to VIM's help: "Note that after a characterwise yank command, Vim leaves the cursor on the first yanked character that is closest to the start of the buffer." Line-wise seems to behave similarly.
This is a bit annoying for me since I tend to select a large region from top to bottom, Yank, and then paste near or below the bottom of the selected region. Today I'm setting a mark (m-x) just before Yank and then jumping back, but I suspect there may be a different Yank sequence that will do what I need.
I've searched SO and the web for this numerous times. There is so much existing "VIM shortcuts" material to wade through yet I've not found a solution to this one yet.
Thanks in advance.
Solution 1:
Not quite answering your question, but perhaps ']
would solve your problem?
'] `] To the last character of the previously changed or
yanked text. {not in Vi}
Solution 2:
If you're using visual blocks (v
), then after yanking the block you can use gv
to re-select the same block (which also moves your cursor position back to where it was before yanking). If you then press Esc, the block is un-selected without moving the cursor.
Also of interest might be the ctrl-o
command in visual block mode, which jumps between the start and end of the selected block.