Почему vim не работает правильно в сеансе telnet?

Я использую vim (7.1) на OpenVMS V7.3-2.

Я подключаюсь к VMS через сеанс telnet с SmartTerm, эмулятором терминала.

Работает нормально.

Но когда я запускаю сеанс telnet из сеанса VMS (подключенного через SmartTerm) к другому сеансу VMS, некоторые ключи не работают должным образом.

|--------------| telnet   |-------------| telnet   |-----------------|
|  Smartterm   | ------>  | VMS, Vim OK | ------>  | VMS, Vim broken |
|--------------|          |-------------|          |-----------------|

Вставить, Удалить, Домой, Конец, PageUp и PageDown похожи на ~ в обычном режиме (от заглавной до строчной или наоборот)

Любая идея?

=============================================

редактировать

Я только что понял, что не упомянул, что второй сеанс telneted находится на той же коробке VMS.

Я делаю это, потому что мне нужно что-то делать с правами другого пользователя.

5 ответов

Решение

В дополнение к настройке используемой эмуляции терминала, также полезно изучить нажатия клавиш vim для действий, которые вы пытаетесь выполнить. Они более надежны и не зависят от терминала или клавиатуры. Например:

  • Вставить: я
  • Home: ^ переходит к первому непробельному символу, 0 всегда к первому столбцу
  • Конец: $
  • PageUp, PageDown: ctrl-u, ctrl-d перемещают половину страницы за раз

Я сталкивался с подобными проблемами при воскрешении старой пыльной коробки Solaris. Мне было лень искать, как мне настроить t_... переменные правильно, поэтому вместо этого я переназначил ошибочные escape-последовательности терминала:

:map xxx 0          (press <C-v><Home> in place of xxx)
:map xxx <C-b>      (press <C-v><PgUp> in place of xxx)
... etc

Если вы хотите правильно настроить эту чертову штуку, RTFMing может потребовать немного нервов и времени:

:h terminal-options

В дополнение к тому, как установить переменные env для совместимости терминального устройства, может быть полезен совет по самому клиенту telnet:

Перед обычной комбинацией Esc используйте Ctrl+[, например, чтобы выйти из vim

Ctrl+[ Esc :q!

Обычно это происходит из-за эмуляции терминала, поэтому что-то не проходит через правильные ключи. Прошло много лет с тех пор, как я это сделал, но ищите такие вещи, как VT-100 и тому подобное. Я сомневаюсь, что это специфично для vim, либо:)

Извините, я не могу помочь.

Первый вопрос, который нужно задать, это просто: что вы сидите перед? Вы действительно находитесь на консоли VAX или Alpha с OpenVMS? Я думаю, что ответ - нет.

В том маловероятном случае, если ответ положительный, просто введите:

$ SHOW TERMINAL

и убедитесь, что переменная TERM на удаленном хосте UNIX точно соответствует этому.

Если мои предположения верны, и вы сидите перед ПК или Mac, на котором запущен эмулятор терминала, например, PuTTY или Terminal, то вам нужно изучить параметры своего программного обеспечения, чтобы убедиться, что эмулируемый им терминал правильно отражается как в Мировоззрение системы VMS и удаленного хоста UNIX.

Как только вы выяснили, какой тип терминала вы эмулируете, используйте приведенную выше команду VMS еще раз в системе VMS, к которой вы подключены, чтобы убедиться, что есть совпадение.

Если нет, просто исправьте ситуацию, набрав:

$ SET TERMINAL / DEVICE = (ваше терминальное имя - например, vt100)

и затем убедитесь, что TERM на удаленном хосте Unix соответствует настройкам системы VMS.

Как только вы сделаете все это, все должно работать нормально.

Другие вопросы по тегам