277 votes

Comment supprimer rapidement une ligne dans VIM à partir de la position du curseur ?

Je veux pouvoir supprimer le reste de la ligne sur laquelle je me trouve à partir de la position du curseur dans VIM. Existe-t-il une commande simple pour faire cela ?

Pour aider à illustrer, ceci est avant la commande.

The quick brown dog jumps over the lazy fox.
     ^
     |----- Cursor is here.

C'est après la commande

The q
     ^
     |----- Cursor is here.

449voto

thiton Points 21303

(Modifié pour inclure les bons ajouts du commentateur :)

D ou son équivalent d$ supprimera le reste de la ligne et vous laissera en mode commande. C o c$ supprimera le reste de la ligne et vous mettra en mode insertion, et le nouveau texte sera ajouté à la ligne.

Cela fait partie de vitutor y vimtutor d'excellentes lectures pour les débutants en vim.

1 votes

Mince, je me suis dit que c'était quelque chose de facile, je pensais à une combinaison de d suivi de quelque chose. J'ai pensé qu'il serait plus rapide de poster la question ici et que cela profiterait à d'autres personnes qui effectuent par défaut des recherches en ligne avant de lire le manuel.

3 votes

Ou C C'est le seul moyen "réel" d'amener le curseur à la position indiquée, bien que cela vous mette en mode insertion.

1 votes

@Anthony : Il existe également un " d suivi de quelque chose" - commande équivalente pour D où "quelque chose" est le $ motion : d$ .

43voto

lucapette Points 13109

Utilice D . Voir docs pour de plus amples informations.

24voto

Xavier T. Points 14049

Vous pourriez également être intéressé par C il effacera également la fin de la ligne comme suit D mais en plus, il vous mettra en mode Insertion à l'emplacement du curseur.

11voto

Robert Munteanu Points 31558

Exécuter en mode commande d$ .

9 votes

D est une solution plus rapide pour cela.

9voto

AFOC Points 479

Il s'agit d'une question très ancienne, mais comme le VIM est toujours d'actualité, il convient de clarifier certaines choses.

Toutes les réponses et tous les commentaires d'octobre 2018 font référence à ce que l'on appelle communément une action de "coupe". registre sans nom . Ce registre a tendance à être traité comme un presse-papiers de type copier/coller par défaut, donc aucune de ces réponses ne fonctionnera comme souhaité si vous supprimez le reste d'une ligne pour coller quelque chose au même endroit par la suite, car ce qui vient d'être supprimé sera ensuite collé à la place de ce qui a été arraché auparavant.

La véritable commande de suppression dans le contexte de l'OP est "_D (ou "_C si le mode d'insertion est souhaité). Le contenu supprimé est alors envoyé dans le fichier registre du trou noir désigné par "_ où il ne dérangera plus jamais personne (bien que vous puissiez toujours annuler cette action en utilisant le bouton u ).

Ceci étant dit, ce qui a été arraché en dernier est stocké dans le fichier 0 registre et même s'il est remplacé dans le registre sans nom, il peut toujours être collé en utilisant la commande "0p .

En savoir plus sur le registre du trou noir y les registres en général pour un plaisir VIM supplémentaire !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X