Question vi raccourci pour supprimer “jusqu'au prochain caractère X”


Je comprends que vi a des touches de raccourci pour supprimer des caractères, des mots et des lignes avec différentes options.

Cependant, je n'ai pas pu trouver ceci:

  • supprimer du curseur au prochain caractère spécifié

Par exemple, je pourrais taper du" s'attendant à ce que l'éditeur "supprime jusqu'à la prochaine " personnage est trouvé "

Le plus proche que je connaisse est d9w où 9 est le nombre de mots à supprimer.

Est-ce que quelqu'un sait si c'est possible?


153
2017-10-08 15:43


origine


Si vous êtes intéressé par Vi et Vim, ils ont maintenant leur propre site SE: Vi et Vim - dessert


Réponses:


Utilisation dtc, où c est un caractère quelconque, par ex. pour toi, tu veux dt"

Cela va supprimer jusqu'à mais ne pas comprenant c.

Si tu avais:

delete until exclamation point!

Et le curseur était au premier espace et vous avez tapé dt!, vous auriez:

delete!

Aussi dfc.

Cela va supprimer jusqu'à et comprenant c.

En utilisant df! sur le même exemple ci-dessus vous donnerait:

delete

À peu près n'importe quel "mouvement" peut être utilisé pour le d, c, y et commandes similaires.


248
2017-10-08 16:19



Exactement ce que j'étais après! Merci @Arcege! - kctang
Vraisemblablement, le mnémonique est t pour "jusqu'à"? Bonne réponse. - overthink
Vous pouvez également supprimer à l'instance précédente d'un caractère la version en majuscule des commandes de mouvement. Peut-être plus utile pour les virgules - dT, et dF,. - Joel Ostblom
Cela ne fonctionne pas sur plusieurs lignes. - 0xcaff
Cela peut-il être fait sur une gamme de lignes? - Jim


  • Supprimer le type de caractère 'X' dtX

  • Supprimer le type de caractère 'X' dfX

  • Supprimer le caractère "X" en arrière dTX

  • Pour supprimer le caractère "X" en arrière dFX


38
2018-06-02 18:02





L'entrée dt # (pas une commande: utilisez-la comme un mouvement comme G)

va supprimer du curseur jusqu'à mais sans inclure le #. Vous pouvez remplacer n'importe quel caractère par #.


29
2018-06-21 02:44



C'est la bonne réponse! df # va également supprimer #. - Viet
été à la recherche de cela, c'est génial - Nadeem Khedr


Il semble que @Arcege a déjà répondu à la question, mais je l'ai fait d/l supprimer jusqu'à ce que le caractère l; d'autres personnages fonctionneraient aussi bien.


15
2017-10-09 11:42



Cela fonctionne pour les choses à travers les nouvelles lignes. - jasonszhao
Note: ceci doit être suivi par Enter. - Eric Lebigot


w passe au mot suivant. l passe au caractère suivant.

Alors c'est d9l pour supprimer les 9 caractères suivants.


6
2017-07-10 19:48



Fermer, l est la touche fléchée droite de Vim, vous supprimez donc bien. Inversement, d9h supprimerait 9 caractères restants. - Walf