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?
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.
hola!
me alegro de que te sirva…
echaré un vistazo sobre lo que comentas.
saludos.
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.
en ese archivo lo he pueto yo pero el icono es el que no se como se pone.
Gracias.
Tienes que tener instalado nerdfont. El icono es de esa fuente…
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.
quizás tu emulador de consola no renderiza esas fuentes? Yo utilizo Konsole…
yo uso zsh con .oh-my-shell y powerlevel10k.