Ene 172015
 

En ocasiones, durante la edición de un fichero de texto con el editor vim, podemos encontrarnos con la necesidad de introducir, buscar y/o reemplazar caracteres que no existen en nuestro teclado, tales como æ, å, ě, … o bien con códigos hexadecimales que no corresponden a símbolos gráficos, tales como los caracteres de control ^A, ^B, … o códigos hexadecimales entre 0x7F y 0xFF.

En este artículo se explican algunas de las posibilidades que ofrece vim para trabajar con estos caracteres

Obtener el código hexadecimal de un carácter:

Si queremos averiguar el código hexadecimal de un determinado carácter presente en el fichero que estamos editando, basta con colocar el cursor sobre el mismo, y pulsar “ga”. En la parte inferior de la pantalla aparece una línea con la codificación hexadecimal y octal del mismo. Por ejemplo:

en este ejemplo, vemos que el carácter Ѳ se codifica com Hex 0472 (en codificación utf8)

Insertar carácter por su código hexadecimal o unicode:

Para insertar un carácter por su código hexadecimal pulsamos Control-V, después el carácter x, y a continuación el código del carácter que queremos introducir. Por ejemplo:

Si queremos insertar un carácter por su código unicode, pulsamos Contro-V seguido del carácter u, y a continuación el código unicode. Por ejemplo, para introducir el carácter Ѳ:

Buscar un carácter por su código hexadecimal o unicode:

En una expresión de búsqueda o sustitución podemos buscar un carácter especificando su código hexadecimal de la forma “\%xhh”, en donde hh es el código buscado. Por ejemplo, para buscar el carácter con código hexadecimal 9d:

De la misma forma, podemos buscar un código unicode de la forma “\%uhhhh”. Por ejemplo, para buscar el carácter Ѳ:

Digraphs

Los símbolos más comunes se pueden insertar pulsando Control-K seguido de una combinación de dos letras (digraph) que corresponde al símbolo deseado. Por ejemplo, para introducir el símbolo de la libra esterlina £, pulsamos ^KPd. Para introducir el carácter ä, pulsamos ^Ka:.

También se puede habilitar el modo “digraph” con el comando “:set digraph”. Con este modo habilitado, el caracteres acentuados se pueden introducir también utilizando la tecla backspace. Por ejemplo, para introducir el carácter ä, pulsamos a<BS>: ( “a” + backspace + “:” ). Para introducir el carácter ê, pulsamos “e” + backspace + “>”

Por último, se pueden listar todos los digraphs que reconoce el editor, con el comando “:digraphs”:

En la lista que aparece:

  • los dos primeros caracteres son los que hay que introducir a continuación de Ctrl-K.
  • A continuación se representa el carácter resultante
  • Por último se presenta el código decimal Unicode correspondiente

Como vemos, hay varios cientos de caracteres, entre los cuales se encuentran los caracteres de control con códigos hexadecimales 0x00 a 0x1F, los caracteres no gráficos con códigos hexadecimales entre 0x7F y 0xFF, y los caracteres más comunes correspondientes a símbolos de moneda (libra, yen, …), la mayoría de los caracteres no ASCII utilizados en idiomas occidentales, y otros símbolos de uso común.

Recargar un fichero abierto, leyéndolo como utf8

Normalmente, vim detecta la codificación del fichero y lo abre adecuadamente. Pero puede ocurrir que un fichero utf8 contenga algún carácter de control. vim interpreta la codificación de este fichero como “Non-ISO extended-ASCII text” y los caracteres utf8 no se representan correctamente. En este caso, podemos forzar a vim a recargar el fichero, interpretándolo como utf8, con el comando

Referencias

Artículos relacionados

 Publicado por en 12:32 pm

 Deja un comentario

(requerido)

(requerido)