2009-12-07 15 views
14

Soy nuevo en emacs y quiero usar emacs para el desarrollo de python. Estoy usando Ubuntu 9.10. Me frustró que los emacs funcionaran con Python. Uso GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu, GTK + Versión 2.18.0).Cómo usar Emacs con Python

Aquí lo que hice. *

Emacs vienen con modo python pero es confuso, hay dos tipos de modo uno es python-mode.el y el otro es python.el. Yo uso emacs 23 así que el mío es python.el (creo). ¿Necesito el modo python también? La finalización del código no funciona cuando presiono M-Tab, en lugar de que el administrador de ventanas funcione. Intenté Esc-Tab pero dice "No hay coincidencia". ¿Cómo puedo habilitar la finalización del código?

Después de eso me instalado ropemacs

sudo aptitude install python-ropemacs 

Luego he creado el archivo .emacs en ~/.emacs y añade siguientes a .emacs archivo

(require 'pymacs) 
(pymacs-load "ropemacs" "rope-") 
(setq ropemacs-enable-autoimport t) 

Entonces cuando golpeo M-/(Alt- /) no funciona cuando hago clic en el menú Cuerda-> Ayuda del código abre un cuadro de diálogo de archivo para elegir la carpeta del proyecto raíz. Elijo la carpeta actual que tiene algún código python. Cuando vuelvo a intentar Ayuda con el código desde el menú, dice "Finalización para x:" nada más que conjunto vacío. ¿Cómo puede hacer que la finalización del código python de emacs funcione?

Entonces descargado anything.el, nada-config, nada-partido-plugin a la carpeta ~/.emacs.d Luego añade las siguientes líneas al archivo .emacs

(require 'anything-config) 
(require 'anything-match-plugin) 
(global-set-key "\C-ca" 'anything) 
(global-set-key "\C-ce" 'anything-for-files) 

adivinar lo que no funcionó. Intenté con "M-x cualquier cosa" y de nuevo obtuve No match. (Supuse que la combinación de C-ca (First control-a then e) podría funcionar, dice que no está definida). ¿Podrías explicar la finalización del código para Python con explicaciones claras (paso a paso) a un maniquí como yo? Gracias. Editar: Yo puedo trabajar con emacs python con el enlace. Gracias a todos por contestar

Respuesta

0

No estoy seguro de que haya que hacer nada para que el desarrollo de Python funcione. En gNewSense deltah (tenedor de Ubuntu 8.04) todo lo que hice fue editar un archivo .py con el ser primera línea:

#!/usr/bin/python

Y entonces Emacs simplemente se lo imagina y le da opciones de modo de pitón. No tuve que instalar nada más allá de Emacs.

Por otra parte, esto puede no ser útil ya que gNewSense preinstala Emacs de forma predeterminada. Tendré que hacerlo en una de mis instalaciones vanguardistas de Ubuntu.

+0

Emacs activa el modo Python mirando extensión py pero el código no funciona Complation –

+0

me refiero menú de Python es visible. Intenté desde Menú Python-> Completar símbolo pero no funcionó. –

+0

@TonyCruise Debería. Por favor, presente un informe de errores en https://gitlab.com/groups/python-mode-devs/issues ya que necesita más información para solucionarlo. –

0

Emacs funcionó para mí en Ubuntu 9.10.

¿Intentó C-c TAB (actualizar las importaciones) antes de intentar completar el código? No creo que funcione a menos que hagas eso.

+0

Escribí C-c TAB. Luego escribo impo (quiero que comlete para importar) y luego desde el menú Python-> Complete symbol Obtuve No Match. –

+0

Sí, tienes razón. Mis dedos mecanografiaron 'M- /' que funciona, pero no es lo mismo que la entrada del menú 'Símbolo completo 'que no parece funcionar. –

2

Creo que do quiere que el paquete python-mode esté instalado! Las variantes de ropemacs parecen ser solo para refactorización, y pymacs permite a Python como un lenguaje de extensión de Emacs, ninguno de los cuales es lo que necesita para el soporte estándar.

+0

Ahora traté de seguir sudo aptitude install python-mode luego obtengo un menú adicional IM-Python y otro menú de Python completamente cambiado ahora no hay Símbolos completos –

+0

Así son las cosas: necesitas otras herramientas de emacs para darte finalización del código en Linux. EmacsWiki puede ayudarlo a comenzar y las herramientas (cedet, ecb, ...) también están en Ubuntu. Dicho esto, no utilizo mucho al lado de TAGS y el "M- /" mucho más simple pero más que suficiente. –

+0

@TonyCruise Parece que se usa una versión desactualizada. Cargue uno actual, el desarrollo está aquí: https://gitlab.com/groups/python-mode-devs –

3

No he probado nada, y no he tenido mucha suerte con la soga (el árbol fuente gigante hace que mis emacs cuelguen en cualquier archivo guardado).En cambio, creo que la finalización predeterminada funciona lo suficientemente bien para mis propósitos.

La combinación de teclas de finalización predeterminada es M-/. Eso ejecuta dabbrev-expand, que expande la palabra actual a "la palabra anterior más reciente para la cual este es un prefijo". No es perfecto: no analizará los tipos, y no buscará las importaciones, pero funciona en el 90% de los casos.

(que tendrá que desactivar la cuerda.)