J'aimerais optimiser mon flux de travail "trouver et remplacer" dans Vim. C'est quelque chose que je fais souvent, comme la plupart d'entre vous, j'en suis sûr. Généralement, quelque chose comme: copie un bloc et change le nom d'une variable à quelques endroits. Je sais, je sais, cela déclenche probablement votre réflexe "pourquoi copiez-vous et collez-vous du code", mais n'allons pas dans cette voie ... Il existe de nombreux cas d'utilisation valables :)
Je connais bien les commandes de recherche et de remplacement: :s
ou, :%s
mais je ne les aime pas. Cela me force à taper à la fois le nom complet de la variable que je recherche et son changement. Peut-être y a-t-il une meilleure façon de régler le nombre de dactylographies :%s
? J'utilise souvent des noms de variable descriptifs longs, ce qui est donc vraiment un facteur décisif pour moi. Je n'aime pas non plus que le fait de taper un nom de variable à partir de zéro soit sujet aux fautes de frappe et puisse consommer du temps et de la cervelle à la recherche de fautes de frappe. Je préfère de loin taper une fois, puis copier-coller pour éviter cela, si possible.
Mon flux de travail actuel utilise une combinaison de mouvement / tirer / sélectionner / rechercher / mettre pour déplacer le fichier et le remplacer un par un. Ce n'est pas génial, mais a l'avantage d'éviter de taper des noms de variables complets. Je pourrais juste avoir besoin de taper les premières lettres avec /
ou d'utiliser une autre commande de mouvement (par exemple fx
) en fonction de ce qui est autour, puis appuyez sur ve
pour sélectionner le mot entier. Cela ne me dérange pas aussi de devoir répéter chaque fois. Je ne fais jamais un remplacement complet sans confirmer chaque changement. Mais il serait bien préférable que je répète l’action de remplacement avec une seule frappe (ce que je ne peux pas faire avec cette méthode). chaque remplacement est généralement quelque chose comme n
alors ve
alors p
(ou pire encore "0p
)
Y at-il un moyen plus rapide?
n
ve
"0p
. Ce qui malheureusement ne peut pas être reproduit avec juste un.
n ce ctrl-r 0 <esc> n.n.n.n.n.n.
.
répète le dernier "bloc de commande" (pas sûr du terme exact. Par exemple: move + action + text. par exemple:cwtoto<Esc>
(changement du curseur à la fin du mot avec "toto"),c/foo<enter>bar<Esc>
(changement du curseur juste avant " foo ", et remplacez par" bar "). vous pouvez alors vous déplacer (avec le curseur, hjkl ou un nombre + hjkl (le fait n fois), G (aller à la fin du fichier), / quelque chose (aller juste avant" quelque chose "), etc) puis appuyez sur.
pour refaire le même" bloc de commande "