Ago 21 2008

Bookmarks

Tag: basicoverdrive @ 12:46 am

[Artículo bajo revisión – necesita ser mejor redactado]

En emacs podemos crear bookmarks y administrarlos mediante los siguientes comandos:

  • C-x r m : ‘bookmark-set‘; crea un bookmark.
  • C-x r b : ‘bookmark-jump‘; salta a un bookmark.
  • C-x r l : ‘bookmark-menu-list‘; lista todos los bookmarks en forma de lista.
  • (sin keystroke asociada) : ‘bookmark-rename‘; renombra un bookmark.
  • (sin keystroke asociada) : ‘bookmark-delete‘; elimina un bookmark.
  • (sin keystroke asociada) : ‘bookmark-save‘; guarda todos los bookmarks en un fichero alternativo.
  • (sin keystroke asociada) : ‘bookmark-insert‘; inserta el texto asociado a un bookmark.
  • (sin keystroke asociada) : ‘bookmark-write‘; guarda todos los bookmarks es un fichero especificado.
  • (sin keystroke asociada) : ‘bookmark-load‘; carga los bookmarks de un fichero especificado.
  • (sin keystroke asociada) : ‘bookmark-insert-location‘; inserta la ruta a asignar en la posición del cursor actual.

Al mostrar toda la lista de bookmarks mediante C-x r l, accederemos al buffer llamado *Bookmark List*, donde podemos realizar las siguientes acciones:

  • f o j : salta a un bookmark.
  • o : abre el bookmark en otra ventana sin mantener el cursor en la ventana actual.
  • C-o : abre el bookmark en otra ventana manteniendo el cursor en la ventana actual.
  • d o k : marca el bookmark para eliminación.
  • r : renombra el bookmark.
  • s : guarda todos los bookmarks listados.
  • m : marca los bookmarks para ser mostrados en múltiples ventanas.
  • v : muestra los bookmarks marcados por m. Si no hay ninguno marcado, muestra el actual.
  • t : marca/desmarca como mostrado.
  • w : muestra la dirección asociada al bookmark.
  • x : elimina los bookmarks marcado para eliminación.
  • u : desmarca un bookmark.
  • Del : desmarca un bookmark, si no está marcado, desmarca el anterior.
  • q : sale del listado de bookmarks.
  • n : se desplaza al siguiente bookmark.
  • p : se desplaza al bookmark anterior.
  • l : carga un fichero de bookmarks.
  • A : muestra todas las anotaciones.
  • a : muestra la anotación de bookmark actual.
  • e : edita o crea la anotación para el bookmark actual.

Ago 13 2008

buffers y ventanas avanzado

Tag: basicoverdrive @ 4:51 pm

En este artículo explicaremos de forma más profunda el uso de buffers y ventanas.

Podemos emplear otros comandos además de los explicados anteriormente para conseguir un mayor control sobre los buffers:

  • C-x -> : siguiente buffer.
  • C-x <- : buffer anterior.
  • M-x rename-buffer : renombra el buffer.
  • M-x kill-some-buffers : elimina los buffers marcados para eliminación.

En uno de los artículos anteriores explicabamos que es posible listar todos los buffers mediante C-x C-b, podemos ver en dicho listado un campo llamado CRM que puede tomar los siguientes valores:

  • . : mostrado.
  • * : modificado.
  • % : sólo lectura.
  • D : marcado para eliminación.
  • > : marcado para mostrar.
  • S : marcado para guardar.

En dicho buffer podemos realizar acciones tales como las siguientes:

  • n o flecha abajo : siguiente buffer de la lista.
  • p o flecha arriba : buffer anterior de la lista.
  • d o k : marcar buffer para eliminación.
  • ~ : marcar buffer como modificado.
  • % : marcar o desmarcar buffer como sólo lectura.
  • m : marcar buffer para ser mostrado.
  • u : desmarcar buffer.
  • Del : desmarcar buffer anterior.
  • f : reemplazar la lista de buffers por esta nueva lista de buffers.
  • o : reemplazar otra ventana con el buffer actual.
  • 1 : mostrar buffer en pantalla completa.
  • 2 : mostrar los siguientes 2 buffers en ventana horizontal.
  • v : mostrar los buffers marcados por m.
  • x : ejecutar comandos de marcado.
  • q : salir del listado de buffers.

También podemos tener un mejor control sobre las ventanas, las cuales estan asociadas a un buffer determinado:

  • C-x < : ‘scroll-left‘; mueve el scroll hacia la izquierda.
  • C-x > : ‘scroll-right‘; mueve el scroll hacia la derecha.
  • (sin keystroke asociada) : ‘shrink-window‘; reduce la ventana.
  • C-x ^ : ‘enlarge-window‘; amplia la ventana.
  • C-x } : ‘wider-frame‘; amplia el ancho del frame.
  • C-x { : ‘shrink-window-horizontally‘; reduce el ancho de la ventana.
  • C-u C-x ^ : amplia el ancho de la ventana actual.
  • C-x – : ‘shrink-window-if-larger-than-buffer‘; amplia la ventana si el buffer es más largo.
  • C-x + : ‘balance-windows‘; balancea las ventanas para que tengan el mismo tamaño.
  • C-M-v : ‘scroll-other-window‘; baja el scroll de la ventana opuesta.
  • C-x 4 f : ‘find-file-other-window‘; abre un fichero en la ventana opuesta.
  • C-x 4 b : ‘switch-to-buffer-other-window‘; asocia y/o muestra un buffer en la ventana opuesta.
  • (sin keystroke asociada) : ‘compare-windows‘; Compara ventanas mediante ediff.

La ventana opuesta sera la siguiente ventana en orden de izquierda a derecha y de arriba abajo.

Con esto ya podemos movernos de una forma avanzada las ventanas, así como administrar los buffers que tengamos en uso y ver sus estados.


Ago 11 2008

Ispell, flyspell y abbrev

Tag: basicoverdrive @ 3:59 pm

Emacs incluye ispell para la corrección automática de texto. Cada diccionario es guardado en el fichero .ispell_<lenguaje> donde lenguaje es cualquier lenguaje, que por defecto es english.

Para instalar los diccionarios e ispell (si es que no se tiene ya) desde gentoo podemos instalarlo haciendo:

# emerge aspell aspell-en aspell-es

O bien si utilizamos debian podemos hacer:

# apt-get install aspell aspell-en aspell-es

Con esto instalaremos los diccionarios en inglés y castellano, aunque hay muchos otros, disponibles en la web oficial de aspell.

Para lanzar ispell tan sólo debemos invocarlo mediante M-x ispell-buffer. Esto nos resaltará la palabra y nos mostrará las posibles alternativas, las cuales son:

  • un número o letra en las opciones mostradas : cambiar la palabra mediante el índice asociado a cada palabra.
  • ? : para más opciones.
  • SPC (espacio) : para no modificar dicha palabra.
  • u : convertir la palabra en minúsculas.
  • i : saltar a la siguiente palabra no conocida.
  • r : reemplazar la palabra.
  • R : reemplazar las palabras usando query-replace.
  • a : aceptar la palabra para el resto de la sesión para todos los buffers (y por lo tanto no volver a resaltarla como inválida).
  • A : aceptar la palabra para el resto de la sesión para este buffer (y por lo tanto no volver a resaltarla como inválida).
  • C-r : edición recursiva.
  • C-M-c : salir de la edición recursiva.
  • ! : reemplazar todas las ocurrencias después de haber presionado R (evitar el query del replace).

Para analizar una sola palabra y no todo el buffer tan sólo debemos pulsar M-$ el cual tiene el comando asociado ispell-word. Si en cambio queremos completar una palabra podemos usar el comando M-tab que tiene el comando asociado ispell-complete-word.

Además de ispell, tenemos flyspell, que tiene el mismo efecto que ispell, pero este se realiza en tiempo real, a medida que vamos escribiendo cualquier palabra ‘on the fly’. Para lanzar flyspell tan sólo debemos invocarlo mediante M-x flyspell-mode. Existe otro modo el cual se invoca mediante M-x flyspell-prog-mode diseñado para programadores. En este modo podremos hacer que flyspell analice texto en nuestro código fuente pero sólo para el código comentado o cadenas.
Otra alternativa es usar M-x flyspell-buffer para lanzar flyspell sobre el buffer actual, el cual nos resaltará las palabras que no encuentre o reconozca en nuestro diccionario.

Resumiendo los comandos que podemos realizar con ispell y flyspell:

  • M-$ : ‘ispell-word‘; analiza la palabra sobre el cursor.
  • (sin keystroke asociada) : ‘ispell-region‘; analiza una región.
  • (sin keystroke asociada) : ‘ispell-buffer‘; analiza un buffer.
  • (sin keystroke asociada) : ‘ispell-message‘; analiza el cuerpo de un mail.
  • (sin keystroke asociada) : ‘ispell-comments-and-strings‘; analiza los comentarios y cadenas en el código de un programa.
  • (sin keystroke asociada) : ‘ispell-continue‘; continua ispell desde la última vez que se finalizó con C-g.
  • (sin keystroke asociada) : ‘ispell-kill-ispell‘; finaliza el proceso de análisis.
  • M-TAB : ‘ispell-complete-word‘; imprime las posibles opciones para la palabra actual.
  • (sin keystroke asociada) : ‘flyspell-mode‘; analiza el texto en tiempo real (on the fly).
  • (sin keystroke asociada) : ‘flyspell-buffer‘; analiza el texto en tiempo real para dicho buffer.

Si queremos activar flyspell por defecto podemos añadir en nuestro .emacs la línea:

(setq-default flyspell-mode t)

Por ultimo podemos usar abbrev para completar palabras técnicas, para ello podemos usar M-/ para dabbrev-expand y emacs completará la palabra a la mas cercana. Para entrar en el modo abreviado tan sólo debemos lanzar M-x abbrev-mode. Emacs guarda las abreviaturas en el fichero .abbrev_defs.

  • Añadir abreviaturas: debemos entrar en el modo citado anteriormente y pulsar C-x a i g para añadir abreviaciones globales add-inverse-global o C-x a i l para añadir abreviaciones locales add-inverse-local.
  • Para cargar el fichero de abreviaturas por defecto: y estar en dicho modo podemos añadir éstas líneas en nuestro .emacs:

(setq-default abbrev-mode t)
(read-abbrev-file «~/.abbrev_defs»)
(setq save-abbrevs t)

  • Eliminar abreviaturas: Si lo que queremos es eliminar una abreviatura debemos pulsar M-x edit-abbrevs. Debemos eliminar líneas completas con C-k o similar, no debemos editar o añadir líneas ya que Emacs mantiene su propio formato. Para guardar los cambios despues de eliminar líneas debemos usar M-x write-abbrev-file.
  • Listar abreviaturas: Si lo que queremos en cambio es listar pero no editar abreviaturas podemos lanzar el comando M-x list-abbrevs.
  • Deshabilitar abreviaturas: Debemos pulsar M-x kill-all-abbrevs o bien M-x read-abbrev-file y eliminar la línea deseada.
  • Cancelar la última abreviatura: Debemos pulsar M-x unexpand-abbrev.

« Página anteriorPágina siguiente »