2011-11-09 14 views
11

ciò che sta accadendo:Python Interpreter in Emacs ripete linee

>>> 2 * 10 
2 * 10 
20 
>>> 

Quello che voglio che accada:

>>> 2 * 10 
20 
>>> 

Qualcuno sa il motivo per cui il comando viene stampato prima di essere giustiziato e come fermarlo dal farlo? Non riesco a trovare alcuna documentazione su questo. Sto usando Emacs 23 su Mac OS X con Python 2.7.

+2

Come stai iniziando il processo di Python? 'run-python',' python-shell'? – harto

+2

Un altro modo è avviare 'ansi-term' e quindi' ipython' al suo interno. –

+0

Beh, non sapevo di ansi-term. Ho usato shell M-x così grazie per quello. – methodmain

risposta

10

Non utilizzo python, ma suppongo che la funzione Python in uso abbia impostato la variabile comint-process-echoes in modo errato. Qualunque sia il valore nel tuo buffer, basta invertire il valore booleano.

Comint è una libreria di supporto in Emacs per l'esecuzione di processi inferiori in Emacs. Interagisce con i prompt e la shell python (o shell M-x) deve essere comunicata sulla funzione eco.

Nel buffer shell con il problema, fare:

M-: (setq comint-process-echoes t) ;; or nil 
+0

Grazie. Questo è stato. – methodmain

+2

Anche questo funziona per me! Mi chiedo se puoi aiutare con [la mia domanda] (http://stackoverflow.com/questions/9830729/emacs-python-echoing-hooks-and-org-mode) che riguarda l'esecuzione di questo in un hook ogni volta che python si avvia ? – alexplanation

+0

@Eric Sto usando Elpy su Emacs in Ubuntu Ho lo stesso problema ma questa soluzione non funziona. Può aiutarmi –