在我的.zshrc
我有
zstyle ':completion:*' menu select=20
这样,当我点击Tab两次时,我会收到一个完成菜单(假设至少有 20 个可供选择)。然后我可以使用Up和Down键进行导航。我希望向上/向下PgUp滚动PgDown页面,但这不是默认行为。
一个自然的想法是使用bindkey
绑定PgUp和PgDown适当的命令。但是,我只能在文档中找到up-line-or-history
和,但找不到它们的页面类似物。down-line-or-history
我缺少什么?
答案1
菜单完成调用zsh/complist
模块中的菜单选择代码。该模块仅允许有限的命令选择,但这确实包括“向上/向下移动标记一屏”。奇怪的是,您必须将键绑定到forward-word
/backward-word
或其变体之一 - 大概是因为菜单选择代码重用标准小部件,并且没有用于向上/向下翻页的标准小部件,而菜单选择没有这样的单词。
您可以使用术语信息模块到查找按键序列然后PgUp发送PgDn,或者对终端发送的内容进行硬编码。
zmodload zsh/complist
zmodload zsh/terminfo
bindkey -M menuselect $terminfo[kpp] backward-word
bindkey -M menuselect $terminfo[knp] forward-word