Настройка функциональных клавиш в ZSH


FrBrGeorge - Posted on 12 Февраль 2009

Как единообразно задействовать функциональные клавиши в zsh на различных терминалах

Часто хочется что-нибудь такое в .zshrc вписать, чтобы клавиша PageUp, например, работала как переход на слово назад, а Page Down -- на слово вперёд (и ещё с десяток удобных команд приделать).

Проблема: если вписать что-нибудь вроде bindkey '\E[5~' backward-word', работать это будет только на том терминале, где клавиша PageUp посылает именно эту ESC-последовательность. Иногда даже стрелки не работают.

Решение: обратиться к встроенной в ZSH команде echotc, позволяющей выводить ESC-последовательность по её имени в TERMCAP. Читаем man termcap(5), подыскиваем названия соотв. клавиш: PageUp -- kP, PageDown -- kN и т. п. Пишем в .zshrc:

bindkey "`echotc kP`" backward-word
bindkey "`echotc kN`" forward-word
bindkey '`echotc kI`" expand-word
и т. д.

Кстати, expand-word в zsh "распаковывает" шаблон, например, превращает "*" в список файлов -- иногда весьма удобно. Полный список команд редактора строки в zsh (zle) можно посмотреть так: info "(zsh) Zle Widgets"

Пользователям GNU bash придётся обратиться к внешней утилите tput.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

во отличный совет.
я подобной вещью для цветов в prompt пользуюсь.
есть модуль colors и я на его основе сделал (или где то раскапал, не помню) модуль prompt-colors который создает массивы с цветами.

надо будет как нить совет сделать

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.