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.
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.
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$.
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
?
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$
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].
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 et a
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 utiliser a
.
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). Donc d$
supprime jusqu'à la fin de la ligne. De même, e
se déplace au e e du mot courant, et w
se déplace au début de la prochaine w ord; de
supprime donc la fin du mot actuel et dw
supprime en outre les espaces suivants.
<kbd>
pour les clés réelles, pas pour les séquences de commandes. Par exemple <kbd>Ctrl</kbd>+<kbd>C</kbd>
, mais d$
.
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.
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 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.
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