Come rinominare una variabile in emacs? Eclipse ha un'accurata azione di refactoring "rinominare" che ti permette di rinominare una variabile in modo scoping-aware, che può essere molto più facile da usare rispetto alle sostituzioni localizzate, specialmente se il nome della variabile è un carattere come e. Emacs ha una funzionalità simile integrata?Emacs Rinomina variabile
risposta
iedit è stato creato per questo genere di cose.
Iedit mentre un grande strumento di sostituzione fa solo la sostituzione, quindi non è adatto per la sostituzione intelligente (ad esempio se il nome della variabile è solo una lettera come il mittente messo) – Tom
In realtà Iedit insieme a espansione-regione mi permettono di sostituire i simboli all'interno di un interessante ambito lessicale molto veloce. Questo è il mio strumento per rinominare le variabili in tutte le lingue. La lunghezza del simbolo non è veramente rilevante. –
Non sono sicuro di quale sia la lingua del codice sorgente. Perché hai menzionato su Eclipse, presumo che sia Java. Un'opzione è usare la funzionalità tags-query-replace
. Utilizzare Excuberant Ctags con lo switch -e
per generare tag di stile etgas e richiamare tags-query-replace
.
È possibile utilizzare narrowing per mostrare solo parte di un buffer e la ricerca/sostituzione funzionerà solo nella regione ristretta. Ad esempio, è possibile utilizzare C-x n d per restringere la funzione corrente o selezionare la regione desiderata e fare C-x n n. Fai la tua ricerca/sostituisci, quindi allarga di nuovo con C-x n w. Per una variabile a lettera singola come e
, fare un query-replace-regexp
con C-M-% e utilizzare un'espressione regolare come \be\b
in modo che funzioni solo sui singoli e
anziché su altre parole.
Modifica: Ho solo pensato ad un'altra cosa. Se si seleziona una regione, la ricerca/sostituzione funziona solo in quell'area. Quindi è sufficiente selezionare l'ambito che si desidera sostituire, quindi fare la cosa query-replace-regexp
.
Nuovo Emacs ha M-s .
per selezionare il simbolo sotto il cursore, quindi è possibile C-M-%
e utilizzerà il simbolo attualmente selezionato per eseguire sostituzioni. NOTA Questa è solo una semplice sostituzione di stringhe, non come la funzione 'rename variable' di IDE.
Questa è una grande risposta per Emacs. Ma non sono assolutamente d'accordo con nessuno che abbia bisogno di una funzionalità di rinominazione variabile basata sull'oscilloscopio, come previsto dagli IDE Java. – ntc2
La ridenominazione sensibile al contesto è la mia caratteristica più utilizzata negli IDE. Ne ho assolutamente bisogno. – byxor
In Python, questo è più o meno fattibile con la libreria di refactoring di Rope, per la quale consiglio di usare emacs-traad, in MELPA (semplice da installare e facile da usare).
Dopo l'installazione abbiamo la funzione M-x traad-rename
che rinomina una variabile nel progetto.
Per una ricerca più semplice & sostituire, abbiamo il suddetto iEdit e anche Proiettile di projectile-replace
.
Dato che hai chiesto una funzione Eclipse, Iedit non lo taglierà. Non è così intelligente, cosa succede se hai due variabili con lo stesso nome su diversi ambiti? Li cambierebbe entrambi. Questo non succede su Eclipse! Avrai bisogno di uno strumento specifico per la lingua se ti aspetti questo tipo di consapevolezza.
Con dattiloscritto è possibile utilizzare tide. Con golang puoi usare go-doctor. In particolare con Java, non sono riuscito a trovare nulla, ma io uso meghanada, che è ottimo. Ma il refactoring è nella sua lista TODO! Si usa anche emacs come client per eclipse con eclim.
Oltre a considerare lo iedit già consigliato, è possibile considerare anche il pacchetto multiple-cursors. Dai un'occhiata a article, con l'animazione dell'edizione live.
Il supporto per questo tipo di funzionalità IDE moderna viene lentamente assorbito dagli editor Mesozoici come Emacs. Per Scala puoi farlo attraverso Ensime.
- 1. Rinomina ambito variabile del modello salvato in TensorFlow
- 2. Emacs Lisp: valuta variabile in alist
- 3. Rinomina ramo remoto
- 4. rinomina apk in gradle
- 5. Laravel 5.1 rinomina progetto
- 6. Rinomina file in Cocoa?
- 7. Skydrive rinomina cartella
- 8. Rinomina l'output di CPack
- 9. Rinomina file in IsolatedStorage
- 10. Subversion, rinomina, Wha?
- 11. XCode 4.2 Rinomina target
- 12. Symfony VichUploaderBundle rinomina file
- 13. Rinomina file, Python/Jython
- 14. git rinomina/cancella confusione
- 15. Rinomina modello con mongolo
- 16. Resharper Rinomina campi
- 17. Rinomina filePer non funziona
- 18. Rinomina file in DocumentDirectory
- 19. Json.net rinomina proprietà
- 20. Rinomina un file Typescript
- 21. Hadoop in rinomina file
- 22. Rinomina controllo in XAML
- 23. Rinomina getter e setter in Eclipse. Scorciatoia?
- 24. Differenza tra simbolo e nome della variabile in Emacs Lisp
- 25. Come nascondere gli avvisi di "variabile obsoleta" di Emacs?
- 26. come impostare la variabile locale del buffer in emacs
- 27. emacs: è prima-salva-aggancia una variabile locale?
- 28. Come impostare una variabile d'ambiente nella shell di emacs (eshell)?
- 29. Impostazione del numero di riga su una variabile in Emacs
- 30. Emacs: come trovare una variabile in base al suo valore?
Quale linguaggio di programmazione vuoi dire? Giava? – Tom
in questo momento sto guardando php, ma idealmente qualsiasi lingua. – nnythm
Per quanto mi piaccia emacs, trovo la mancanza di questa funzionalità davvero fastidiosa. Forse ci sono alcune nuove risposte là fuori? – Mankka