Supprimer du curseur à la fin de la ligne sur le VI


302

Je sais que j'ai probablement parcouru cela un million de fois dans tous les documents VI que j'ai lus, mais je n'arrive pas à trouver la commande supprimer du curseur à la fin de la ligne.


3
Vous avez une faute de frappe ici - vous dites "fin de ligne" dans le titre, mais "fin de mot" dans la question.
Cascabel

Réponses:


450

La commande dwsupprimera de la position actuelle du curseur jusqu'au début du caractère du mot suivant. La commande d$(note, c'est un signe dollar, pas un «S») supprimera de la position actuelle du curseur jusqu'à la fin de la ligne en cours. Dest un synonyme de d$.


Oui, je sais dw, mais je suppose que je viens de supposer qu'il y aurait une commande "supprimer le reste de cette ligne". Par exemple ma ligne a ip=|10.1.1.1à |être l'emplacement du curseur. Existe-t-il une commande qui supprime tous les 10.1.1.1?
Falmarri

3
@ Falmarri - Je m'excuse, je dois avoir mal compris votre question. Il y a une commande pour ça:d$
Tok

84
D (Maj + d) est également un synonyme de d $.
Néant

5
@Andy, le travail consiste à supprimer du curseur jusqu'à la fin de la ligne. Si vous envisagez de supprimer plus que cela pour "faire le travail", vous pouvez également simplement utiliser :!rm -f %et ensuite :q!. Cela supprime le fichier entier.
Wildcard

2
@Amir Il suffit d'utiliser d^('d' + caret) ... en gros d + n'importe quel caractère qui déplacerait normalement le curseur je pense, mais j'apprends Vim moi-même, donc je peux me tromper à ce sujet.
JakeD

41

Comme d'autres l'ont mentionné, vous pouvez utiliser d$ou D( shift- d) pour supprimer de la position du curseur jusqu'à la fin de la ligne.

Ce que je trouve généralement plus utile est c$ou C( shift- c) car cela effacera la position du curseur jusqu’à la fin de la ligne et vous placera en mode [INSERT].


2
AGRÉABLE!!! C'est beaucoup mieux que Dpour la plupart des gens, à mon avis, car cela ne vous fait pas reculer d'un espace en bout de ligne.
Elijah Lynn

Pourquoi cette réponse est-elle cachée ici? C’est la fonctionnalité que je recherchais vraiment lorsque je suis arrivé ici.
M_M

@ ElijahLynn cela ne devrait pas être un problème de toute façon. Vim dispose de deux méthodes principales pour entrer en mode insertion, iqui insère avant le curseur et aaprès le curseur. Si votre curseur est à la fin de la ligne et que vous souhaitez insérer à la fin de la ligne, vous pouvez simplement utiliser a.
Lie Ryan

1
Le but est de le faire en une seule opération, pas deux. Touches supplémentaires = friction supplémentaire.
Elijah Lynn

36

L'un des avantages de vi est sa structure de commande logique. dsuivie par une commande de mouvement d eletes à la cible de ce mouvement. $se déplace jusqu'au bout de la ligne (mnémonique: comme dans les expressions rationnelles). Donc d$supprime jusqu'à la fin de la ligne. De même, ese déplace au e e du mot courant, et wse déplace au début de la prochaine w ord; desupprime donc la fin du mot actuel et dwsupprime en outre les espaces suivants.


1
@gioele j'utilise <kbd>pour les clés réelles, pas pour les séquences de commandes. Par exemple <kbd>Ctrl</kbd>+<kbd>C</kbd>, mais d$.
Gilles

@ Gilles Vous avez raison. Je viens d'essayer d ^ et il est supprimé de la position du curseur jusqu'à la ligne.
Ka3ak

J'ai toujours utilisé (d) elete (a) (w) pour supprimer des mots :)
Błażej Michalik

20

Vous voudrez probablement utiliser D. Déplacez le curseur sur le premier caractère que vous souhaitez supprimer, puis appuyez sur shift-D. Tout est parti. En fait, il s’agit du tampon de coupe par défaut, vous pouvez donc le coller ou le coller à nouveau.

J'utilise Dp (supprimer à la fin de la ligne, puis le remet), je passe à la fin d'une autre ligne, puis à nouveau p pour coller le même texte à la fin de cette autre ligne. Fonctionne à merveille dans les fichiers de configuration, où vous devez placer une URL compliquée à deux endroits ou plus.


C'est probablement un Vim minimal qu'il utilise de toute façon.
polemon

0

Je pense qu'un raccourci en mode insertion pourrait être utile.

En mode insertion, il serait peut-être préférable de commencer à changer jusqu'à la fin de la ligne (mettez ceci sur votre ~/.vimrc):

inoremap <C-l> <C-o>C

Vous avez donc, comme cela a été dit, Den mode normal et Ctrl+ len mode insertion. Comme vous pouvez le constater, vous avez également des Cchangements qui se produisent jusqu’à la fin de la ligne.

<C-o> ......... insert normal keystroke in insert mode

J'ai choisi Ctrl- lcar lest sous vos doigts. Le Ctrl- kest déjà utilisé pour insérer des digrammes.

Je cherchais :h i_Ctrldes raccourcis clavier gratuits, et c'est en fait le problème le plus important lorsqu'il s'agit de créer de nouveaux raccourcis pour effectuer des actions dans vim.


0

Pour supprimer une plage de lignes après la position du curseur, 3Dsupprime le curseur jusqu'à la fin de la ligne, ainsi que les deux lignes suivantes complètement (c.-à-d. Supprime 3 lignes après la position du curseur).

par exemple pour le texte suivant (le curseur est représenté par |),

If there's a cursor |in the line
here
we
go

En utilisant la commande, vous 3Dobtiendrez:

If there's a cursor
go
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.