Curso de Vim: Añadir un icono que muestre el estado de los modos de Vim en la shell

Aprenderemos cómo añadir un icono en el prompt de nuestra shell para mostrar si estamos en modo normal o insertar si hemos activado el modo vim en nuestra shell

Hace un tiempo pudiste leer en el blog cómo activar el modo vim en nuestra shell o línea de comandos:

Con esto lo que hacemos es habilitar un modo similar a Vim en la shell. Con lo que tendremos un modo insertar en el que podremos escribir y un modo normal en el que funcionarán los distintos comandos de Vim a la hora de movernos.

Esto puede ser muy útil si echas de menos los comandos de Vim a la hora de mover el cursor, desplazarse por el historial, borrar palabras, reemplazar, etc.

Pero tiene un inconveniente, no muestra información sobre el modo en el que estamos. Es decir, no tenemos información de si estamos en modo normal (o de comandos) o en modo insertar. ¡Este tutorial viene a solucionar eso!

Este tutorial viene a engrosar la serie de tutoriales sobre Vim para recién llegados (como yo) que voy escribiendo en mi blog y que puedes leer en este enlace:

Para empezar, suponemos que tienes configurado el modo Vim en la shell tal como pudiste leer en un artículo anterior del blog.

Para que se muestre en el prompt si estamos en el modo normal o en el modo insertar, tenemos que añadir estas líneas en el archivo ~/.inputrc

set show-mode-in-prompt on
set vi-ins-mode-string "ins"
set vi-cmd-mode-string "norm"

Guardamos el archivo, y cerramos las consolas que tengamos abierta y volvemos a abrir una consola. Con la primera línea habilitamos que se muestre el estado de vim, y con las dos siguientes configuramos el mensaje que queremos que se muestre cuando estemos en el modo insertar o en el modo normal (o de comandos).

Pero esto queda un poco soso. ¿Por qué no darle un toque de estilo y de color? Tal como puedes ver en la captura que abre el artículo yo tengo puesto una «V» de Vim en verde o rojo cuando está en uno u otro modo ¿Cómo lo hice?

Lo primero, escogí un icono que me gustase de los que ofrece Nerd Font, entre los que busqué el de Vim. Pero puedes utilizar el que más te guste o quizás otra opción en vez de un icono.

Después decidí darle un toque de color en verde cuando estoy en modo insertar y en rojo en modo normal y finalmente me quedó así:

set vi-ins-mode-string "\1\e[1;32m\2 \1\e[0m\2"
set vi-cmd-mode-string "\1\e[1;31m\2 \1\e[0m\2"

Bueno, en las líneas anteriores, no se muestra el icono de Vim pero debéis buscar vuestro favorito en Nerd Font o Awesome Font, o similares…

Espero que os haya resultado interesante. ¿Utilizáis el modo vim en la shell?

8 comentarios sobre “Curso de Vim: Añadir un icono que muestre el estado de los modos de Vim en la shell

  1. hola, me ha servido de gran ayuda tus articulos sobre vim.
    En que archivo escribes las dos ultimas lineas y como pones el icono, por que yo no lo encuentro. He probado en .inputrc, .zshrc y nada.
    Tienes pensado escribir sobre el plugin que pone powerline en vim?
    Gracias por adelantado y buen blog.

    1. las dos últimas líneas también son en .inputrc. En mi caso añado el símbolo de Vim desde la fuente nerdfont, pero puedes poner el icono o texto que prefieras…

      Para powerline en vim lo instalé desde los repositorios, y con muy pocas modificaciones…

      Saludos.

  2. si, las tengo instaladas, y he copiado y pegado en .inputrc, tus lineas al lado del 2 se ve la v de vi, pero luego en consola no sale nada.
    Gracias por tu ayuda.

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.