J'ai récemment supprimé le plugin YankRing de ma configuration en partie parce qu'il causait des problèmes avec les macros, mais surtout parce que j'ai décidé qu'il serait préférable de me former à utiliser les registres de Vim à la place - en particulier, la façon dont le texte supprimé est stocké initialement dans le registre "1
puis déplacé vers le haut à travers "2
, "3
etc. que d' autres suppressions sont faites est très utile.
Cependant, lorsqu'une suppression / modification supprime moins d'une ligne de texte, elle est plutôt stockée dans le "-
petit registre de suppression (à quelques exceptions près pour certaines commandes de mouvement). Si de petites suppressions ultérieures sont effectuées, ce morceau de texte est perdu.
Est-il possible d'obtenir Vim pour stocker toutes les suppressions dans le registre "1
?
nnoremap d "1d
fonctionne presque , mais vous vous retrouvez avec le texte dans les deux registres "1
et "2
.
Cela ne me dérange pas si la fonctionnalité du petit registre de suppression est affectée ou non. Suggérer que je change mon comportement pour enregistrer de petites suppressions dans un registre nommé ne serait certainement pas une réponse utile - c'est ce que je fais actuellement.
J'ai une solution de preuve de concept qui fonctionne pour la
d
commande avec des mouvements et en mode visuel. Ce n'est pas encore une solution entièrement robuste (par exemple,d[count]d
ne fonctionne pas , et non plus[count]D
), mais elle couvre presque tous mes cas d'utilisation réels.Il fonctionne en définissant une fonction d'opérateur client qui:
Voir
:help map-operator
pour une explication du fonctionnement des fonctions de l'opérateur.la source
y
etc
mais pourc
mon nvim ne passe pas en mode insertion après l'action ... Actuellement, je dois le faireexecute l
etstartinsert
ce n'est pas un correctif correct (commec$
placer le curseur dans la mauvaise position). Des idées?Découvrez la Pull Request dans l' éditeur neovim :
[RFC] Ajoutez une option pour utiliser des registres numérotés pour les suppressions plus petites # 8169
J'ai essayé d'ajouter l'
smalldel
option, qui vous permet de configurer le nombre minimum de caractères supprimés à insérer dans les registres numérotés "1 .." 9La prochaine version de neovim après la fusion de ce PR (si cela se produit) contiendra cette option.
la source