Mostrar si estamos dentro de vim en zsh
Vim tiene un comando llamado :shell
que te permite abrir
un terminal, ejecutar algunos comandos y regresar nuevamente
al editor escribiendo exit
.
En cierta forma, es similar a pausar VIM, ponerlo en segundo plano, ejecutar algunos comandos y luego volver al editor.
Este comando me resulta muy práctico, pero tiene un problema: a veces permanezco en esa sesión de terminal por unos cuantos minutos y luego no recuerdo si estaba en VIM o no.
¿Por qué esto es un problema para mí?, bueno… digamos que a veces escribo ‘exit’ en el terminal esperando regresar a VIM y no, termino saliendo por completo de mi sesión.
¿Cómo identificar si estamos dentro del shell de vim?
Busqué cómo resolver esto y noté que VIM coloca una variable
de entorno llamada VIM cuando abrimos el comando shell
:
→ env | grep VIM=
VIM=/opt/homebrew/share/vim
Entonces, para poder identificar si estamos en una sesión
del shell
de VIM podemos simplemente consultar si esa
variable existe o no.
Lo siguiente, es la configuración que estoy usando para
cambiar el prompt
de zsh
:
export EN_VIM=""
[[ -v VIM ]] && export EN_VIM="(en vim shell)"
export PS1=$'... ➖ ${EN_VIM}\n→%f '
y así es como se ve en funcionamiento: