lunes, 13 de agosto de 2012

Prototipando Python, MySQL (por separado) e o que queiras no emacs

Fai uns días atopei que o emacs era unha ferramenta moito máis interesante do que tiña pensado para facer pequenos prototipos ou fozar no SQL, pero comecemos polo principio.

Que é Emacs?


Emacs é un editor de texto extremadamente personalizable cun dialecto de LISP. Pode que de paquete non teña tantas cousas coma un IDE coma NetBeans ou Eclipse, pero dada esta extensibilidade podese facer prácticamente de todo; ademais é moi lixeiro, podendose usar ata en computadoras que non poden cun IDE completo.

Algo curioso é pouco merecida fama de complicado que ten, así que antes de ir co tema de este post imos dar uns primeiros pasos. O mecanismo de instalación é o habitual, e de seguro aparecerá no xestor de paquetes, algo a ter en conta e que as veces están dispoñibles dous paquetes, emacs-x e emacs-nox, o primeiro ven cunha interface gráfica e é o recomendado para comezar dado que se pode usar a barra de ferramentas, o segundo carece de esta interface é ten que ser usado dende o terminal, polo que non existe a posibilidade de usa-lo rato, e hay que depender do teclado.

Ben, unha vez instalado cando iniciamo-lo emacs, atopamonos con isto:

A partires de ahí podemos facer o tutorial, que está francamente ben (facendo click na ligazón ou premendo enter tendoo seleccionado) tendo en conta que así o faremos en inglés, para facelo noutro idioma iremos a "Help" > "Emacs tutorial (choose language)" e darásenos a escoller un idioma, escrebemos a primeira parte e prememos Tabulador  para autocompletar.

Senon tedes tempo para facer o tutorial, aquí vai un pequeno resumo:

No Emacs, seguendo un pouco a filosofía UNIX, todo é un arquivo (un "buffer"), dende unha sessión no terminal, a pantalla principal, para navegar entre eles temos os seguintes atallos (se pulsamos Ctrl-g no medio de calquera combinación detemola en seco):

AcciónAtallo
Ir ó buffer anterior/seguinteCtrl-x Ctrl-/Ctrl-x Ctrl-
Cerrar o buffer actualCtrl-x Ctrl-k
Listar os buffersCtrl-x Ctrl-b
Dividir a xanela entre dous buffersCtrl-x Ctrl-2
Volver a xuntar a xanelaCtrl-x Ctrl-1

Polo demáis podese usar coma un editor normal, tendo en conta que algúns atallos cambian:
AcciónAtallo habitualAtallo no Emacs
Abrir arquivoCtrl-oCtrl-x Ctrl-f
Gardar arquivoCtrl-sCtrl-x Ctrl-s
Pechar programaCtrl-qCtrl-x Ctrl-c
DesfacerCtrl-uCtrl-x Ctrl-_
CopiarCtrl-cAlt-w
CortarCtrl-xCtrl-w
PegarCtrl-vCtrl-y

Ademais se tes a costume de usar atallos na terminal, a maioría seguen funcionando, por exemplo:
AcciónAtallo
Ir o comezo da liñaCtrl-a
Ir o fin da liñaCtrl-e
Borrar a palabra seguínteCtrl-d

Enfin, e máis, pero nalgún momento haberá que parara, tedes unha lista completa en: [ https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts ]

Prototipando en Python


Imos pois, abrimos un arquivo con Ctrl-x Ctrl-f e escrebemo-lo nome, e xa temos o arquivo preparado.

Nota: se o nome acaba con .py, xa o editor detectao e ponse en modo python, senon podemos forzalo premendo Alt-x e escrebendo python-mode.

Cando se inicia un buffer no modo python, iniciase a vez un intérprete (podemos pasar a el usando a combinación Ctrl-c Ctrl-z), agora imos escreber unha función no arquivo:
def inverso(x):
    return 1./x
Se agora seleccinamos a función e prememos Ctrl-c Ctrl-r mandámola o intérprete (Ctrl-c Ctrl-z), onde a podemos usar directamente.
Aproveitando isto e que python é completamente interpretado, o que implica que se definimos unha función, chamemoslle f, que usara a función inverso e posteriormente redefinimos a función inverso, f  sempre chamaría a última definida, podemos ir facendo probas rápidamente que quedarían automáticamente gardadas no disco.

Nota: Só poderemos mandar dados o intérprete se está desocupado, no caso de que estéa procesando algo podemos detelo con Ctrl-c Ctrl-c.

Prototipando en MySQL


Ben, de novo imos a abrir un arquivo Ctrl-x Ctrl-f, e de novo se non ten un .sql temos que forzar o modo premendo Alt-x e escrebendo sql-mode.

Pero para prototipar en MySQL hay que dar un par de pasos adicionais, o primeiro temos que abrir unha conexión co servidor, para isto prememos Alt-x e escrebemos sql-mysql, pediranos os dados da conexión (usuario, contrasinal, base de dados e servidor) e de seguido conectarase.

Feito isto temos que ligar o buffer do arquivo o da conexión, seleccionamo-lo primeiro e de novo prememos Alt-x e escrebemos sql-set-sqli-buffer, pedirá o nome do buffer no que conectar, e danos un por defecto, *SQL*, se só abrimos un ese servirá.

E xa está, como no caso de Python podemos envíar un comando a base de dados co Ctrl-c Ctrl-r:



Espero que lle tiredes partido ;), saúdos.

ps: Estes non son as únicas linguaxes soportadas, tamén se pode con LISP usando SLIME (que soporta sesións con varias persoas e mandar dados ó intérprete mentres estexa procesando outra cousa), ou OCaml instalando o Tuareg-mode, e posiblemente máis.

No hay comentarios:

Publicar un comentario