Я 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
чтобы заставить это работать? Что еще я могу сделать, чтобы сделать эту работу?
Я новый пользователь на этих форумах, поэтому, если я допустил ошибку при изложении этого, пожалуйста, дайте мне знать, но любая помощь в устранении неисправности моей проблемы или помощь в указании меня в правильном направлении было бы здорово.