Due modalità Python


10

Ho cercato di configurare Emacs per utilizzare la modalità Python corretta. A tal fine ho letto alcuni tutorial. Soprattutto questo . Il tutorial utilizza il python-modepacchetto. Tuttavia, quando lo installo tramite il gestore pacchetti ( M-x package-install RET python-mode RET) non riesco a utilizzare i collegamenti disponibili per quel pacchetto.

Ho aperto un file Python per testare alcune scorciatoie come C-c |, che dovrebbero valutare l'espressione selezionata. Tuttavia, con mia sorpresa, questi non hanno funzionato, quindi ho deciso di scoprire altri tutorial sull'argomento. Tuttavia, nella mia linea di modalità vedo Python, quindi ce ne sono alcuni python-modeabilitati.

Sul wiki di emacs ho trovato il seguente frammento da aggiungere al mio init.elfile:

 (autoload 'python-mode "python-mode" "Python Mode." t)
 (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
 (add-to-list 'interpreter-mode-alist '("python" . python-mode))

Quando aggiungo questo python-modefunziona davvero e anche le scorciatoie di cui sopra funzionano.

Non capisco correttamente cosa fa di più che eseguire manualmente M-x python-modein un buffer di file Python.

Quando ho rimosso ogni traccia di python-modenella mia cartella .emacs e ho aperto un file Python ho notato che ho ancora un python-mode. Quindi la mia ipotesi è che ci sono due python-modes?

Penso di volerlo python-modeda https://launchpad.net/python-mode . Sembra che sia presente nel repository dei pacchetti, ma non sono sicuro su come rimuovere l'altra modalità Python.

Qualcuno potrebbe elaborare per favore?


1
Se vuoi usare Ipython, ein è un pacchetto eccellente. Ti dà l'equivalente del notebook Ipython in Emacs. Demo qui . Ci sono anche vecchie demo del repository originale ora non mantenute.
Tu Do,

Questo è un intero testo per una domanda piuttosto semplice. ;-) Sarebbe bello tagliarlo un po '.
Malabarba,

Sono d'accordo. Sono stato accurato come altri siti SE mi hanno pensato. Lo taglierò un po 'al più presto.
Christophe De Troyer,

Risposte:


10

Beh sì, ci sono due modalità Python: quella fornita con Emacs python.ele l'altra è python-mode.elche è davvero questa: https://launchpad.net/python-mode

Il tuo tutorial fa riferimento a quello successivo.

Lo python-modesnippet di installazione procede come segue:

;; by default, the function 'python-mode is associated with
;; the package python.el. The following changes that to python-mode.el:
(autoload 'python-mode "python-mode" "Python Mode." t)

;; open py files with python-mode
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

;; sets python interpreter mode to be python-mode
(add-to-list 'interpreter-mode-alist '("python" . python-mode))

Quindi rimuovo python.el o devo combinarli? Oppure esiste un nome specifico per quest'ultima modalità Python? Voglio che il mio init.elsia portatile, quindi la rimozione python.elpotrebbe non essere un'opzione.
Christophe De Troyer,

Basta installare python-mode.el e configurarlo con lo snippet che hai pubblicato. (o leggi il suo README)
Adobe,

Capisco cosa fa il comando, in combinazione con questa risposta: superuser.com/questions/108233/… Grazie per l'elaborazione.
Christophe De Troyer,

7

Come manutentore di python-mode.el e oltre alla risposta di @Adobe: python-mode.el non scarica i comandi da python.el - entrambi sono disponibili. A causa del nome di python-mode-map - che viene utilizzato da entrambi e non può essere modificato senza rompere molte cose - i tasti e il menu vengono consegnati dall'ultimo caricato.

C-c |chiama py-execute-regione funziona bene qui. Forse python.el è stato caricato in seguito e l'associazione è andata. Chiamare il comando tramite Mx potrebbe essere un'opzione di. In caso di problemi, prendere in considerazione una segnalazione di bug su https://bugs.launchpad.net/python-mode

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.