2009-02-17 8 views
6

En modo python (para emacs), al presionar Control-C \ Control-C se ejecutará el búfer actual. Sin embargo, cuando la ejecución finaliza, el buffer de salida surge y divide mi ventana de edición por la mitad. Este es un completo dolor, ¡especialmente teniendo en cuenta que generalmente no hay salida en el búfer de todos modos!¿Cómo suprimo el buffer de salida de python-mode?

¿Hay alguna manera de evitar que aparezca el búfer? Además, ¿cómo puedo enviar descargas eléctricas dolorosas al programador que pensó que interrumpir inesperadamente mi línea de pensamiento con un búfer vacío era una buena idea?

Editar: Aparentemente, hay usos para este comportamiento, sobre todo para ver la salida de un programa. Está bien, pero si no hay salida (como en el programa con el que estoy retocando), es realmente tonto para cortar mi memoria intermedia por la mitad con una ventana en blanco.

+0

¿Qué versión de emacs estás usando? Estoy usando GNU Emacs 22.3.1 y el buffer de salida no aparece cuando presiono C-C C-C en modo python. –

+0

Estoy usando 23.0.60.1 en XP. –

+0

Acabo de actualizar a 23.0.60.1 (en XP) y todavía no veo este comportamiento. Creo que la respuesta de EnigmaCurry a continuación es útil. –

Respuesta

6

¿Qué modo python estás usando? Desafortunadamente, hay varios.

Escriba C-h k y luego C-c C-c .. ¿qué dice en la línea de modo? Dice "py-execute-buffer" o dice "python-send-buffer", el primer tipo indica que estás usando el modo python de Tim Peters, mientras que el segundo indica que estás usando el modo python de Dave Love .

Yo prefiero el modo de pitón de Dave Love, y es la versión que se incluye con Emacs 23 (¿y quizás también antes?). Dave Love's no muestra el búfer cuando ejecuta C-c C-c, tiene que cambiar explícitamente al búfer * Python * si desea verlo.

Si realmente quiere seguir con la versión de Tim Peters, siempre podría poner algo como lo siguiente en sus archivos .emacs y nunca volverá a ver el búfer de salida a menos que se lo haya movido explícitamente.

(defadvice py-execute-buffer (after advice-delete-output-window activate)          
    (delete-windows-on "*Python Output*")) 
+0

De acuerdo, aparentemente estoy usando la versión que usa "py-execute-buffer", que es la versión que descargué de la página python-mode. ¿Dónde puedo encontrar la otra versión? –

+0

Acabo de encontrar su versión, y hasta ahora, definitivamente la prefiero. Mi única queja ahora (y estaba presente en la otra versión) es que las importaciones no están siendo ... bueno, importadas. Parece que Emacs está filmando el búfer en un archivo temporal, cuando ya hay un archivo que podría usar. Grrrrr. –

+0

Aparentemente, si el directorio desde el que se inicia Python es de escritura mundial, las importaciones se desactivan, o algo así. No lo entiendo, pero comentar que de python.el pareció funcionar. Que espantoso dolor –

2

Lo siento que no puedo ayudar con emacs, pero en cuanto a su segunda pregunta, un teclado de aluminio modificado de Apple puede ser una solución:

http://www.apple.com/keyboard/

1

Es posible que desee personalizar la variable pop-up-windows ; que controla la funcionalidad de división.

0

No sé cómo evitar que aparezca, pero C-x, 1 cerrará la ventana.

+1

Y todas las otras ventanas que tiene abiertas. – jrockway

Cuestiones relacionadas