Sometimes when I am working on a project, I use project-wide variable or function definition. So I name them.
I usually suck at naming.
So when I think of a better name, I need a way to change it globally, ie in all the files of the current project that uses it.
In Spacemacs, I have heard of what Fabien Dubosson, one of the main Spacemacs dev, called the “nuclear weapon of multi-editing”. When I switched from Helm to Ivy, I looked for a way to do the same thing.
It turned out that Ivy-occur has nice integration with Wgrep since Ivy version 0.8.
Nuclear-weapon multi-editing :
counsel-ag, to search for the string I want to modify in the current
directory. By default,
counsel-ag) will ignore files ignored by git.
C-c C-o (
ivy-occur) in the search result. It opens an
I switch to this buffer and press
C-x C-q (
to edit it. I can now change each variable name globally using normal search and
replace techniques. I use Evil-ex commands
:%s/pattern/replace/g but you may
use others as well (I have heard good things of Iedit too…).
I then press
C-c C-c (
wgrep-finish-edit). Now every occurence of the word
edit in all files has been replaced with potatoes.
Ivy is great.