Voglio riscrivere parti di un progetto opensource. Ciò include i metodi di ridenominazione. Come posso farlo in modo efficiente in emacs nell'intero progetto?
Preferirei non usare hack come la ricerca e la sostituzione in ogni buffer.
ropemacs
.
Voglio riscrivere parti di un progetto opensource. Ciò include i metodi di ridenominazione. Come posso farlo in modo efficiente in emacs nell'intero progetto?
Preferirei non usare hack come la ricerca e la sostituzione in ogni buffer.
ropemacs
.
Risposte:
Ora uso helm-ag
per trovare tutte le istanze del nome della funzione (ricerche in tutti i file, inclusi i sottodir, non solo nei buffer aperti), quindi uso C-c C-e
un buffer che elenca tutte le corrispondenze e lì cambio il nome della funzione. Quando ho finito, premo C-c C-c (helm-ag--edit-commit)
per memorizzare le modifiche a tutti i file aperti.
Questo può sembrare confuso, ma per favore vedi https://github.com/ShingoFukuyama/helm-swoop
Quando lo grugnisci piangerai lacrime di gioia per l'esistenza di tale meravigliosa funzionalità.
Dal momento che non hai specificato la lingua, è difficile dare risposte migliori di "Cerca e sostituisci".
Se vuoi semplicemente sostituire (in modo interattivo) tutte le istanze di un simbolo con un altro, wgrep è la soluzione migliore. Ti permette di modificare interattivamente il buffer dei risultati grep.
M-x package-install RET wgrep
.M-x rgrep
. Ti farà alcune semplici domande e quindi eseguirà una ricerca ricorsiva per il termine di ricerca all'interno della directory che hai individuato.M-x wgrep-change-to-wgrep-mode
. Questo buffer è ora modificabile. Eventuali modifiche apportate qui si rifletteranno nei file stessi.replace-regexp
o a query-replace-regexp
in questo buffer per eseguire il refactoring.M-x wgrep-save-all-buffers
e M-x wgrep-finish-edit
.Per alcuni approcci generici, guarda sotto l' intestazione " Sostituisci i file " nella pagina di ricerca e sostituzione di Emacs Wiki: http://www.emacswiki.org/emacs/CategorySearchAndReplace
Vedi anche le risposte a: Utilizzo di Emacs per trovare e sostituire ricorsivamente in file di testo non già aperti .