web-dev-qa-db-fra.com

Supprimer du curseur à la fin de la ligne dans `vi`

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

334
Falmarri

La commande dw supprimera de la position actuelle du curseur au début du caractère Word suivant. La commande d$ (notez que c'est un signe dollar, pas un "S") supprimera de la position actuelle du curseur jusqu'à la fin de la ligne actuelle. D est synonyme de d$.

499
Tok

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 il supprimera de la position du curseur jusqu'à la fin de la ligne et vous mettra en mode [INSERT].

54
Brad Johnson

Une des choses intéressantes de vi est sa structure de commande logique. d suivi d'une commande de mouvement d s'achève vers la cible de ce mouvement. $ se déplace à la fin de la ligne (mnémonique: comme dans les regexps). Donc d$ supprime jusqu'à la fin de la ligne. De même, e se déplace vers le e nd du mot en cours, et w se déplace vers le début du suivant w ord; donc de supprime la fin du mot actuel et dw supprime en outre les espaces suivants.

Vous souhaitez probablement utiliser D. Déplacez le curseur sur le premier caractère que vous souhaitez supprimer, puis appuyez sur Maj-D. Tout est parti. En fait, c'est dans le tampon de coupe par défaut, vous pouvez donc P ou p le coller à nouveau.

J'utilise Dp (supprimer à la fin de la ligne, puis le remettre), passer à 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 mettre une URL compliquée à deux endroits ou plus.

21
Bruce Ediger

Pour supprimer une plage de lignes après la position du curseur, 3D supprimera du curseur jusqu'à la fin de la ligne, ainsi que les deux lignes suivantes complètement (c'est-à-dire, supprime 3 lignes après la position du curseur).

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

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

Utilisation de la commande 3D affichera:

If there's a cursor
go
1
Nick Bull

Je pense qu'un raccourci du mode d'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, D en mode normal et Ctrl+l en mode insertion. Comme vous pouvez le voir, vous avez également C qui commence à changer jusqu'à la fin de la ligne.

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

J'ai choisi Ctrl-l parce que l est sous vos doigts. le Ctrl-k est déjà utilisé pour insérer des digraphes.

J'ai cherché dans :h i_Ctrl pour certains raccourcis clavier gratuits, et c'est en fait le plus gros problème lorsqu'il s'agit de créer de nouveaux raccourcis pour effectuer des actions dans vim.

1
SergioAraujo