Quelle est la séquence la plus rapide à supprimer jusqu'à la fin de la ligne après la position du curseur?
Exemple:
Je veux supprimer cette ligne plus rapidement
Séquence: 5eD
supprimera le dernier caractère du motline
Je veux supprimer ce lin
Se déplacer avec vim m'a souvent mis sur le premier ou le dernier caractère d'un mot, m'obligeant à bouger d'une touche de plus chaque fois que je veux supprimer jusqu'à la fin de la ligne (dans l'exemple ci-dessus, en ajoutant un mouvement à droite: 5elD
). Existe-t-il un moyen plus efficace (en se déplaçant après la fin du mot ou en supprimant après le curseur)?
cursor-motions
Pierre-Jean
la source
la source
6wD
laisse un espace après le dernier mot, mais au moins le texte visible est comme vous le souhaitez.6wDx
termine le travail, mais vous êtes à nouveau à quatre touches.Réponses:
D
est une commande inclusive qui fonctionne sur un mouvement qui inclut le curseur à une extrémité et le dernier caractère imprimable sur la ligne à l'autre extrémité. Il n'y a pas AFAIK de manière intégrée pour transformer une commande inclusive en une commande exclusive et vice versa.La solution la plus lourde serait de définir vos propres opérateurs et mouvements / objets texte.
Une solution un peu plus légère serait de définir des mappages pour ces boîtiers d'angle.
Une solution encore plus légère - mais ennuyeuse - serait de passer quelques touches de plus en mode visuel.
Ou, vous pouvez simplement vous déplacer d'une manière légèrement plus "agile":
la source
Il existe plusieurs façons de réaliser ce que vous voulez:
Tout cela ne vous coûte que +1 touche.
Si la suppression à partir de la position actuelle +1 était possible, il serait judicieux de demander également la suppression de la position actuelle -1. Cela soulèverait également la question des autres commandes, par exemple la suppression jusqu'à la fin du fichier de la ligne actuelle +1, -1, etc.
Comment cela peut-il fonctionner? Je ne vois que deux façons possibles:
Donc, je ne vois pas de moyen d'avoir quelque chose de mieux que les fonctionnalités actuelles :-)
Je suis d'accord que c'est un peu malheureux qu'il n'y ait pas de commande "atomique" à supprimer du caractère suivant. Je vois l'utilité pratique de ce que vous demandez: lorsque vous raccourcissez un texte, je veux souvent supprimer à partir d'un caractère espace, parce que je ne veux pas laisser d'espace blanc à la fin des lignes (Git s'en plaint, par exemple). Et les commandes de saut de mot
w
ete
ne conviennent pas très bien à cela, comme lesw
sauts vers les premières lettres et lese
dernières lettres, et il n'y a pas de raccourci pour sauter dans l'espace après un mot, à l'exception des recherches explicites commef
. Je comprends donc et partage même votre besoin. Je ne vois tout simplement pas où cela peut être coincé dans la fonctionnalité existante.La meilleure alternative à laquelle je peux penser est d'enregistrer l'action dans une macro, disons
d
. À la fin d'un mot (sur la dernière lettre), enregistrez comme ceci:Ensuite, vous pouvez refaire cette action à la fin d'un autre mot avec
@d
. Pour le faire à plusieurs reprises, vous pouvez le faire@@
. Lorsque vous le répétez, c'est plus rapide à taper quelD
, mais cela peut dépendre de votre goût. Si vous ne le faites pas à plusieurs reprises, la macro n'aide pas vraiment, car c'est le même nombre de touches de toute façon (+ la création de la macro).la source