Wyczyść linię szybciej niż [0] [d] [$]


18

Czy istnieje szybszy sposób na usunięcie tekstu w wierszu niż

  • naciśnij, 0aby przejść do początku, a następnie
  • naciskając, d$aby usunąć do końca linii?

A co jeśli chciałbym usunąć wszystko oprócz wcięcia? Czy jest na to sposób?

Odpowiedzi:


34

Jak powiedziałeś, istnieje wiele sposobów, a także możesz wziąć pod uwagę to, jakie będzie następne działanie po wyczyszczeniu lub usunięciu bieżącej linii.

  1. dd usunie bieżącą linię (niewyraźne)
  2. 0D usunie bieżącą linię, w tym spacje
  3. ^Dwyczyści bieżącą linię bez uwzględnienia białych znaków ( ^dg_oszczędza końcowe miejsce)
  4. 0C wyczyści bieżącą linię, w tym spacje, i przejdzie w tryb wstawiania
  5. ^Cwyczyści bieżącą linię bez uwzględnienia białych znaków i przejdzie w tryb wstawiania ( ^cg_oszczędza końcowe miejsce)

cclub Sbędzie działać jako 4. lub 5., jeśli „autoindent” jest odpowiednio wyłączony lub włączony.

Więc używaj tego, co pasuje do danej akcji. Uważam, że 0Dnajszybsze jest wyczyszczenie linii, ale możesz to odwzorować na coś, jeśli chcesz, aby było jeszcze szybciej.


7
@SuperScript Sjest synonimemcc
FDinoff

1
Dzięki za świetną odpowiedź, @akshay; TYLTK gra z najlepszymi: vi.stackexchange.com/...
Robbie Wxyz

9

Tak. Jeśli jest jedna rzecz, którą lubię w Vimie, to odpowiedź na pytanie „Czy mogę to zrobić?” jest prawie zawsze stanowczym tak .

0D Przeskakuje na początek, a następnie usuwa do końca linii.

^D (nie Ctrl + D) przeskoczy do pierwszego spacji, a następnie skasuje do końca.

(PS Właśnie to wymyśliłem i chciałem podzielić się z innymi noobami. Daj mi znać, jeśli jest lepszy sposób).


6

Usunąć linię z jednego klucza (przesunięty) S.

To także zachowuje wcięcie.

Wchodzisz w tryb wstawiania na pierwszej pozycji po wcięciu lub na początku linii - tylko to, czego potrzebujesz, aby zastąpić linię - dlatego nazwa S- jak substytut.

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.

Sto świetny klucz.
domi91c,

3

Dzięki wtyczce Kana „ vim-textobj-line ” możesz używać operacji na wciętej linii za pomocą il(np. dil) Lub całej linii bez nowej linii za pomocą al(np yal.). Zaletą tego podejścia jest subtelna: zamiast myśleć obu ruchów (początek, koniec) do żądanej operacji, należy określić tekst przedmiotami bezpośrednio : ja n l ine, do l ine.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.