Ago 06 2008

CUA (Common User Access)

Tag: basicoverdrive @ 2:41 pm

Ante todo gracias a los usuarios pacientes que esperan artículos, que no solo vienen de España sinó que también vienen de lugares como Reino Unido, Irlanda, Holanda, Perú, Chile, Colombia, Polonia, Venezuela, Argentina, México, Bolivia, Suecia, Brasil, Alemania, Guatemala, República Dominicana y Costa Rica. A todos gracias por seguir este blog!

Ahora, sin más dilaciones, pasemos a explicar brevemente que es y cómo usar CUA.

CUA significa Common User Access o en castellano acceso común de usuario. Cuando se creó Windows parece que tuvieron en cuenta que 3 combinaciones de teclas tocarían más los huevos a los usuarios de emacs, y evidentemente fueron C-x, C-c y C-v. Por eso existe un modo en el que dichas acciones tan habituales como copiar, cortar y pegar se asignan a keystrokes de usuarios de Windows.

Para comenzar a utilizar CUA tan sólo debemos lanzar M-x cua-mode, sin embargo, si lo que queremos es utilizarlo siempre cuando se cargue nuestro editor tan sólo debemos añadir estas líneas en nuestro .emacs:

(require ‘cua)
(CUA-mode t)

A partir de este momento podremos usar:

  • C-x para cortar
  • C-c para copiar
  • C-v para pegar
  • C-z para deshacer la última acción

Si por ejemplo queremos partir el frame en dos ventanas, tan sólo debemos hacer C-x 2, es decir, a menos que estemos seleccionando una región las acciones o comandos habituales realizados con C-x no deben entrar en conflicto con CUA.

Por último decir, que NO es recomendable usar este modo, tan sólo para usuarios nuevos y que NO quieren hacer casi ningún esfuerzo para mejorar su productividad en Emacs. Por lo que recomiendo encarecidamente que si se usa, sea de manera temporal al principio por desconocimiento y que rápidamente se pase a los keystrokes habituales de Emacs.


Jul 11 2008

Repeticiones

Tag: basicoverdrive @ 12:49 pm

Comentaba en el artículo anterior que las repeticiones no son realmente de uso frecuente, sin embargo éstas pueden sernos muy útiles a la hora de escribir macros.

Gracias a David por aclararme en su dia todo el tema de repeticiones, sin él éste artículo no hubiese existido.

En el artículo anterior comentabamos que podiamos alterar el comportamiento de una función pasándole el valor -1 a una función. Veamos que otros parámetros y como se le pueden pasar a una función, así como su comportamiento final.

Recordemos que el argumento recibido no siempre tienen porque ser repeticiones (aunque sí generalmente), sinó que lo usará o interpretará de la forma que mas ‘le convenga’, y por lo tanto para cada uno de los comandos puede interpretarse (y de hecho se interpreta así) de forma posiblemente distinta.

A continuación en rojo irá marcada la parte repetitiva del comando (donde ‘enviamos’ los parámetros a la función) seguido de la parte en negrita que indicará el comando original, ya que será mucho más fácil explicar esto con ejemplos:

  • C-u C-f : Le pasará el argumento 4 al comando que le siga. En éste caso repetira 4 veces la acción (avanzará 4 caracteres hacia delante).
  • C-u C-u C-f : Se sumará 4 veces el valor del argumento hasta el momento. 0 veces = 1, 1 vez = 4, 2 veces = 8, etc.
  • C-u 3 C-f : Se le pasará el argumento 3 a la función, y por lo tanto repetirá 3 veces en este caso dicha acción (pudiendo también enviar números negativos).
  • C– C-f o M– C-f : Pasará el valor -1 como parámetro a la función.
  • C-5 C-f o M-5 C-f : Pasará un argumento simple de un único dígito.

Recordad que no todos los comandos permiten recibir parámetros negativos a la función, ni siquiera no todos los comandos permiten recibir parametros, por lo tanto, esto no es universal para todos ellos.


Jul 10 2008

Desplazamiento avanzado y Alteración de texto

Tag: basicoverdrive @ 1:41 pm

Continuando con el formato del artículo anterior, llega la tercera y última parte, en cuanto se refiere a la sección básica del blog, sobre temas relacionados con desplazamiento y la alteración de texto.

En primer lugar citaré ciertos desplazamientos con los que se puede subsistir sin él, pero el cual es muy útil cuando se altera cierto tipo de texto.

Desplazamientos avanzados:

  • M-f : ‘forward-word‘; Desplaza el cursor a la palabra siguiente.
  • M-b : ‘backward-word‘; Desplaza el cursor a la palabra anterior.
  • C-a : ‘beginning-of-line‘; Desplaza el cursor al principio de la línea.
  • C-e : ‘end-of-line‘; Desplaza el cursor al final de la línea.
  • M-a : ‘forward-sentence‘; Desplaza el cursor a la frase siguiente.
  • M-e : ‘backward-sentence‘; Desplaza el cursor a la frase anterior.
  • M-} : ‘forward-paragraph‘; Desplaza el cursor al siguiente párrafo.
  • M-{ : ‘backward-paragraph‘; Desplaza el cursor al párrafo anterior.
  • C-x ] : ‘forward-page‘; Desplaza el cursor a la página siguiente.
  • C-x [ : ‘backward-page‘; Desplaza el cursor a la página anterior.
  • C-v : ‘scroll-up‘; Mueve el scroll hacia arriba.
  • M-v : ‘scroll-down‘; Mueve el scroll hacia abajo.

Pasemos ahora con la alteración de texto:

Tranposición:

  • C-t : ‘transpose-chars‘; intercambia dos caracteres.
  • M-t : ‘transpose-words‘; intercambia dos palabras.
  • C-x C-t : ‘transpose-lines‘; intercambia dos líneas.
  • Sin keystroke asociada : ‘transpose-sentence‘; intercambia dos frases.
  • Sin keystroke asociada : ‘tranpose-paragraphs‘; intercambia dos párrafos.

Antes de continuar, debemos aclarar, que el comportamiento de algunos comandos depende de una tabla de sintaxis que ofrecen los modos, es decir, que no será lo mismo avanzar un párrafo en modo fundamental cuando editemos texto de cualquier tipo, que cuando avancemos por ejemplo un párrafo en c-mode. Por lo tanto el mismo comando realizará la misma acción, de formas distintas según el modo en el que se encuentre.

Capitalización:

  • M-c : ‘capitalize-word‘; Convierte a mayúscula la letra actual.
  • M-u : ‘upcase-word‘; Convierte a mayúsculas las letras desde el cursor hasta el final de la palabra actual.
  • M-l : ‘downcase-word‘; Convierte a minúsculas las letras desde el cursor hasta el final de la palabra actual.

También podemos usar argumentos negativos, esto es, que podemos aplicar la acción sobre texto previo, en lugar del actual. Para ello solo debemos pulsar una vez M– (Meta guión) antes de la acción a realizar (debemos tener en cuenta que no todas las acciones aceptan argumentos negativos), aquí tenéis un ejemplo de en que casos podríamos usarlo:

  • M– M-c : Convierte a mayúscula la primera letra de la palabra actual (ignorando desde el cursor hasta el final de la palabra).
  • M– M-u : Convierte a mayúsculas la primera letra de la palabra actual
  • M– M-l : Convierte a minúsculas las letras desde el cursor hasta el principio de la palabra.

En el siguiente artículo explicaré las repeticiones (gracias a David por aclararme todo el tema de repeticiones), las cuales no son de uso muy habitual, pero que pueden ser fundamentales a la hora de escribir macros o programas en emacs lisp.


« Página anteriorPágina siguiente »