Archivo de la etiqueta: portapapeles

Autotexto en GNU/Linux (I)

Ya os hablé hace tiempo de autohotkey. Es una aplicación para windows que permite automatizar acciones comunes mediante atajos de teclado.

En Linux también existe otra utilidad similar pero de ella os hablaré en otro artículo. Aquí os voy a contar cómo automatizar la introducción de textos de forma automática, con sólo pulsar unas combinaciones de teclas.

La idea es la siguiente:

  1. Existen unos textos, unas líneas, unas frases… que repetimos con cierta asiduidad y queremos no tener que teclarlas de nuevo cada vez.
  2. Creamos un script donde metemos los textos «maestros» que vamos a insertar en nuestros documentos, archivos, etc.
  3. Asignaremos combinaciones de teclas (*) para cada texto distinto de forma que cuando queramos que se inserte dicho texto donde tengamos el cursor en ese momento (puede ser una web, un cliente de correo, un procesador de texto e incluso la shell de comandos, por citar algunos ejemplos).

Para conseguir esto de una forma sencilla usaremos el comando xclip. Este comando permite trabajar con el portapapeles de Linux. Así, si ejecutamos esto:

echo CADENA | xclip -selection clipboard

lo que estamos haciendo es que la cadena CADENA se inserte cuando pulsemos pegar desde el portapapeles («clipboard» en inglés).

Así pues, para insertar textos, lo que haremos es pulsar una combinación de teclas y luego darle a pegar (que también podemos hacer con la combinación Control+V ó Control+Y si estamos en emacs, como bien sabéis).

CAD_00="Ésta es la cadena de ejemplo 0"
CAD_01="Ésta es la cadena de ejemplo 1"
CAD_02="Ésta es la cadena de ejemplo 2"
CAD_03="Ésta es la cadena de ejemplo 3"
CAD_04="Ésta es la cadena de ejemplo 4"
CAD_05="Ésta es la cadena de ejemplo 5"
CAD_06="Ésta es la cadena de ejemplo 6"
CAD_07="Ésta es la cadena de ejemplo 7"
CAD_08="Ésta es la cadena de ejemplo 8"
CAD_09="Ésta es la cadena de ejemplo 9"

CAD_ERROR=".-.Null.-."
case $1 in
 1)
 echo $CAD_01 | xclip -selection clipboard
 ;;
 2)
 echo $CAD_02 | xclip -selection clipboard
 ;;
 3)
 echo $CAD_03 | xclip -selection clipboard
 ;;
 4)
 echo $CAD_04 | xclip -selection clipboard
 ;;
 5)
 echo $CAD_05 | xclip -selection clipboard
 ;;
 6)
 echo $CAD_06 | xclip -selection clipboard
 ;;
 7)
 echo $CAD_07 | xclip -selection clipboard
 ;;
 8)
 echo $CAD_08 | xclip -selection clipboard
 ;;
 9)
 echo $CAD_09 | xclip -selection clipboard
 ;;
 0)
 echo $CAD_00 | xclip -selection clipboard
 ;;
 *) 
 echo $CAD_ERROR | xclip -selection clipboard
 ;;
esac

Ahora simplemente asignamos una combinación de teclas para cada una de las 10 cadenas (podemos poner más cadenas ampliando el case a partir del 10 en adelante) de tal forma que, al pulsarla, se ejecute el script con el argumento X (donde X es un número de 0 a 9 en este caso o de 0 a … donde queráis si lo ampliáis).

Con esto ya tenéis el texto en el portapapeles. Ahora sólo os queda pegar donde queráis con Control+V.

Podéis usar caracteres especiales e incluso el intro (\n) en vuestros textos.

Esta solución es sencilla, práctica y seguro que ayudará a aumentar vuestra productividad. Sin embargo, hay otras posibilidades aún más interesantes que veremos en próximas entregas. ¿Os las vais a perder?

 

(*) Combinaciones de teclas, hotkeys, shorcuts… todas estas expresiones se refieren a lo mismo.