如何在 Bash 中重新绑定下一个历史记录和上一个历史记录?

如何在 Bash 中重新绑定下一个历史记录和上一个历史记录?

我已将 Bash 设置为使用 vi 键绑定与set -o vi,但我想保留 Emacs 风格Ctrl-pCtrl-n绑定以循环历史。我已阅读 bash(1) 中的“绑定”部分并尝试了以下变体:

bind -m vi-insert "\C-p": previous-history
bind -m vi-insert "\C-n": next-history

不过,我发出的命令似乎都bind没有任何效果。此后 的输出bind -P始终保持不变。如何更改这些命令的键绑定?

答案1

help bind

The non-option argument syntax is equivalent to
that found in ~/.inputrc, but must be passed as a single argument:
e.g., bind '"\C-x\C-r": re-read-init-file'.

我使用set -o emacsbind -p | grep history来找到必要的论点。

您需要的命令是:

bind '"\C-p": previous-history'
bind '"\C-n": next-history'

我对此进行了测试,set -o vi以验证它们是正确的命令。


另请注意,这help是您用来了解 shell 内置命令的内容。 help本身是一个 shell 内置函数,就像type和 一样bind

相关内容