联机less
帮助页显示,在执行行编辑(例如输入搜索字符串)时,您可以使用CtrlLeft和CtrlRight将光标移动一个单词:
^LEFTARROW [ ESC-b or ESC-LEFTARROW ]
(That is, CONTROL and LEFTARROW simultaneously.) Move the
cursor one word to the left.
当我尝试这样做时,它会输入我的终端发送的控制序列的打印表示。CtrlLeftEnterESC[1;5D
并按 Ctrl-Right 键输入ESC[1;5C
。
我的终端配置为分别发送^[[1;5D
和^[[1;5C
forCtrlLeft和CtrlRight,我将其放入我的终端中,这样~/.inputrc
当我在 shell (Bash) 中时,Readline 会执行逐字跳转,
# Ctrl-Left
"\033[1;5D": backward-word
# Ctrl-Right
"\033[1;5C": forward-word
大概less
是期待一些不同的控制序列?我有点犹豫是否要更改终端发送的转义序列以满足less
,因为担心它会绊倒 Vim 或 Readline,但我愿意尝试一下。
答案1
配置 less 的键绑定,以便序列\e[1;5D
运行word-left
并\e[1;5C
运行“word-right”。
在文件中~/.lesskey
,添加
#line-edit
\e[1;5D word-left
\e[1;5C word-right
如果已有#line-edit
部分,请添加必要的行。
然后运行lesskey
。该配套程序(以人类可读的语法)转换为使用的~/.lesskey
二进制格式。~/.less
less