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.
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].
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.
@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.
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 |),
Réponses:
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$.
la source
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 aip=|10.1.1.1
à|
être l'emplacement du curseur. Existe-t-il une commande qui supprime tous les10.1.1.1
?d$
:!rm -f %
et ensuite:q!
. Cela supprime le fichier entier.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.Comme d'autres l'ont mentionné, vous pouvez utiliser
d$
ouD
( 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$
ouC
( shift- c) car cela effacera la position du curseur jusqu’à la fin de la ligne et vous placera en mode [INSERT].la source
D
pour la plupart des gens, à mon avis, car cela ne vous fait pas reculer d'un espace en bout de ligne.i
qui insère avant le curseur eta
aprè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 utilisera
.L'un des avantages de vi est sa structure de commande logique.
d
suivie 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). Doncd$
supprime jusqu'à la fin de la ligne. De même,e
se déplace au e e du mot courant, etw
se déplace au début de la prochaine w ord;de
supprime donc la fin du mot actuel etdw
supprime en outre les espaces suivants.la source
<kbd>
pour les clés réelles, pas pour les séquences de commandes. Par exemple<kbd>Ctrl</kbd>+<kbd>C</kbd>
, maisd$
.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.
la source
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
):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.
J'ai choisi Ctrl- lcar
l
est sous vos doigts. Le Ctrl- kest déjà utilisé pour insérer des digrammes.Je cherchais
:h i_Ctrl
des 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.la source
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
|
),En utilisant la commande, vous 3Dobtiendrez:
la source