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

Rya*_*yan 10 bash xorg vim gvim bashrc

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

因此我想if在 bashrc 中声明,如果 X 窗口可用,则使用 gvim,否则就使用 vim。

我怎么能做到这一点?

gar*_*ohn 11

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

if [ "$DISPLAY" ]
then
    EDITOR=gvim
else
    EDITOR=vim
fi
Run Code Online (Sandbox Code Playgroud)

在某些情况下,即使您的 gvim 无法联系 X 服务器,也会设置 DISPLAY。在这些情况下,请使用RunningX程序:

if RunningX
then
    EDITOR=gvim
else
    EDITOR=vim
fi
Run Code Online (Sandbox Code Playgroud)


Mik*_*kel 7

$DISPLAY,如果你是在X环境变量应设置的东西,和取消,如果你没有连接到显示器。

所以你可以使用这个:

if [ -n "$DISPLAY" ]; then
    alias vim='gvim'
else
    alias vim='vim'
fi
Run Code Online (Sandbox Code Playgroud)

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

ssh -X yourworkstation
Run Code Online (Sandbox Code Playgroud)

然后你可以在你通过 ssh 连接的机器上运行 vim,它会显示在你运行 X 的机器上。