Я относительно новичок в 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.
telnet
в этот день и век? Единственный разумный выбор SSH , На самом деле, включение сервера telnet в эти дни (вполне справедливо) требует значительных усилий.Ответы:
DISPLAY
переменная устанавливается, когда используется дисплей X11 (графический). При использовании telnet,DISPLAY
не будет определенПохоже, вы используете CSH производная, которую я на самом деле не знаю, но я думаю, что вы могли бы добавить что-то вроде этого в ваш файл .tcshrc:
источник
Просто всегда используйте «gvim» или «vim -g». Он будет жаловаться, если дисплей X недоступен, но все равно запустит консольную версию.
источник