如何使 ctrl+p 的行为与 zsh 中的向上箭头完全相同?

Gor*_*Gao 19 zsh shell

首先,我使用的是 zsh 和oh-my-zsh,几乎没有其他定制。

在 zsh 中,当我按向上箭头时,它会给我带来最新的命令。如果我在按下向上箭头之前输入了一些字符,它会给我带来以这些字符开头的最新命令。这是一个非常有用的功能,因为我交替发出了很多 git/vim/scp 命令。

但是现在我切换到没有箭头键的键盘,并且我倾向于使用ctrl+p而不是向上箭头来完成历史记录。但是,无论我在按ctrl+之前输入多少个字符p,它总会给我带来最新的命令(不是以这些字符开头的最新命令)

我应该如何配置 zsh(或 oh-my-zsh)来解决这个问题?

小智 26

bindkey "^P" up-line-or-search
Run Code Online (Sandbox Code Playgroud)

  • 您可能还想添加`bindkey "^N" down-line-or-search` 以保持一致性。 (9认同)

Deb*_*jit 8

bindkey -e
Run Code Online (Sandbox Code Playgroud)

这使用 emacs 键绑定,似乎对我有用。

  • 在你的shell rc文件`~/.zshrc`中,如果你设置`export EDITOR=vim`,那么shell中的键绑定也会变成vim。在这种情况下,通过`bindkey -e`手动将键绑定设置为emacs模式 (2认同)