4

Я SSH с PuTTY с моего ноутбука Win7 x64 в среде Unix для моего офиса. Проблема, с которой я сталкиваюсь, очень похожа на этот пост, где я не могу отправить символ Esc на терминал. Я впервые заметил это, когда пытался выйти из режима вставки в vi , но, основываясь на устранении неполадок в том посте, который я сделал, кажется, что нажатие клавиши Esc просто ничего не делает.

Итак, прежде всего, позвольте мне переформулировать проблему. Вы вошли в PuTTY, через vi файл, перешли в режим вставки, не можете выйти без нажатия клавиши F1, а затем :q (чтобы выйти из справки), затем я могу сохранить и выйти из документа.

Первый шаг по устранению неполадок в другом вопросе гласит:

 python -c "print ord(raw_input('char '))"

Тогда результат должен быть 27. При выполнении этого мне сказали, что у меня есть пустая строка (аналогично одному из комментариев, но этот пользователь никогда не возвращается).

Затем я попробовал следующее в комментарии ... но, честно говоря, я понятия не имел, что искал. Команда и мои результаты приведены:

# bind -p | grep -i '\\e' | less

"\e\C-g": abort
"\eOD": backward-char
"\e[D": backward-char
"\e\C-h": backward-kill-word
"\e\C-?": backward-kill-word
"\e[1;5D": backward-word
"\e[5D": backward-word
"\eb": backward-word
"\e": end-of-history
"\e[6~": end-of-history
"\eOF": end-of-line
"\e[4~": end-of-line
"\e[8~": end-of-line
"\e[F": end-of-line
"\eOC": forward-char
"\e[C": forward-char
"\e[1;5C": forward-word
"\e[5C": forward-word
"\ef": forward-word
"\eg": glob-complete-word
"\e^": history-expand-line
"\e#": insert-comment
"\e*": insert-completions
"\e.": insert-last-argument
"\e_": insert-last-argument
"\ed": kill-word
"\eOB": next-history
"\e[B": next-history
"\en": non-incremental-forward-search-history
"\ep": non-incremental-reverse-search-history
"\e=": possible-completions
"\e?": possible-completions
"\eOA": previous-history
"\e[A": previous-history
"\e[2~": quoted-insert
"\e\C-r": revert-line
"\er": revert-line
"\e ": set-mark
"\e\C-e": shell-expand-line
"\e&": tilde-expand
"\et": transpose-words
"\eu": upcase-word
"\e.": yank-last-arg
"\e_": yank-last-arg
"\e\C-y": yank-nth-arg
"\ey": yank-pop

Использование Ctrl+V, а затем нажатие клавиши «Esc» ничего не делает, пока я не нажму « Enter», после чего отобразится ^M (я думаю, что это символ возврата каретки (CR), который я получаю после цитирования клавиши Enter ). Ввод Ctrl+[ позволит мне выйти из vi , так что я предполагаю, что это правильный символ, который я ищу, я просто не знаю, почему мой терминал, кажется, думает, что Esc не связан или связан с каким-то случайным символом.

Мои текущие настройки клавиатуры / функциональных клавиш терминала и клавиатуры установлены на « Esc[n~ ». Я пытался изменить их на "Linux" и "Xterm R6", но, похоже, это ничего не меняет.

Недавно мне пришлось добавить туннель для работы другого приложения, и я изменил настройку « Terminal > Features > Disable application keypad mode установив значение «true». С тех пор я вернулся к тому, что это ложь, но это, похоже, тоже решает мою проблему.

Я предполагаю, что при сохранении моего профиля после этих изменений я случайно изменил что-то еще, что теперь сохраняется, но возврат к настройкам по умолчанию и вход на мой сервер также не решают проблему.

У меня нет ~/.vimrc и не было внесено никаких изменений на сервере в соответствии с руководством, поэтому я думаю, что я что-то сделал.

Мой вопрос на данный момент: что еще я могу проверить в PuTTY или попробовать изменить, что изменит поведение передачи ключа в подсказку? Можно ли просто создать .vimrc чтобы заставить это работать? Что еще я могу сделать, чтобы сделать эту работу?

Я новый пользователь на этих форумах, поэтому, если я допустил ошибку при изложении этого, пожалуйста, дайте мне знать, но любая помощь в устранении неисправности моей проблемы или помощь в указании меня в правильном направлении было бы здорово.

4 ответа4

2

У меня только что возникла та же проблема: нажатие Ctrl+[ также приводит к выходу из режима вставки в Vi (это альтернативная клавиша для Esc).

Чтобы исправить это для меня, я пошел в Terminal > Keyboard и изменил Function Keys and Keypad на VT100+ emulation .

0

может быть, у меня есть другая оболочка или что-то, но Ctrl + Alt + [делает это для меня

0

... так что снова разочаровавшись, что vi numpad не работает, я изменил "Отключить режим клавиатуры приложения", как упоминалось в моем первоначальном вопросе, обратно на «Верно / проверено». Это не только позволило мне снова использовать мою цифровую клавиатуру в vi, но и исправило проблему с Esc.

Единственное, что я могу добавить, - это то, что на моей машине также была какая-то ошибка Java, которая, казалось, испортила обновления Windows, которые были исправлены одним из наших ИТ-специалистов. Возможно, два неосознанно коррелировали ?? Во всяком случае, я закрываю вопрос.

Возможно, я не правильно сохранил свой профиль? Я почти уверен, что дважды проверил это, но я также борюсь с идеей, что это "волшебно исправило себя".

0

Рад, что вы нашли ответ, который гадил с настройками PuTTY. В качестве альтернативы, если клавиша Esc не работает должным образом, вы часто можете попробовать Ctrl- [. ] [CyberPillar] [: последовательности клавиш клавиатуры ctrl упоминают об этом, как и ] [CyberPIllar] [: мета-клавиша. Помните об этом, так как подсказка может иногда быть весьма полезной, особенно если вы регулярно используете клавишу Esc с удаленными программами Unix (например, vi, как вы упоминали).

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