bashrc: 如何知道 X 窗口是否可用?

bashrc: 如何知道 X 窗口是否可用?

我的 中有一部分~/.bashrc将 $EDITOR 设置为 gvim。当我在 X 窗口中时,它工作正常。但是,如果我 ssh 到我的工作站(从另一个工作站),gvim 开始抱怨“无法打开显示”。

因此我希望if在 bashrc 中添加一条语句,如果 X 窗口可用,则使用 gvim,否则就使用 vim。

我怎样才能实现这个目标?

答案1

执行此操作的一种方法是测试 DISPLAY 环境变量是否存在:

if [ "$DISPLAY" ]
then
    EDITOR=gvim
else
    EDITOR=vim
fi

在某些情况下,即使 gvim 无法连接 X 服务器,也会设置 DISPLAY。在这些情况下,请使用跑步X程序:

if RunningX
then
    EDITOR=gvim
else
    EDITOR=vim
fi

答案2

如果您在 X 中,则应该将环境$DISPLAY变量设置为某个值,如果您未连接到显示器,则应取消设置。

因此你可以使用这个:

if [ -n "$DISPLAY" ]; then
    alias vim='gvim'
else
    alias vim='vim'
fi

但还有另一种解决方案。它被称为 ssh X 转发。

跑步

ssh -X yourworkstation

然后你就可以在通过 ssh 进入的机器上运行 vim,它将显示在你运行 X 的机器上。

答案3

将其放入你的 .bashrc 中:

if [ -z "${DISPLAY:-}" ]; then
  EDITOR='vim'
else
  EDITOR='gvim'
fi

答案4

只需检查 Xorg 在启动时设置的环境变量之一,例如包含有关当前 X11 会话的信息的 XLOCAL。

相关内容