Исторически, терминалы используют экранированные последовательности для функциональных клавиш, клавиш курсора и многого другого. Средства termcap и terminfo помогают справляться с изменениями между терминалами.
Сначала вы должны определить, что ваш терминал отправляет, когда вы нажимаете F1, bash
вы можете сделать:
printf "%q\n" "
CtrlV F1"
Во второй паре кавычек вы набираете Ctrl+, Vчтобы следующий текст был обработан буквально ( дословно ), а затем F1. На моем терминале (rxvt) я вижу
$'\E[11~'
так что моя последовательность F1 escape [ 11 ~
, так что в .lesskey
должны идти
#command \e[11~ forw-line
запустить lesskey
для обновления, и теперь F1вызовет эту команду.
infocmp
это еще один способ увидеть, как настроен ваш терминал, например
infocmp -L1 rxvt | grep key_f1=
См. Ответ Стефана Шазеля здесь, чтобы узнать больше о том, что, хотя less
и не используется readline
, настройка readline требует аналогичного понимания.