Copy lines in visual mode in vim

homemrobo picture homemrobo · Oct 8, 2011 · Viewed 33.8k times · Source

Just a question about copy/paste workflow in gVim.

Right now I'm working on a document. I want to select some lines of code and copy and paste. I'm using gVim (Windows).

If I use Control + C and Control + V, gVim takes sometimes 2, 3 seconds to paste...

The other way is using, Shift + v (right, now I'm in visual mode), then I keep the Shift key pressed and drag my selection with the mouse. Now I can copy with 'y' or 'c' and paste with 'p'. This is faster, but I have to keep the Shift key pressed.

Is there a way to use the mouse to select text in visual mode without keeping the Shift key pressed? I want to use y/d/p instead of slow Control + c and Control + v. Is there a better workflow or setup that I should try?

Thanks,

[]'s

Mateus

Answer

Jin picture Jin · Oct 8, 2011

Stay away from using CTRL-C/V and your mouse in vim, or at least until you're familiar with vim's way of text handling.

--

SHIFT-V to enter visual line mode

enter image description here

Press 3j to go down 3 lines, or press j 3 times

enter image description here

y to yank/copy, x to cut, p to paste after cursor, P to paste before cursor.

enter image description here

Using hjkl will improve your workflow greatly as you don't have to move your hands from the typing position to the arrows and the mouse.

There are a couple of ways to yank multiple lines without entering visual mode. One of which is to type <action><number><direction>. For example, y3j means to yank from your current row to 3 rows down.

If you want to yank the entire paragraph or sentence you're in, type yip (yank IN paragraph) or yis (yank IN sentence) respectively. You can also do yi" (yank IN ") or ya" (yank AROUND ") to yank everything that's surrounded by " on your current position.