Jak skopiować od bieżącej pozycji do końca wiersza w vi

102

Używam gvim w oknach. Jak skopiować tekst z bieżącej pozycji do końca wiersza w vi i wkleić go do innego pliku otwartego w vi. Wyszukałem w Google, ale nie mogę znaleźć na to żadnego rozwiązania. Doceń jakąkolwiek pomoc w tej sprawie. Dziękuję Ci.

javalearner
źródło

Odpowiedzi:

156

Polecenie trybu normalnego umożliwiające przejście na koniec wiersza to $.

Możesz skopiować do końca wiersza y$i wkleić za pomocą p.

Aby skopiować / wkleić między różnymi instancjami, możesz użyć schowka systemowego, wybierając *rejestr, aby polecenia stały się "*y$kopiowaniem i "*pwklejaniem.

$ przejście do łamania linii

$

y$ Yank-to-linebreak

y,$

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

", *, y,$

"*p wybierz schowek-rejestr wklej

", *,p

Sprawdź :h registerswięcej informacji.

Don Reba
źródło
Dzięki. ale chcę wkleić zawartość do „innego pliku” otwartego w vi. Działa to tylko z tym samym plikiem.
javalearner
4
Będzie działać dla każdego pliku otwartego w tej samej instancji. Możesz skopiować do schowka systemowego, wybierając rejestr *(lub +).
Don Reba
Dlaczego rejestry systemowe nie działają ... Nie mogę skopiować kontekstu file1do file2. Nadal muszę używać myszy. Jaki może być prawdopodobnie powód?
Alston
8
Zwykle używam Ddo wycinania od bieżącej pozycji do końca i pwklejania (odzyskiwania) oryginalnych danych, a następnie przechodzę do innego miejsca, aby wkleić szarpane dane. Po prostu dlatego, że znacznie łatwiej jest pisać Dniż y$.
neevek
1
@PhilipRego, y$bez średnika.
Don Reba
45

Jeśli nie chcesz dołączać końca wiersza do szarpnięcia, możesz użyć yg_. (Lub w twoim przypadku "*yg_)

Zasadniczo, po prostu uświadom sobie, że istnieje różnica między $i pod względem g_ruchu. Pomogło mi to przy wielu okazjach.

Kenny
źródło
3
Czy jest jakaś zamiana g_i $? Rzadko, jeśli w ogóle, muszę uwzględniać przerwanie linii w ruchach.
Jonathan Dumaine,
1
TAK! dodatkowa nowa linia doprowadza mnie do szału. To są potrzebne informacje.
javadba
6
@JonathanDumaine w Twoim $MYVIMRCadd the linenmap $ g_
thedanotto
@thedanotto you beautiful person
Jonathan Dumaine
9

Dodaj tę linię do swojego .vimrc

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

Więcej na moim vimrc .

Andy Ray
źródło
3

Inne rozwiązanie: Dpi wklej za pomocą p. W rzeczywistości to najpierw usuwa do końca wiersza i ponownie wkleja go w tym samym miejscu. Wklej go gdzie indziej z p.

Daniel Porumbel
źródło
1
Dlaczego nie Du i pozostawić plik niezmodyfikowany? (uwaga: obejmuje to nową linię)
gen