2013-03-06 15 views
10

Załóżmy, że mam następujący tekst (mam numerowane wiersze dla jasności), a kursor znajduje się na początku 5th line:vim bufory copy-paste

1 
2 var x = 1; 
3 var y = 2; 
4 
5 if (true) { 
6  print("Hey!"); 
7 } 

Dobra, teraz staram się wyciąć linie 5, 6, 7 (wszystko to "jeśli"). W tym celu: Vjjd. Teraz wydaje mi się, że jestem na początku czwartej linii, która jest pustym ciągiem.

Moje pytanie: czy w tej chwili jest możliwe, aby usunąć czwartą linię bez utraty wcześniej skopiowanych linii 5, 6, 7 (że "jeśli" coś), tak, że będę mógł je wkleić gdzie indziej , powiedzmy, w pierwszej linii później?

+0

'(Mam numerowane linie dla jasności)' tak są numery w twoim tekście/pliku? po skasowaniu 3 linii linia nr 4 jest pustą linią? – Kent

+0

Nie, mój tekst nie zawiera numerów wierszy. – varnie

Odpowiedz

18

Zawsze można szarpać lub usuwać do rejestru używając „n, gdzie n jest niemal każdym kluczu Zobacz listę dostępnych rejestrów. . „rejestry pomocy”, z których niektóre mają specjalne znaczenie, na przykład, można zrobić:

> "a3dd (to delete the last three lines into a register called a) 
> dd (to delete the blank line) 
> "ap (to paste the a register) 

można również użyć Vjj "reklam, aby dopasować to, co robiłeś w oryginalnym pytanie.

7

Tak: Można użyć blackhole bufora rejestr: typ "_dd

+2

byłoby "" _dd'? – Kent

+0

tak, prawda! Pozwól mi umieścić to poprawne w mojej odpowiedzi. – Jan

3

jeśli twoja linia nr 4 to pusta linia, jest to łatwe, nie musisz grać z rejestrem. po prostu zrobić:

kJ 

to znaczy:

k: move to #3 
J: (shift-J) Join #3 and #4 

czy wolisz zrobić to w trybie INSERT.

i<BS> 

lub

I<c-u> 

jeśli ta linia nie jest pusty:

  • użyciem zarejestrować do przechowywania lub 3 linie nr 4, jak @Derek zasugerował
  • użyciu blackhole zarejestruj się, jak @Jan sugeruj
  • lub używając numerowany rejestr.

powiedzieć, teraz po prostu nie 3dd (bez nazwie rejestru), a kursor na nie-pustej linii (# 4), można bezpośrednio zrobić dd. 3 linie nie zniknęły. możesz wkleić je ponownie przez:

"2p