Comment supprimer la ligne suivante dans vim?

10

Dans emacs, chaque fois que je veux supprimer quelques lignes de texte, j'utilise simplement Ck jusqu'à ce que tout le texte soit parti. Cependant, dans vim, cela semble un peu plus complexe. Je sais que je peux faire d$pour supprimer jusqu'à la fin de la ligne et ddpour supprimer la ligne entière sur laquelle je suis, mais comment supprimer toute la ligne suivante ?

Jason Baker
la source

Réponses:

5

Comme ça:

:+1d
Ignacio Vazquez-Abrams
la source
16

Hypothèse: vous voulez vous retrouver à la ligne sur laquelle vous avez commencé.

Ma réponse: jddk

  • j (descend)
  • dd (supprime la ligne actuelle)
  • k (monte)

Essayez-le - c'est rapide! En fait, c'est deux touches de moins que la réponse actuellement acceptée car:

  1. vous n'avez pas besoin de maintenir la [Shift]touche pour entrer les deux points ':' et les caractères '+', et
  2. vous n'avez pas besoin de l'implicite [Enter]à la fin de la séquence, car jddkest entré tout en mode visuel par opposition au mode commande .

De plus, jddktout est sur la ligne d'accueil du clavier.

J'ai passé beaucoup de temps à utiliser h, j, k, l pour naviguer vi, bien avant que le logiciel d'émulation de terminal que j'utilisais ne commence à prendre en charge les touches fléchées. (Je parle il y a ~ 20 ans ;-)

Chris W. Rea
la source
1
hjkl est de toute façon plus rapide. Je n'ai jamais utilisé de clavier sans touches fléchées, et j'ai commencé à apprécier grandement l'efficacité de ces mappages de touches environ 10 minutes après avoir cessé d'être ennuyé par leur manque d'intuition.
intuition
2

Vous pouvez également être intéressé par le mode visuel. Utilisez simplement vpour entrer et ypour tirer ou dpour supprimer. La vérification :helpest un excellent endroit lorsque vous êtes également coincé. Par exemple :help delete, vous donnera le manuel de la plupart des commandes de suppression habituelles.

Joe Bane
la source
0

Si vous souhaitez supprimer un groupe de lignes d'affilée, vous pouvez utiliser ddpour supprimer la ligne sur laquelle vous vous trouvez, puis continuer à appuyer (ou maintenir) .(point) pour répéter la commande.

coneslayer
la source
ou tapez NddN est le nombre de lignes à supprimer. disons, pour supprimer la ligne actuelle et les deux lignes suivantes (3 au total), tapez 3dd
quack quixote