我正在尝试在使用VNC连接到我的计算机时保持gvim作为默认编辑器。但是当通过SSH登录时,我想保持vim作为默认编辑器。我不确定如何在我的 .bashrc 文件中区分它们以自动执行此操作。同样,是否有一种方法可以知道会话是通过直接连接到我的计算机的控制台完成的。
谢谢
听起来你并不在乎是SSH、VNC还是控制台。你关心的是是否有图形界面可以运行gvim。
你可以通过$DISPLAY
来检查:
[[ $DISPLAY ]] && export EDITOR=gvim || export EDITOR=vim
这将会将你的编辑器设置为gvim
,用于VNC、XDMCP、NX、Chromoting、本地图形登录、带有图形转发的ssh以及任何其他具有X11显示的情况。
它将会将你的编辑器设置为vim
,用于常规SSH登录以及Telnet、rsh、串行控制台、本地登录和所有其他非基于X11的登录。
在任何SSH会话中,应该设置环境变量$SSH_AUTH_SOCK
。因此,在您的.bashrc
文件中,您可以添加以下内容:
if [ -n "$SSH_AUTH_SOCK" ]
then
# code for SSH sessions here
fi
关于确定您是否在直接连接的控制台上,请参见此问题;要在shell中获取tty名称(而不是在C程序内部),请使用tty
命令。
感谢ajk的提示,我查看了设置的变量,并发现只有在使用VNC时才设置了VNCDESKTOP。我采用了上面建议的方法,现在它可以正常工作。
虽然如此,我仍然希望有人能够提供是否这是一个完整解决方案的建议。