Me gustó la respuesta de garyjohn usando RunningX ya que es inteligente sobre las variables DISPLAY malas pero no vacías.
Pero ... me gustaría ir uno mejor. A menudo uso sesiones de pantalla. Podría comenzar una sesión de pantalla en casa, DISPLAY está definido. Luego, ingresé desde otro lugar, DISPLAY todavía está definido y en realidad se muestra ... ¡en casa! Entonces ... entonces exportaré $ DISPLAY = '. Esto está bien, pero dado que esa respuesta ya se verificó y encontró una variable DISPLAY válida en el momento en que .bashrc ejecutó inicialmente EDITOR, todavía se establecería en gvim.
Vine aquí en busca de una solución a un problema similar, quería usar yelp para la exploración de la página de manual de X-GUI pero automáticamente desplegarme al comando man tradicional cuando no estoy usando X. Basado en lo que leí aquí, se me ocurrió esto:
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
Estoy pensando que para el problema del EDITOR se podría hacer algo como lo siguiente:
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
Hubiera publicado eso sin la larga historia, pero no lo he probado. Me considero un novato bash. Probé mi 'comando man', ¡eso funciona! Sin embargo, estoy usando emacs para mi editor, hace su propia comprobación de X. Ni siquiera tengo instalado gvim.
if [[ $DISPLAY ]]
para los aficionados de doble soporte ...