Uma vez ouvi um amigo, o Henrique Bastos, falar pra alguém que usava Vim algo como:

Quero ver fazer um refactor tão fácil como no PyCharm…

Por refactor ele queria dizer mudar o nome de um objeto (uma função, uma classe, um método) e a IDE vasculhar teu projeto todo refletindo essa mudança no namespace.

Lembro que na hora não respondi pois… Primeiro odeio guerra de editor/IDE etc. Tenho mais o que fazer. Cada um use o que te faz mais produtivo. E segundo pois a provocação não era pra mim. Mas se alguém precisar, tem jeito facinho facinho!

Eu uso o NeoVim, mas a dica funciona com o Vim também: normalmente quem desenvolve em Python tem o python-mode instalado. Esse plugin instala o ropevim, é esse último tem o comando RopeRename, que faz exatamente isso que o Henrique perguntava.

É super fácil de usar:

  1. Posicione o cursor no objeto que vai renomear
  2. C-c r r (no jargão do Vim isso é Ctrl + c depois r e depois r outra vez)
  3. Escolha o novo nome do teu objeto
  4. Pronto! Só escolher se é pra refatorar tudo mesmo (perform) ou só fazer um preview do refactor 🎉

Tão fácil quanto o PyCharm… e não lembro se o PyCharm te mostra um preview antes 😉