Когда я подключаюсь к своему серверу Debian Wheezy Beta 4 с PuTTY 0.62 в Windows 7, у меня возникает проблема. Моя оболочка входа в систему Zsh, и она настроена на обработку ALT + DEL для действия delete-word
(удаляет одно слово справа от курсора). Строка в конфигурации выглядит следующим образом:
bindkey -e "\e[3;3~" kill-word
Привязка прекрасно работает при подключении через команду ssh
от gnome-terminal
. Но когда я подключаюсь через PuTTY, это действие не выполняется. Вместо этого [3~
выводится на консоль. Насколько я понимаю, это неэкранированная последовательность для клавиши DEL в xterm
. Некоторое время я думал, что PuTTY просто проигнорирует модификатор ALT и отправит только DEL, но в этом случае действие, привязанное к DEL, будет выполнено так, как если бы я нажал только эту клавишу.
Таким образом, я предполагаю, что PuTTY использует некоторую последовательность для комбинации клавиш, которую я не знаю и которая заставляет выводить [3~
появляется на экране. Как я могу узнать, какую последовательность посылает PuTTY, чтобы настроить Zsh для правильной обработки?
Обновление: похоже, что PuTTY должен игнорировать все нажатия клавиш-модификаторов ALT в своей текущей реализации. Вот выдержка из файла исходного кода TERMINAL.C
который удаляет флаг ALT из переменной modifiers:
/*
* Alt is only used for Alt+keypad, which isn't supported yet, so
* ignore it.
*/
modifiers &= ~PKM_ALT;
Это не объясняет мне, почему нажатие ALT + DEL не имеет такого эффекта, как нажатие только DEL. Также это не объясняет, почему комбинация клавиш по умолчанию для действия kill-word
в Zsh (ALT + D) работает нормально.