TL; DR: erefactor-rename-symbol-in-buffer
Sözcüksel olarak akıllı bir yeniden adlandırma işlevi arıyorsunuz - değişkenleri yalnızca aptal bir bulma ve değiştirme değil, kapsamlarına göre yeniden adlandıran bir işlev arıyorsunuz. Bunun gibi paketler birçok dilde mevcuttur, ancak yazı itibarıyla (Nisan 2019), Emacs Lisp için pek fazla seçenek yoktur. erefactorPaket bildiğim sadece bir tanesidir.
erefactor-rename-symbol-in-bufferistediğiniz işlevdir. Geçerli kapsamdaki sembolleri (docstrings dahil) değiştirecek akıllı bir bul ve değiştir komutudur. Bu komutun sınırlaması, geçerli arabellek dışında arama yapmamasıdır. Akıllı, ama mükemmel değil. Son sonucun sıhhi olmasını sağlamak için her bir vakayı onaylamanızı isteyecektir.
Diğer yeniden adlandırma işlevi erefactor-rename-symbol-in-package. Bu aynı şekilde çalışmaz - sadece küresel semboller üzerinde çalışır. Paketinizin bir gruplama sistemi ve öneki ile doğru şekilde kurulmasına dayanır ve paketin önekiyle eşleşmesi için değişkene ihtiyaç duyar. Çok sağlam değil - bu işlevin beklediği şekilde bir şey ayarlamadıysanız başarısız olacaktır. Küresel bir sembolü yeniden adlandırıyorsanız, Elisp'teki küresel sembollerin bir ad alanı olmadığından, naif bir bul ve değiştir de kullanabilirsiniz. Sözcüksel anlayışın faydaları minimaldir. Bu komut, takas için çok kırılgandır. Sadece kullanmanızı öneririm projectile-replace.
Erefactor, yararlı bulabileceğiniz bir dizi diğer Elisp komutuna sahiptir. Benioku dosyasında (eksik) bir liste var .
GitHub sayfasında açıklanmaz, ancak erefactorMELPA ( M-x package-install RET erefactor) ' da mevcuttur . MELPA sayfasını burada bulabilirsiniz .