Ecco una guida completa: http://wikemacs.org/wiki/Python Elenca le soluzioni pronte per l'uso (lo starter kit Prelude , Spacemacs, soluzioni per la scienza dei dati , ...), anche pacchetti utili (Elpy) come ogni pacchetto necessario per migliorare il tuo ambiente. Ecco una panoramica .
refactoring
Questa è la funzione più "specifica per IDE". Emacs offre alcune possibilità grazie alla libreria Rope Python. Si scopre che il modo più semplice per installare e utilizzare è il pacchetto emacs-traad , in MELPA. Presenta, tra gli altri:
- cambia la firma di un metodo: aggiungi / rimuovi un argomento, con refactoring tra progetti (ovviamente),
- rinominare qualsiasi cosa,
- trova definizioni, ...
La corda è inclusa anche in Elpy.
Manipolazione del codice più semplice
Abbiamo strumenti più semplici per aiutare il refactoring o nella manipolazione del codice: http://wikemacs.org/wiki/Python#Other_Python_.22refactoring.22_tools
Ad esempio, Projectile è fantastico (vedi altre risposte), abbiamo anche uno strumento per aggiungere decoratori , aggiungere / rimuovere / modificare argomenti , rinominare / copiare / commentare / uccidere un metodo, uno strumento per la generazione di codice, ...
Navigazione codice
Possiamo navigare come IDE con tag e cscope: trova le funzioni che lo chiamano, trova occorrenze, ecc.
Emacs ha anche fantastici pacchetti come imenu (helm-imenu), helm -swoop (grep interattivo in un buffer), emacs-helm-ag (ricercatore interattivo di argento in un progetto), ecc.
Esecuzione di test
È Elpy che fornisce un buon supporto per eseguire i test (con il django runner, elpy o un altro). Possiamo anche eseguire solo il test unitario in cui ci troviamo attualmente: molto utile! Quindi c'è un Hydra per aiutarlo (passare da un errore all'altro, passare al prompt di Python ...).
Fai supporto
Questo è un pacchetto Emacs non specifico per Python. Ma mi piace poter eseguire un obiettivo make da qualsiasi parte del progetto e scegliere il comando make con completamento . collegamento
Gestire il rientro
C'è un piccolo pacchetto, indent-tools , che fornisce comandi per lavorare direttamente con un blocco rientrato: passa al blocco di rientro successivo-precedente-parent-parent, indent / deindent / comment / copy / kill / fold the current-block , ecc. Perfetto per yaml, e anche per Python. Demo di doc e gif
Supporto Django
vedi Django . Elpy supporta il corridore django. Vedi elpy django doc . La modalità django (in melpa) ha modelli in evidenza, comandi rapidi, completamento dei comandi di gestione , ...
Anche importante: ottimo supporto per Git, Github e Gitlab
magithub può creare PR di github, possiamo recuperare problemi e inserire i loro riferimenti nei messaggi di commit, magit è fantastico,… vedi http://wikemacs.org/wiki/Git