是否可以映射功能键(F1-F12 )less
?lesskey
这似乎不起作用:
#command
F1 forw-line
答案1
从历史上看,终端使用转义序列用于功能键、光标键等。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=
参见 Stéphane Chazelas在这里回答有关更多详细信息,尽管less
不使用readline
,但配置 readline 需要类似的理解。