domingo, octubre 28, 2012

Vim: Como controlar el aspecto del list mode

En esta entrada hacía una pequeña intruducción al list mode, el cual nos permite
representar ciertos aspecto del texto en vim (como el fin de línea o el tabulador) con los caracteres que deseemos. Sin embargo, no llegué a comentar todas las opciones que podemos configurar.

La variable de configuración que controla el list mode es listchars. Es una lista de cadenas cada una de las cuales representa una opción , y en función de la misma el o los caracteres que se utulizan

  • eol:c Esta opción va seguida de un carácter,c que cuando se activa el list mode, va a servir para indicar cual es el final de una línea.Por defecto, si se activa el list mode es '$', es decir, eol:$
  • tab:ab Esta opción va seguido de dos caracteres,ab. El primero a se utiliza una vez, para marcar donde se utiliza el tabulador, mientras que el segundo sirve para sustituir los espacios que ocuparía el tabulador. Así tab:>-, si se inserta un tabulador, se verá en pantalla como >--- (si el tabspace, variable ts, es 4).
  • trail:c Esta opción va seguida de un carácter, que nos indica los espacios de más que hay al final de una línea. Por ejemplo, si se quiere que los espacios de más estén representados por ·, pues la opción sería trail:·
  • extends:c Esta opción va seguida de un carácter,c. Sirve para que el vim nos indique aquellas líneas que al tener más caracteres que el ancho de de la ventana de edición de vim, "saltan" a la siguiente línea. Por ejemplo, si se quiere que esto esté indicado por el carácter ↩ , la opción de configuración sería extends:↩1
  • precedes:c Esta opción va seguida de un carácter, c. Cuando está activa marca en la primera columna de una línea si esta es continuación de la anterior. Por ejemplo, si se quiere usar ↪ para indicar que la línea es una continuación de la anterior, se activaría con precedes:↪.
  • conceal:c Esta opción va seguida de un carácter, c. Se muestra cuando se oculta una parte del texto, cuando el valor de la variable conceallevel es 1.
  • nbsp:c Esta opción va seguida de un carácter, c. Se utiliza para mostrar un espacio que no se puede utilizar para crear una línea nueva automáticament. Corresponde con el código HTML  .

Un detalle importante, para que las opciones extends y precedes se muestren, hay que desactivar la opción wrap que hace que las líneas largas sólo se muestren parcialmente, no que pasen de manera virtual a la siguiente línea.

Un ejemplo de configuración de listchar sería la siguiente: set listchars=eol:¶,tab:>-,trail·,extends:↩,precedes:↪

Puede verse en las siguientes dos capturas el modo list activado en el fichero fuente de esta entrada, con el list mode activado con las opciones del párrafo anterior:





Tener en cuenta las advertencias sobre los caracteres que se pueden usar en estas opciones (por ejemplo no se puede usar la coma o los dos puntos), y en caso de que
no se esté usando una codificación UTF-8, sólo pueden usarse caracteres que puedan ser imprimibles. Toda la información puede consultarse en vim con help listchars

Nota

  1. Para insertar A9; tenemos que estar usando una codificación que soporte unicode en el fichero que se esté editando, como utf-8 (set encoding=utf8) y los caracteres se
    introducen con CTRL-VuXXXX donde XXXX es el código hexadecimal que corresponde al carácter que se está insertando.

Technorati Tags:

No hay comentarios: