J'utilise vim depuis quelques années en tant qu'éditeur secondaire mais pour diverses raisons, je me retrouve à l'utiliser de plus en plus même lorsque mon éditeur principal est disponible. Un problème qui m'a toujours dérangé vim
et qui m'empêche de l'utiliser davantage est la façon dont il gère le placement du curseur. Le curseur ne peut se trouver que sur un caractère, plutôt qu'entre les caractères, comme ce serait le cas avec tout éditeur créé depuis 1984.
Pour juste un exemple de pourquoi c'est un problème, si je veux supprimer le dernier mot sur une ligne, je frappe $
pour aller à la fin de la ligne, puis db
pour supprimer vers l'arrière. Cela laisse un caractère à supprimer, car il $
n'est pas vraiment allé à la fin de la ligne, il est allé au dernier caractère de la ligne et db
n'a supprimé que ce qui était avant le caractère actuel. Le problème n'est pas que je doive taper un caractère supplémentaire, c'est la pensée supplémentaire impliquée dans ce qui devrait être simple, qui détourne mon attention de ce que j'essaie d'accomplir.
Il me semble que le placement du curseur d'idée plus moderne est à tous égards supérieur, et je voudrais passer vim
à utiliser cette approche. Je suis sûr que certains vim
fans inconditionnels seront en désaccord avec mon point de vue à ce sujet, mais comme l'un des arguments standard pour vim
la supériorité de est sa configuration infinie:
- peut-il livrer dans ce cas?
- Peut-
vim
on faire pour placer le curseur entre les caractères?
Insert
mode ou manquez le point denormal
mode. Je ferais$daw
ou$bdw
pour supprimer le dernier mot d'une ligne en mode normal. EnInsert
mode je feraisA<Ctrl-w>
.$bD
Réponses:
Vous pouvez
:set virtualedit+=onemore
, ce qui vous permet de dépasser le dernier caractère. Malheureusement pour vous,$
va toujours au dernier personnage; vous devez passer le curseur pour le dépasser. D'un autre côté, vous pouvez utiliserg$
, qui va normalement au dernier caractère de la ligne d' écran sur une ligne qui se termine; enonemore
mode, il passe également juste après le dernier caractère d'une ligne non encapsulée (ou la dernière ligne d'écran d'une ligne encapsulée).:h 'virtualedit'
dit que cette option peut perturber les scripts, mais je ne sais pas quel est le risque réel.la source