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. erefactor
Paket bildiğim sadece bir tanesidir.
erefactor-rename-symbol-in-buffer
istediğ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 erefactor
MELPA ( M-x package-install RET erefactor
) ' da mevcuttur . MELPA sayfasını burada bulabilirsiniz .