2010-10-02 16 views
5

En las Emacs en el PC en la escuela que se puede utilizar 'F5' para ejecutar una pieza seleccionada de código Perl. Sin embargo, cuando trato de hacer esto en casa, falla. He instalado Emacs y Activeperl en mi máquina Windows7.ejecutar código Perl directamente en Emacs

Siempre trato de ejecutar una pieza de código me sale el error 'F5 es indefinido'. Sin embargo, cuando miro el archivo .Emacs, veo que la tecla de función F5 está enlazada correctamente a la función perl-eval. Esta tarde funcionó poniendo (defalias 'perl-mode 'cperl-mode) en mi archivo .Emacs, pero cuando traté de escribir el código esta tarde recibí nuevamente el error 'f5 no está definido'.

Cualquier persona que me puede ayudar con este tema? Sé que puedo ejecutar mi código perl con la herramienta cmd, pero es mucho más fácil cuando puedo ejecutarlo directamente desde mi Emacs :).

Respuesta

3

Parece que tu .emacs es válida, pero podría ser en el lugar equivocado

para comprobar dónde .emacs debe hacer:

MxgetenvRET INICIO RET

que debe mostrar algo como: (Windows XP)

C:\Documents and Settings\YourName\Application Data\ 

(o windows7)

C:\Users\YourName\Application Data\ 

Si es la misma ubicación que .emacs, agregue un mensaje de depuración al final de su archivo .emacs. p.ej.

(message " >------------< This is the one >------------< ") 

y reinicie Emacs y busque en la memoria intermedia *messages*.

Si se muestra el mensaje de depuración, la clave de unión debe estar disponible, lo comprueba con C-h k F5

sepamos el resultado de estas pruebas.

+0

Gracias :). De hecho, el.El archivo emacs debe estar en C: \ Users \ Name \ Application Data \ Roaming, ahora el archivo está cargado y puedo ejecutar el código perl con la tecla F5. Realmente deberían poner esto en el archivo README porque el .emacs original estaba en c: \ emacs \. Usted señor es un salvavidas;). – Najdo

+0

Simplemente no hay muchos usuarios de Emacs que ejecuten Windows, y mucho menos que ejecuten Windows 7, y los que sí lo están, no están actualizando Emacs README o EmacsWiki.org. - Afortunadamente puedes obtener mucha ayuda de Emacs aquí en SO. – ocodo

2

Usted puede hacer C-h k F5 en ambos casos de Emacs. Le indicará a qué comando está vinculada la tecla F5, para que pueda ver la diferencia. Para obligar a la tecla en el equipo local después de saber cómo llamarlo, usar algo como:

(add-hook 'perl-mode-hook '(lambda() (local-set-key [f7] 'compile))) 
+0

noté que intentaron C-h k F5, pero por otra parte también dicen 'no está definido F5'. Pero si miro en mi archivo .Emacs, veo el siguiente comando: '(global-set-key (kbd "")' perl-eval) ' – Najdo

+0

Esto es bastante extraño, porque parece perfectamente legal. ¿Estás seguro de que tu .emacs está cargado? Por cierto: usted escribe .Emacs, sin embargo tiene que llamarse .emacs (sin mayúscula e), esto podría ser una causa de error. Hazlo en Emacs C-x f ~/.emacs y asegúrate de que carga el archivo correcto. – fschmitt

+0

Como puede ver, se ha dado la respuesta correcta. Pero gracias por tu ayuda. – Najdo

2

En el fichero .emacs

(defun perl-eval() "Run selected region as Perl code" (interactive) 
    (shell-command-on-region (mark) (point) "perl ")) 
(global-set-key (kbd "<f5>") 'perl-eval)
+0

Estaba viendo esto y me preguntaba ¿por qué la salida de la función va a la barra de estado en la parte inferior? (no estoy seguro de cómo se llama realmente la barra de la parte inferior) – Shantanu

Cuestiones relacionadas