vim: zamień wszystkie znaki do końca linii

30

Może jestem głupi, ale czy możesz zastąpić wszystkie znaki od miejsca, w którym znajduje się kursor, do końca wiersza jednym poleceniem? Następnie użyj, .aby zrobić to samo zamień w następnym wierszu i tak dalej.

Sardathrion - Przywróć Monikę
źródło

Odpowiedzi:

49

Jeśli dobrze zrozumiałem twoje pytanie, spróbuj tego:

C(to duże C) usunie wszystko od kursora do końca linii i przejdzie w tryb INSERT , a następnie napiszesz zamiennik, opuścisz tryb INSERT, użyj, .aby powtórzyć proces w innym miejscu.

sr_
źródło
W porządku. :)Nie ma za co.
sr_
16
jeśli ktoś się zastanawiał, to stolica C :)
David Silva Smith
1
Dobrze byłoby zaktualizować odpowiedź, aby określić, że jest to wielka C.
fraxture
14

Dodanie do odpowiedzi sr_:

Jeśli kursor zaczyna się w tej samej pozycji w każdej linii, być może interesuje Cię funkcja Visual Block .

Wpisz następujące polecenie, z kursorem w początkowej pozycji:

  • Ctrl+ v: Przejdź do trybu blokowania wizualnego.
  • $: idź do końca linii.
  • [X]j: zamień X na liczbę linii, które chcesz zejść.

Powinno to stworzyć prostokątny wybór od kursora w pierwszej linii do końca linii [X] linii poniżej.

Następnie możesz zastąpić cały swój wybór:

  • c: usuń zaznaczenie i przejdź do trybu wstawiania.
  • wstaw nowy tekst
  • Esc: Wyjdź z trybu wstawiania; Vim automatycznie powtórzy krok na każdej wybranej linii.

Używam bloków wizualnych, kiedy tylko mogę, myślałem, że podzielę się

rahmu
źródło
+1 fajna odpowiedź. Ale tak naprawdę nie to, czego chcę, ponieważ czasami mój kod nie jest tak ładnie sformatowany ^ _ ~
Sardathrion - Przywróć Monikę
@sardathrion; Komentarz RE, „ładnie sformatowany”. Tworząc tabele w Markdown byłem w stanie automatycznie wypełniać spacje w n+1liniach, po utworzeniu linii nprzez Visual Block wybierając wstecz ! Innymi słowy, kształt był podobny do L odwróconego 7 lub pionowego L odwróconego lub „nie ładnie sformatowany”. lol.
xtian
3

Club c$służy do „zmiany” i Rsłuży do „zastąpienia”.

Dwa prawie podobne zachowania. W pierwszym przypadku linia zostanie usunięta przed rozpoczęciem pisania; podczas gdy ten drugi pozwoli ci pisać na znakach i być może przekroczyć limit wyświetlanych znaków starej linii.

ismail
źródło
1

Po prostu naciśnij „C”, tj. Wielka C w trybie poleceń i wpisz tekst zastępczy.

weima
źródło
0

Inne odpowiedzi pominęły te, nie wchodzą w tryb wstawiania.

  • D Usuń do końca linii
  • d$ Usuwa od kursora do końca linii

Więc oczywiście użyj .

Gareth A. Lloyd
źródło
-1 za nie wchodzenie w tryb wstawiania, ponieważ właśnie o to prosiłem. +1 dla kompletności.
Sardathrion - Przywróć Monikę
0

Może się to przydać, gdy próbujemy zmienić do końca linii. Utworzyłem mapowanie wstawiania, aby wykonać to zadanie, nie jest ono używane, Dponieważ w trybie wstawiania ten klucz służy do zmniejszania wcięcia. Tak to jest Ctrl-k

:inoremap <C-k> <C-o>C
SergioAraujo
źródło