Hay una parte en my ~/.bashrc
, que establece que $ EDITOR sea gvim. Funciona bien cuando estoy en X window. Sin embargo, si ssh a mi estación de trabajo (desde otra estación de trabajo) gvim comienza a quejarse "no se puede abrir la pantalla".
Por lo tanto, deseo poner una if
declaración en bashrc, que si X window está disponible, entonces use gvim, de lo contrario deje que sea vim.
¿Cómo podría lograr eso?
if [[ $DISPLAY ]]
para los aficionados de doble soporte ...La
$DISPLAY
variable de entorno debe establecerse en algo si está en X, y deshabilitarse si no está conectado a una pantalla.Entonces podrías usar esto:
Pero hay otra solución. Se llama reenvío ssh X.
correr
entonces puede ejecutar vim en una máquina en la que se ssh'd, y se mostrará en la máquina donde está ejecutando X.
fuente
Pon esto en tu .bashrc:
fuente
Si bien esta no es una respuesta a su pregunta, pensé que podría ser útil señalar que si está enviando mensajes de una estación de trabajo que ejecuta X * a otra estación de trabajo, en realidad puede usar gvim si configura el reenvío de X con ssh. La información de la ventana se enviará a través de la red y gvim aparecerá como si se ejecutara localmente.
Agregue lo siguiente en ~ / .ssh / config
Ahora podrás ejecutar gvim.
Si su estación de trabajo de origen es Windows y no ejecuta X, en realidad PUEDE iniciar un servidor X localmente utilizando Cygwin. Una vez que esté configurado, puede configurar clientes ssh populares como PuTTy para hacer reenvío X11, y luego aparecerá gvim en lo que parece ser una ventana nativa decorada con ventanas.
fuente
Simplemente marque una de las variables de entorno que Xorg establece en el inicio, como XLOCAL que contiene información sobre la sesión X11 actual.
fuente
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:
Estoy pensando que para el problema del EDITOR se podría hacer algo como lo siguiente:
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.
fuente