如何在 less 中映射功能键?

如何在 less 中映射功能键?

是否可以映射功能键(F1-F12 )lesslesskey

这似乎不起作用:

#command
F1    forw-line

答案1

从历史上看,终端使用转义序列用于功能键、光标键等。termcap 和 terminfo 工具可帮助处理终端之间的差异。

首先你需要确定当你点击 时你的终端发送什么F1bash你可以这样做:

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 需要类似的理解。

相关内容