1

Я относительно новичок в Linux. Я подключаюсь к удаленной машине Linux иногда через telnet, а иногда через NX-клиент для Windows. Когда я подключаюсь через 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'. Я бы не хотел делать это каждый раз! Есть ли способ определить, присутствует ли дисплей или нет?

Спасибо!

ОБНОВЛЕНИЕ: если ($?DISPLAY) не работает, потому что мой файл .cshrci содержит строку "setenv DISPLAY ..."

ОБНОВЛЕНИЕ: теперь я использую Cygwin для SSH в удаленном окне и использую Cygwin XWin Server для отображения моих графических приложений. Теперь мне не нужно беспокоиться о том, какой редактор использовать, потому что gvim всегда доступен. Я, вероятно, откажусь от NX-клиента, потому что теперь все, что мне нужно, может быть запущено непосредственно из командной строки, а приложения с графическим интерфейсом работают так же, как и родные приложения Windows.

2 ответа2

2

Переменная DISPLAY устанавливается, когда используется дисплей X11 (графический). При использовании telnet, DISPLAY не будет определен.

Похоже, вы используете производную от csh , которую я на самом деле не знаю, но я думаю, что вы могли бы добавить что-то вроде этого в свой файл .tcshrc:

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

Просто всегда используйте "gvim" или «vim -g». Он будет жаловаться, если дисплей X недоступен, но все равно запустит консольную версию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .