Linux:如何自动检测显示并相应地设置默认编辑器

Linux:如何自动检测显示并相应地设置默认编辑器

我对 Linux 还比较陌生。我有时通过 telnet 连接到远程 Linux 计算机,有时通过适用于 Windows 的 NX 客户端连接到远程 Linux 计算机。当我通过 telent 连接时,我希望默认编辑器为 vim,而当我通过 NX 连接时,我希望默认编辑器为 gvim。有没有办法在获取别名文件时自动检测我正在使用哪个连接?现在我的别名文件中有以下内容:

alias usevim 'setenv CSCOPE_EDITOR vim; setenv EDITOR vim'
alias usegvim 'setenv CSCOPE_EDITOR gvim; setenv EDITOR gvim'
echo 'using vim'
usevim

这会将默认编辑器设置为 vim。当我通过 NX 连接时,我要做的第一件事就是输入“usegvim”。我不想每次都这样做!有没有办法检测显示器是否存在?

谢谢!

更新: if($?DISPLAY) 不起作用,因为我的 .cshrci 文件有一行“setenv DISPLAY ...”

更新:我现在使用 cygwin 通过 ssh 连接到远程计算机,并使用 Cygwin XWin Server 显示我的 GUI 应用程序。现在我无需担心使用哪个编辑器,因为 gvim 始终可用。我可能会放弃 NX 客户端,因为我需要的所有内容现在都可以直接从命令行启动,而且 GUI 应用程序的工作方式与原生 Windows 应用程序一样。

答案1

DISPLAY使用 X11(图形)显示时设置此变量。使用 telnet 时,DISPLAY不会定义。

你好像在使用韓軟體衍生产品我不太了解,但我认为你可以在你的 .tcshrc 文件中添加类似这样的内容:

if ($DISPLAY) then
    setenv CSCOPE_EDITOR gvim
    setenv EDITOR gvim
else
    setenv CSCOPE_EDITOR vim
    setenv EDITOR vim
endif

答案2

只需始终使用“gvim”或“vim -g”。如果 X 显示器不可用,它会发出抱怨,但它仍会启动控制台版本。

相关内容