Oct 26 2008

edit-picture, picture-mode y artist-mode

Tag: basicadmin @ 4:30 pm

Desde emacs es posible dibujar ascii arts como en cualquier editor, quizás esta no sea la parte más productiva de emacs, pero en cualquier caso lo veo interesante nombrarlo.

  • edit-picture y picture-mode

El modo picture permite realizar dibujos o desplazarnos de una forma adaptada para estos dibujos, para ello debemos lanzar el modo mediante M-x edit-picture mientras que C-c C-c saldrá de dicho modo. Las teclas de desplazamiento son las siguientes:

Además existe otro modo parecido invocado mediante M-x picture-mode, el cual permite realizar tareas repetitivas así como insertar objetos pre-diseñados. Veamos ejemplos para dicho modo:

M-20 – : repite 20 veces el guión.

C-c . M-5 | : el primer comando (C-c .) cambiaría la dirección hacia abajo, mientras que el segundo (M-5 |) repetiría 5 veces el símbolo pipe en dicha dirección.

Además se pueden realizar estas acciones:

<CR> : se desplaza a la siguiente línea sin crear un salto.

C-c : ‘picture-open-line‘; inserta una nueva línea.

C-c C-w número: ‘picture-clear-rectangle-to-register‘; limpia el rectángulo y lo salva en el registro número.

C-u C-c C-w número: elimina el rectángulo y lo salva en el registro número.

C-c C-x número : ‘picture-same-rectangle-from-register‘; inserta un rectángulo del registro número.

C-c C-r : ‘picture-draw-rectangle‘; dibuja un rectángulo alrededor de la región actual.

C-c C-y : ‘picture-yank-rectangle‘; pega un rectángulo.

C-c C-k : ‘picture-clear-rectangle‘; borra un rectángulo.

C-c TAB : ‘picture-set-tab-stops‘; asigna el TAB stop.

M-TAB : ‘picture-tab-search‘; se desplaza a la siguiente imagen TAB.

C-k : ‘picture-decr-line‘; elimina el texto de la línea actual.

C-c C-d : ‘delete-char‘; elimina el carácter y mueve el l texto a la izquierda.

C-d : ‘picture-clear-column‘; crea un blanco en la siguiente línea.

C-p : ‘picture-move-up‘; mueve el cursor arriba.

C-n : ‘picture-move-down‘; mueve el cursor abajo.

C-b : ‘picture-backward-column‘; mueve el cursor a la izquierda.

C-f : ‘picture-forward-column‘; mueve el cursor hacia la derecha.

C-c C-b : ‘picture-motion-reverse‘; mueve el cursor en la dirección inversa.

  • Artist mode

    Con M-x artist-mode entraremos en dicho modo, el cual, permite insertar objetos predefinidos, así como diversos pinceles.

    F10 -> browsing -> edit -> settings -> podemos seleccionar entre variedades de pinceles y demás.

    C-c C-c : ‘artist-mode-off‘; sale del modo artist-mode.

    C-f : ‘artist-forward-char‘; mueve el cursor adelante.

    C-b : ‘artist-backward-char‘; mueve el cursor atrás.

    C-n : ‘artist-next-line‘; mueve el cursor a la siguiente línea.

    C-p : ‘artist-previous-line‘; mueve el cursor a la línea anterior.

    C-c C-a C-o : ‘artist-select-operation‘; selecciona una operación (pulsar TAB para obtener la lista completa).

    C-c C-a f : ‘artist-select-operation-flood-fill‘; selecciona flood kill.

    C-c C-a C-k : ‘artist-select-operation-cut-rectangle‘; corta un rectángulo.

    C-c C-a M-w : ‘artist-select-operation-copy-rectangle‘; copia un rectángulo.

    C-c C-a C-y : ‘artist-select-operation-paste’; pega un rectángulo.

    C-c C-a v : ‘artist-select-operation-vaporize-line‘; elimina una línea.

    C-c C-a C-d : ‘artist-select-operation-erase-char‘; borra caracteres.

    C-c C-a S : ‘artist-select-operation-spray-can‘; utiliza el spray.

    C-c C-a e : ‘artist-select-operation-ellipse‘; dibuja una elipse.

    C-c C-a p : ‘artist-select-operation-poly-line‘; dibuja poli líneas.

    C-c C-a r : ‘artist-select-operation-rectangle‘; dibuja rectángulos.

    C-c C-a l : ‘artist-select-operation-line‘; dibuja líneas.

    C-c C-a C-r : ‘artist-toggle-rubber-banding‘; muestra la goma de borrar.

    C-c C-a C-l : ‘artist-select-line-char‘; muestra el carácter a usar cuando se dibuja.

    C-c C-a C-f : ‘artist-select-fill-char‘; selecciona el carácter para diferenciar formas.


    Oct 25 2008

    Rectángulos

    Tag: basicadmin @ 11:10 pm

    Trabajar con rectángulos en emacs puede ser muy útil, pero antes de trabajar con rectángulos debemos seleccionar el buffer entero y cercionarnos de que dicho buffer no contiene tabulaciones si queremos evitar problemas.

    C-x h para seleccionar el buffer
    M-x untabify para quitar las tabulaciones.

    Decir que este paso es recomendable pero posiblemente innecesario, debido a que en las ultimas versiones de emacs (probablemente desde la 22) emacs es suficientemente inteligente para trabajar correctamente con rectángulos en un buffer con tabulaciones.

    Imaginemos que tenemos un documento a modo tabla en texto, con sus filas (separadas mediante y sus columnas separadas previamente con TAB pero esta vez convertidos a simple espacios con M-x untabify. Podemos desplazar el cursor hasta el primer carácter de la primera columna, pulsar C-SPC y desplazar de nuevo el caracter hasta el primer carácter de otra columna y otra fila cualquiera. Si ahora ejecutamos uno de los siguientes comandos podremos ver los siguientes efectos aplicados a rectángulos (notar que los prefixjos de rectángulos siempre comenzarán por C-x r.

    C-x r k : ‘kill-rectangle‘; elimina un rectángulo.
    C-x r y : ‘yank-rectangle‘; pega un rectángulo.
    C-x r o : ‘open-rectangle‘; crea un rectángulo como el seleccionado previamente sin contenido, abre una área.
    C-x r c : ‘clear-rectangle‘; rellena con espacios el rectángulo seleccionado, sin borrar su desplazamiento pero sí su contenido.
    C-x r d : ‘delete-rectangle‘; elimina un rectángulo seleccionado, incluyendo su desplazamiento y su contenido.
    C-x r r [a-z0-9]: ‘copy-rectangle-to-register‘; copia el rectángulo a un registro, que puede ser usado posteriormente, los registros validos son cualquier carácter alfanumérico.
    C-x r i : ‘insert-register‘; inserta el contenido de un registro.
    (sin keystroke asociada) : ‘delete-whitespace-rectangle‘; si contiene espacios en blancos adicionales, los elimina.
    C-x r t : ‘string-rectangle‘; rellena con un carácter o cadena un rectángulo. Además el rectángulo puede redimensionarse en caso de que el ancho exceda las dimensiones del rectángulo.
    (sin keystroke asociada) : ‘string-insert-rectangle‘; muestra un prompt para la cadena que posteriormente sera insertada en un rectángulo.

    • Rectángulos con CUA

    Si trabajamos con CUA, C-x se emplea para cortar, por lo que debemos buscar una manera alternativa para poder realizar las acciones anteriormente mencionadas.

    Con Shift-<CR> podremos seleccionar un rectángulo, una vez vista la parte seleccionada podemos presionar M-p, el cual seleccionará perfecto. Ahora podemos hacer uso de C-x y C-v ya sea para cortar o pegar.


    Oct 25 2008

    outline-mode

    Tag: basicadmin @ 9:58 pm

    Antes de nada decir que puede usarse org-mode en lugar de outline-mode, el cual, es un outline-mode mejorado, así que cuando tenga preparado el artículo de org-mode preparado escribiré sobre él.

    Con outline-mode podemos organizar nuestros documentos con divisiones lógicas, esto es, podemos crear cabeceras y subcabeceras para nuestro texto, así como mostrar u ocultar las partes que nos interesen. Para entrar en out-line mode tan sólo debemos pulsar M-x outline-mode. Primero explicaré como promocionar y degradar cabeceras y subcabeceras, como desplazarse sobre ellas de forma efectiva, y por último como mostrar u ocultarlas según nuestros intereses.

    • Promocionar y degradar

    C-c C-^ : ‘outline-promote‘; promocionaremos.
    C-c C-v : ‘outline-demote‘; para degradar (es decir su análogo).

    • Desplazamiento

    C-c C-n : se desplaza a la siguiente cabecera o subcabecera.
    C-c C-p : se desplaza a la cabecera o subcabecera anterior.
    C-c C-f : se desplaza a la siguiente cabecera en el mismo nivel.
    C-c C-b : se desplaza a la cabecera anterior en el mismo nivel.
    C-c C-u : coge el nivel superior siguiente.

    • Mostrando y ocultando
      • Mostrar y ocultar sobre cabeceras y subcabeceras

    C-c C-t : ‘hide-body‘; muestra sólo las cabeceras.
    C-c C-a : ‘show-all‘; muestra todo.
    C-c C-q : ‘hide-sublevels‘; sólo muestra el primer nivel de cabecera, pero no el resto.
    C-c C-o : ‘hide-others‘; oculta para el resto de árboles todo excepto el primer nivel de cada uno.
    C-c C-c : ‘hide-entry‘; oculta el cuerpo asociado a una cabecera particular, pero no al resto.

      • Mostrar y ocultar sobre cuerpos/texto

    C-c C-l : ‘hide-leaves‘; oculta el cuerpo de una cabecera particular y los cuerpos de tadas sus subcabeceras.
    C-c C-s : ‘show-subtree‘; muestra la subcabecera del texto asociado con una cabecera.
    C-c C-e : ‘show-entry‘; muestra el cuerpo asociado con una cabecera particular (no las subcabeceras y cuerpos).
    C-c C-k : ‘show-branches‘; muestra el cuerpo de la cabecera y los cuerpos de todas sus subcabeceras.
    C-c TAB : ‘show-children‘; muestra el siguiente nivel de subcabeceras asociadas con una cabecera particular (no el cuerpo).

    • Marcando cabeceras, subcabeceras y cuerpo

    C-c @ : ‘outline-mark-subtree‘; marca una sección.
    C-x C-x : verifica que una sección ha sido marcada correctamente.

    • Acciones sobre cabeceras, subcabeceras y cuerpos/texto marcados

    Si ejecutamos C-k sobre un nivel cuando esta oculto borraría también el texto o ‘cuerpo’ oculto en ese nivel.
    Si ejecutamos C-y sobre un nivel, pegaria el texto oculto en ese nivel.

    • Outline mode como modo menor

    Outline-mode se ejecuta como un modo mayor, sin embargo es posible ejecutarlo como un modo menor mediante M-x outline-minor-mode. Además podriamos ejecutar un comando del modo mayor mediante C-c @ prefix <comando necesitado en modo mayor> para ‘outline-mark-subtree‘.


    Página siguiente »