Programando Python y Zope desde la consola con emacs

¿Quieres tener colores en tu emacs?

¿Quieres editar tus ficheros de zope desde la consola?

¿Quieres abrirlos directamente por FTP?

Aquí tienes unas pocas notas sobre como personalizar tu emacs para trabajar con Python, Zope2 o Zope3

Si estás en un entorno gráfico y lo que quieres es programar en una consola de texto, deberás invocar al comando con la opción ‘nw’ para que no abra una ventana adicional:



 emacs -nw

Puedes crear un alias para no tener que invocar a emacs de esta manera. Por ejemplo, puedes modificar tu ‘.bashrc’ asi:

alias emacs='emacs -nw'

Si quieres que emacs resalte la sintaxis del código de tus programas y plantillas, deberás utlizar el comando ‘font-lock-mode’:

M-x font-lock-mode

Si no queremos hacer esto cada vez que cargamos un fichero, podemos editar nuestro fichero de customización ‘.emacs’ así:

(add-hook 'find-file-hooks 'turn-on-font-lock)  

De esta forma, cada vez que se abre un fichero, se activa el resaltado de la sintaxtis.

Es muy recomendable tener el paquete de python para emacs instalado. En debian:

apt-get install python-mode

Si estas editando plantillas ‘zpt’, ‘dtml’ o ficheros de configuración ‘zcml’ tal vez quieras que emacs los interprete como html para que resalte adecuadamente la sintaxis. Denuevo deberás modificar tu fichero ‘.emacs’:

(add-to-list 'auto-mode-alist '("\.zpt$" . html-mode))(add-to-list 'auto-mode-alist '("\.pt$" . html-mode))(add-to-list 'auto-mode-alist '("\.zcml$" . html-mode))(add-to-list 'auto-mode-alist '("\.dtml$" . html-mode))

Si trabajas con Zope2 y lo que quieres es editar una plantilla que están en el ZODB, puedes hacerlo a través del protocolo FTP. Desde emacs puedes abrir un fichero mediante FTP, con la siguiente secuencia de comandos:

C-x C-f ftp://username@servername#portnumber:/path/to/template.pt

Recuerda habilitar el servidor ftp en el archivo de configuración de tu zope.

Referencias:

Acerca de

Ingeniería web y existencialismo doméstico

Publicado en zope3
7 Comentarios en “Programando Python y Zope desde la consola con emacs
  1. erral dice:

    Para ZPT y ZCML (y también si quieres escribir HTML directo), yo utilizo nxml-mode

  2. nando dice:

    Aupa Erral!¡interesante el nXML-mode! más completo que el modo html. Permite validar tu documento y tal…Me lo apunto!

  3. nando dice:

    Daniel Lemire nos cuenta como introducir de forma sencilla el autocompletado en la consola de Python:

    >>> import readline, rlcompleter
    >>>
    >>> readline.parse_and_bind("tab: complete")
    >>>
    

    Recupero una vieja receta que Dave Kulman envió a la lista de Python. Con el siguiente fichero de inicialización vamos a activar el autocompletado cada vez que arranquemos el interprete.

    Creamos un fichero en nuestro directorio ‘home’ llamado initialize.py con el siguiente código:

    #========================================================
    # initialize.py
    # Dave's initialization file for Python interactive sessions.
    import sys, os, readline
    histfile = os.path.join(os.environ["HOME"], ".pyhist")
    try:
        readline.read_history_file(histfile)
    except IOError:
        pass
    import atexit
    atexit.register(readline.write_history_file, histfile)
    del os, histfile
    try:
        import readline
    except ImportError:
        print "Module readline not available."
    else:    
    import rlcompleter    
    readline.parse_and_bind("tab: complete")
    #========================================================
    

    Para que el intérprete lea este fichero debemos crear la variable de entorno PYTHONSTARTUP. Lo podemos hacer de forma automática insertando la siguiente linea el ‘.bashrc’ de nuestro directorio ‘home’:

    export PYTHONSTARTUP=$HOME/initialize.py
    

  4. nando dice:

    Me envía erral un trozo de código para tracear un producto de zope:

       import pdb   pdb.set_trace()

    ¿Cómo debugueo mi zope?

    – Pegas estas dos lineas en cualquier función del producto

    – Arrancas tu instancia Zope (con ‘./runzope’ o ‘./zopectl fg’)

    – Cuando se ejecutan estas dos lineas de python, se nos presentará una consola con el siguiente prompt:

      (Pdb) 

    – En ella tendremos todos los objetos que intervienen en la ejecuación a nuestra dispocición. (locals(), globals(), etc.)

    Python Interactive Debugging

  5. leticia dice:

    Hola, la verdad estoy empezando con lo de python y emacs, y me gustaria configurarlo. A lo mejor mi pregunta es muy basica pero donde encuentro .emac y como lo abro??

    Gracias

  6. Si estás en linux, ubuntu, etc. el “.emacs” estará (o deberás crearlo) en el directorio home de tu usuario:

    Por ejemplo, para el usuario “root” estará en “/root” o para el usuario “leticia” en “/home/leticia”. Dependiendo de la instalación de emacs, es posible que debas prestar atención al directorio “.xemacs” donde encontrarás otros ficheros de configuración importantes.

    Ya me contarás…

  7. Estaba buscando esa informacion hace espacio, te lo
    agradezco, estoy de acuerdo con tu punto de vista y heno
    igual. Despues de buscar mucho por Internet encontre lo que buscaba.
    Genial!!! muchas gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*