Historicamente, os terminais usam seqüências de escape para teclas de funções, teclas de cursor e mais. As instalações termcap e terminfo ajudam a lidar com as variações entre os terminais.
Primeiro você precisa determinar o que seu terminal envia quando você aperta F1 , em bash
você pode fazer:
printf "%q\n" "
Ctrl V F1 "
Dentro do segundo par de aspas você digita Ctrl + V para fazer com que o próximo pressionamento de tecla seja tratado literalmente ( textual ), e então F1 . No meu terminal (rxvt) eu vejo
$'\E[11~'
então minha sequência F1 é escape [ 11 ~
, então em .lesskey
deve ir
#command
\e[11~ forw-line
execute lesskey
para atualizar, e agora F1 invocará esse comando.
infocmp
é outra maneira de ver como seu terminal está configurado, por exemplo,
infocmp -L1 rxvt | grep key_f1=
Veja Stéphane Chazelas responda aqui para mais detalhes, embora less
não use readline
, configurando readline requer um entendimento similar.