Wie lassen sich Funktionstasten in weniger zuordnen?

372
Cyker

Kann ich Funktionstasten (F1-F12) lessmit zuordnen lesskey?

Das scheint nicht zu funktionieren:

#command F1 forw-line 
2

1 Antwort auf die Frage

2
mr.spuratic

In der Vergangenheit verwenden Terminals Escape-Sequenzen für Funktionstasten, Cursortasten und mehr. Die Termcap- und Terminfo-Funktionen helfen dabei, die Unterschiede zwischen den Terminals zu bewältigen.

Zuerst müssen Sie feststellen, was Ihr Terminal sendet, wenn Sie einen Treffer treffen F1. bashSie haben folgende Möglichkeiten:

printf "%q\n" "CtrlV F1"

Innerhalb des zweiten Anführungspaares geben Sie Ctrl+ ein V, um den nächsten Tastendruck wörtlich ( wörtlich ) zu behandeln, und dann F1. Auf meinem Terminal (rxvt) sehe ich

$'\E[11~' 

also meine F1-Sequenz soll escape [ 11 ~also in .lesskeygehen

#command \e[11~ forw-line 

lesskeyZum Aktualisieren ausführen, und jetzt F1wird der Befehl aufgerufen.

infocmp ist eine andere Möglichkeit, um zu sehen, wie Ihr Terminal eingerichtet ist, z

infocmp -L1 rxvt | grep key_f1= 

Weitere Informationen hierzu finden Sie in der Antwort von Stéphane Chazelas, die zwar lessnicht verwendet wird readline, aber die Konfiguration von readline erfordert ein ähnliches Verständnis.