J'apprécie vraiment la incsearch
fonctionnalité de Vim . Existe-t-il un moyen de le faire fonctionner, ou quelque chose de similaire, pendant que je fais un remplacement?
Par exemple, si en mode normal je tape:
:%s/potato/
Puis-je obtenir tous les potato
s en surbrillance sur mon fichier, tout comme ils sont mis en évidence par incsearch
quand j'écris
/potato
?
Cela m'aiderait déjà beaucoup lors de l'utilisation d'expressions régulières. Un très très beau serait que lorsque j'écris ceci:
:%s/potato/banana/
Il remplacerait le potato
s par le banana
s et les mettrait en évidence - peut-être que les remplacements devraient être d'une couleur différente. Il ne devrait pas "valider" le changement tant que je n'ai pas appuyé sur Entrée).
J'utilise neovim pour le moment, au cas où cela aiderait.
incsearch
?hlsearch
devrait fonctionner ootb, si je tape:%s/potato/\0/
pour remplacerpotato
par lui-même, alors je vois toutes les correspondances en surbrillance.:/pattern<CR>
fonctionne bien, puis ajoutez le% s et la chaîne de remplacement. Thene à nouveau affine la recherche et utilise CTR-R / pour coller dans la partie recherche de:%s/
:%s/potato/carrot/c
vous permettra de sauter ("confirmer") à travers vos remplacements (ajouterg
pour remplacer toutes les instances sur la même ligne) et avechlsearch
vous les verrez à l'avance.Réponses:
Après un peu de recherche, j'ai trouvé ce problème NeoVim , qui à son tour a été fermé par ce PR , ce qui m'a amené au
inccommand
réglage. Ajout de ceci à mon fichier de configuration:fait que NeoVim se comporte presque exactement comme je l'ai demandé dans ma question. Je n'ai pas trouvé quelque chose d'équivalent pour le Vim ordinaire, mais je ne l'ai pas cherché très énergiquement.
la source
incsearch
en subtitutions (être un Vimmer paresseux et lent à adopter les choses néo) je ne serais probablement chercher la pomme de terre (/potato
) profiter de la recherche incrémentale ordinaire highlighighting, puis remplacer par une recherche vide:%s//banana
. Mais je ne sais pas comment cela se compare àset inccommand=nosplit
d'autres égards.inccommand
cadre que j'ai fait un asciinema le montrant au travail, au cas où cela vous motiverait à essayer les neovim