javalearner
javalearner

Reputation: 3382

How to copy from current position to the end of line in vi

I use gvim in windows. How do I copy text from the current position to the end of the line in vi and paste it in another file opened in vi?

Upvotes: 127

Views: 85389

Answers (4)

Don Reba
Don Reba

Reputation: 14031

The normal-mode command to move to the end of the line is $.

You can copy to the end of the line with y$ and paste with p.

To copy/paste between different instances, you can use the system clipboard by selecting the * register, so the commands become "*y$ for copying and "*p for pasting.

$ move-to-linebreak

$

y$ yank-to-linebreak

y,$

"*y$ select clipboard-register yank-to-linebreak

",*,y,$

"*p select clipboard-register paste

",*,p

Check :h registers for more information.

Upvotes: 200

Daniel Porumbel
Daniel Porumbel

Reputation: 309

A different solution: Dp and paste it with p. In fact this first deletes to the end of line and re-pastes it at the same location. Paste it somewhere else with p.

Upvotes: 3

Andy Ray
Andy Ray

Reputation: 32056

Add this line to your .vimrc

" Make Y yank till end of line
nnoremap Y y$

More at my vimrc.

Upvotes: 12

kenny
kenny

Reputation: 3649

If you don't want to include the line break with the yank, you can use yg_. (Or in your case, "*yg_)

Basically, just recognize there's a difference between $ and g_ movement-wise. It's helped me on numerous occasions.

Upvotes: 61

Related Questions