Wiem, że prawdopodobnie przejrzałem to milion razy we wszystkich dokumentach VI, które przeczytałem, ale wydaje mi się, że nie mogę znaleźć usunięcia polecenia od kursora do końca wiersza.
Masz literówkę - w tytule mówisz „koniec linii”, ale w pytaniu „koniec słowa”.
Cascabel,
Odpowiedzi:
449
Polecenie dwusunie z bieżącej pozycji kursora do początku następnego znaku słowa. Polecenie d$(uwaga, to znak dolara, a nie „S”) usunie się z bieżącej pozycji kursora do końca bieżącego wiersza. Djest synonimem d$.
Tak, wiem o tym dw, ale chyba po prostu założyłem, że będzie polecenie „usuń resztę tego wiersza”. Na przykład moja linia ma ip=|10.1.1.1z |czym położenie kursora. Czy istnieje polecenie, które usunie wszystkie 10.1.1.1?
Falmarri
3
@ Falmarri - przepraszam, musiałem źle zrozumieć twoje pytanie. Jest do tego polecenie:d$
Tok
84
D (Shift + d) jest również synonimem d $.
Net
5
@Andy, zadanie polega na usunięciu z kursora do końca linii. Jeśli uważasz, że usunięcie czegoś więcej to „wykonywanie pracy”, możesz po prostu użyć :!rm -f %i wtedy :q!. To usuwa cały plik.
Wildcard
2
@Amir Po prostu użyj d^('d' + karetka) ... w zasadzie d + dowolny znak, który normalnie przesunie kursor, ale myślę, że sam się uczę Vima, więc mogę się mylić.
JakeD
41
Jak wspomnieli inni: możesz użyć d$lub D( shift- d), aby usunąć z pozycji kursora do końca linii.
Co ja zwykle znaleźć bardziej użyteczne jest c$lub C( shift- c), ponieważ będzie to usunąć z pozycji kursora do końca linii i umieścić w trybie [INSERT].
MIŁY!!! DMoim zdaniem jest to o wiele lepsze niż w przypadku większości ludzi, ponieważ nie przesuwa cię to spacja na końcu linii.
Elijah Lynn
Dlaczego ta odpowiedź jest tutaj ukryta? Właśnie takiej funkcjonalności naprawdę szukałem, kiedy tu przybyłem.
M_M,
@ElijahLynn i tak nie powinno to stanowić problemu. Vim ma dwa główne sposoby wejścia w tryb wstawiania, iktóry wstawia przed kursorem i aktóry wstawia za kursorem. Jeśli kursor znajduje się na końcu linii, a chcesz wstawić na końcu linii, możesz po prostu użyć a.
Lie Ryan,
1
Celem jest zrobienie tego w jednej operacji, a nie w dwóch. Dodatkowe naciśnięcia klawiszy = dodatkowe tarcie.
Elijah Lynn,
36
Jedną z miłych rzeczy w vi jest jej logiczna struktura poleceń. dnastępnie za pomocą polecenia ruchu d eletes dla celu tego ruchu. $przesuwa się na koniec linii (mnemoniczny: jak w wyrażeniach regularnych). d$Usuwa więc do końca linii. Podobnie, eprzenosi się do e ND bieżącego słowa, i wprzesunie się na początek następnego wag ord; deusuwa więc koniec bieżącego słowa i dwdodatkowo usuwa następujące białe znaki.
@gioele Używam <kbd>do rzeczywistych klawiszy, a nie do sekwencji poleceń. Np . <kbd>Ctrl</kbd>+<kbd>C</kbd>Ale d$.
Gilles
@Gilles Masz rację. Właśnie próbowałem d ^ i zostało ono usunięte z pozycji kursora do początku linii.
ka3ak
Zawsze używałem (d) elete (a) (w) ord do usuwania słów :)
Błażej Michalik
20
Prawdopodobnie chcesz użyć D. Przesuń kursor do pierwszego znaku, który chcesz usunąć, a następnie naciśnij Shift-D. Wszystko zniknęło W rzeczywistości jest w domyślnym buforze cięcia, więc możesz P lub p wkleić go z powrotem.
Używam Dp (usuń do końca wiersza, a następnie odłóż go z powrotem), przechodzę na koniec innej linii, a następnie p ponownie, aby wkleić ten sam tekst na końcu tej drugiej linii. Działa cuda w plikach konfiguracyjnych, w których trzeba umieścić skomplikowany adres URL w dwóch lub więcej miejscach.
Aby usunąć zakres linii od pozycji kursora, 3Dusunie się z kursora do końca linii, a także całkowicie następne dwie linie (tj. Usuwa 3 linie po pozycji kursora).
np. dla następującego tekstu (kursor reprezentowany jako |),
Odpowiedzi:
Polecenie dwusunie z bieżącej pozycji kursora do początku następnego znaku słowa. Polecenie d$(uwaga, to znak dolara, a nie „S”) usunie się z bieżącej pozycji kursora do końca bieżącego wiersza. Djest synonimem d$.
źródło
dw
, ale chyba po prostu założyłem, że będzie polecenie „usuń resztę tego wiersza”. Na przykład moja linia maip=|10.1.1.1
z|
czym położenie kursora. Czy istnieje polecenie, które usunie wszystkie10.1.1.1
?d$
:!rm -f %
i wtedy:q!
. To usuwa cały plik.d^
('d' + karetka) ... w zasadzie d + dowolny znak, który normalnie przesunie kursor, ale myślę, że sam się uczę Vima, więc mogę się mylić.Jak wspomnieli inni: możesz użyć
d$
lubD
( shift- d), aby usunąć z pozycji kursora do końca linii.Co ja zwykle znaleźć bardziej użyteczne jest
c$
lubC
( shift- c), ponieważ będzie to usunąć z pozycji kursora do końca linii i umieścić w trybie [INSERT].źródło
D
Moim zdaniem jest to o wiele lepsze niż w przypadku większości ludzi, ponieważ nie przesuwa cię to spacja na końcu linii.i
który wstawia przed kursorem ia
który wstawia za kursorem. Jeśli kursor znajduje się na końcu linii, a chcesz wstawić na końcu linii, możesz po prostu użyća
.Jedną z miłych rzeczy w vi jest jej logiczna struktura poleceń.
d
następnie za pomocą polecenia ruchu d eletes dla celu tego ruchu.$
przesuwa się na koniec linii (mnemoniczny: jak w wyrażeniach regularnych).d$
Usuwa więc do końca linii. Podobnie,e
przenosi się do e ND bieżącego słowa, iw
przesunie się na początek następnego wag ord;de
usuwa więc koniec bieżącego słowa idw
dodatkowo usuwa następujące białe znaki.źródło
<kbd>
do rzeczywistych klawiszy, a nie do sekwencji poleceń. Np .<kbd>Ctrl</kbd>+<kbd>C</kbd>
Aled$
.Prawdopodobnie chcesz użyć D. Przesuń kursor do pierwszego znaku, który chcesz usunąć, a następnie naciśnij Shift-D. Wszystko zniknęło W rzeczywistości jest w domyślnym buforze cięcia, więc możesz P lub p wkleić go z powrotem.
Używam Dp (usuń do końca wiersza, a następnie odłóż go z powrotem), przechodzę na koniec innej linii, a następnie p ponownie, aby wkleić ten sam tekst na końcu tej drugiej linii. Działa cuda w plikach konfiguracyjnych, w których trzeba umieścić skomplikowany adres URL w dwóch lub więcej miejscach.
źródło
Myślę, że skrót trybu wstawiania może się przydać.
W trybie wstawiania lepiej byłoby zacząć zmieniać do końca linii (umieść to na swoim
~/.vimrc
):Więc, jak już powiedziano, jesteś Dw trybie normalnym i Ctrl+ lw trybie wstawiania. Jak widać, również Czaczyna się to zmieniać do końca linii.
Wybrałem Ctrl- lbo
l
jest pod waszymi palcami. Znak Ctrl- kjest już używany do wstawiania digrafów.Szukałem
:h i_Ctrl
wolnych skrótów klawiszowych i jest to większy problem, jeśli chodzi o tworzenie nowych skrótów do wykonywania akcji w vimie.źródło
Aby usunąć zakres linii od pozycji kursora, 3Dusunie się z kursora do końca linii, a także całkowicie następne dwie linie (tj. Usuwa 3 linie po pozycji kursora).
np. dla następującego tekstu (kursor reprezentowany jako
|
),Użycie polecenia 3Dspowoduje wyświetlenie:
źródło