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?
Short answer: When in vi/vim command mode, use the "$" character to move to the end of the current line.
Place your cursor at the beginning of the page you want to copy. Click and drag the cursor to the bottom of the page you want to copy. Press Ctrl + C on your keyboard.
Press the ESC key to be sure you are in vi Command mode. Place the cursor on the line you wish to copy. Type yy to copy the line.
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.
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.
Add this line to your .vimrc
" Make Y yank till end of line
nnoremap Y y$
More at my vimrc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With