El comando “:sh” de gvim saca cosas raras

El comando ":sh" de gvim hace que se abra una pequeña salida al shell en la ventana del editor. Pero puede que os salgan códigos muy raros tal que así:

Mail^[[0m/
-rw-r-----    1 root     root          10k dic 15  2002 ^[[0mmime
install.results^[[0m
-rw-r-----    1 root     root          646 dic 13  2002 ^[[0mplug
in131_02.trace^[[0m
-rw-r-----    1 root     root           52 dic 15  2002 ^[[0mplug
ininstall.results^[[0m
drwx------    4 root     root          104 ago  4 02:18 ^[[01;34m
projects^[[0m/
-rw-r--r--    1 lacofi   personal     651k may 31  2002 ^[[0mSpLo
cale_x86.pkg^[[0m
-rw-r--r--    1 lacofi   personal     599k may 31  2002 ^[[0mSpLo
cale_x86.pkg.zip^[[0m
^[[m^[[1;31m[^[[0;31m21:34:55/0^[[1;31m][root@claudia:~]$^[[

Evidentemente, bash está intentando sacar códigos de colores, pero la falsa terminal que usa gvim no los soporta.

Bien, pues la solución es muy sencilla. Resulta que la terminal que usa gvim se llama "dumb", así que se trata de modificar nuestro .bashrc de acuerdo con esto.

En mi caso, tengo un fichero con varias funciones que se cargan al inicio del shell, entre ellas varios inductores distintos. Vete al truco organizar un poco el fichero .bashrc si quieres más detalles. Bueno, pues una de esas funciones carga un inductor muy simple, sin código alguno, tal que así:

function inductor_plano {
	PS1="[\u@\h \W]\$ "
	PS2='> '
	PS4='+ '
	}

Así que en nuestro fichero .bashrc solo tenemos que poner:

if [ "$TERM" = "dumb" ]; then
	inductor_plano
else
	inductor_normal
fi

Y ya de paso, también podemos cambiar el fichero donde guardamos los alias, de tal forma que ponga:

if [ "$TERM" = "dumb" ]; then 
	alias ls='ls -Fhl --color=none'
else
	alias ls='ls -Fhl --color'
fi

Este truco solo funcionará cuando nos desloguemos y nos volvamos a logar.

Be Sociable, Share!

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.