2009-03-06 23 views
8

Powiedzmy, że mam ten tekst:vim skopiować i zamienić tekst

 
$test = 'lorem'; 
$test2= 'ipsum'; 

i chcę skopiować i wkleić do Lorem ipsum. Próbowałem zrobić yi' na lorem, a następnie poszedł na ipsum i zrobił ci', ale to zastąpiło mój pastebin z ipsum. i moja poprzednia kopia została utracona.

Odpowiedz

7

yi” na Lorem, przenieść do i ipsum, vep?

+2

Ok, ale teraz rejestr zawiera ipsum. –

+0

Hm, więc tak. Eksperymenty z. pokaż, że implementuje zamianę wklejów za pomocą usunięcia, które umieszcza ipsum w domyślnym rejestrze. Wydaje się, że trudno jest temu zapobiec; http://stackoverflow.com/questions/290465/vim-how-to- paste-over- with-overwriting-register ma ohydnie zaangażowane rozwiązanie. – chaos

+1

Łatwe do rozwiązania: "kyi" na lorem, przenieść do ipsum, ve "kp? To szarpnie lorem do rejestru k, wkleja go ponad ipsum z rejestru k, i zachowuje go w rejestrze k gotowe do wklejenia ponownie gdziekolwiek indziej może chcesz go umieścić. ipsum nadal znajduje się w domyślnym rejestrze, ale to już nie jest problem i może być użyteczne. – sampablokuper

2

Dlaczego nie chcesz wkleić nazwany bufor, używając "ayi', a następnie usunąć i wkleić z d'i"aP?

5

Zwykle przechodzę do polecenia sed.

:%s/ipsum/lorem/g 
  • % sposobem zrobić to dla każdej linii
  • s oznacza, sed lub wyszukać i zastąpić
  • g na końcu oznacza zastąpić każdy ipsum z lorem; jeśli to pominiesz, zastąpi tylko pierwszy.
+1

Nie chcę używać zamiany, ponieważ oznacza to, że muszę go wpisać –

+0

Trochę pracy, jeśli nie chcesz wpisywać żadnego słowa, ale możesz użyć CR CW do wklejenia słowa pod kursorem, np .: :% s//, przesuń kursor na ipsum,: /g –

1

Nie jestem pewien, czego dokładnie chcesz.

Masz to na dwóch liniach:

$test = 'lorem'; 
$test2= 'ipsum'; 

Jeśli pójdziesz do L i YW, że Jankesi Lorem, następnie przejść do I ipsum, i CW, a P i zastąpi Ipsum z Lorem . Nadal będziesz mieć zarówno lorem, jak i ium w rejestrach.

można uzyskać zawartość tych rejestrów z: Kaunas

Jeśli chcesz wkleić coś z nich, a następnie „* P albo”: p, lub „0P (zobaczysz go po wpisaniu: reg)

0

Słowa tutaj, aby zatrzymać Markdown traktując kod, który następuje jako zwykły tekst.

/lorem 
"adw 
/ipsum 
"aP"bdw 
`` 
"bp 

Pierwszy tekst wyszukuje "lorem"; następny usuwa słowo do bufora o nazwie "a", pozostawiając w tekście parę pustych cudzysłowów. Następne wyszukiwanie znajduje "ipsum"; "aP ściąga bufor o nazwie "a" przed słowem ipsum; "bdw usuwa słowo do bufora o nazwie "b", pozostawiając "Lorem" z tyłu. Podwójny tył zwrotny powraca do miejsca, z którego wyszły ostatnie poszukiwania - puste cytaty; i "bp ściąga nazwany bufor po pierwszym cytacie.

Można również pominąć "a i "b, ale w ten sposób, że wartości są w wymienionych buforów "a i "b i może być ponownie skopiowane, i znowu, i znowu, aż nie trzeba nic więcej wartości.

3

Idź do l of lorem, ye (szarpnij za koniec słowa). Przejdź do I ipsum „_de (usunąć do końca słowa, stawianie usunięty tekst w czarną dziurę rejestru P (pasty zarejestrować przed kursorem)

sumie:.. Yej” _deP

0

Po robisz ci' na impsum swojej Lorem jest w rejestrze "0. Tak, można zrobić ci'^R0 (^R oznacza Ctrl+r) i wkleić w miejsce Lorem ipsum.

Zobacz :help quote_number uzyskać więcej informacji o numerach rejestrów.

0

vi'y na lorem

vi'p na ipsum

gvy skopiować z powrotem Lorem zarejestrować za ewentualne makro z vi'p

(qa - gvy - j - vi'p - q - @a - @@ - @@ ...)

9

proste:

"kyi” na lorem, przesuń do I ipsum, ve" KP

Ten Jankesi lorem do rejestr k, pasty ją na ipsum od rejestracja k, i utrzymuje to w rejestrze k gotowe do wklejenia ponownie w dowolnym miejscu, które chcesz umieścić. ipsum nadal znajduje się w domyślnym rejestrze, ale to już nie jest problem i może być użyteczne.

Jeśli masz już coś w rejestrze k, możesz zamiast tego użyć innego rejestru (po prostu użyj innego klucza).

Powiązane problemy