我复制了 bashrc 并开始为 zsh 调整它,但我突然发现^P
它不起作用,
它只是^P
在屏幕上打印一个。
可能出什么问题了?或者我现在应该看哪里?
答案1
您可能在不知不觉中在 zsh 中使用了类似 vi 的键绑定。
Zsh 通过查看 $VISUAL 和 $EDITOR 来选择默认键盘模式。如果它们看起来像 vi-ish(如“vim”),它将选择类似 vi 的绑定而不是类似 emacs 的绑定。
C-p
是默认情况下仅存在于类似 emacs 的键表中的绑定。显然,您也可以自由地将键绑定到类似 vi 的键表中您喜欢的任何内容,如“int”所建议的那样。但很可能,您确实想要 emacs 模式,您可以通过在配置中的某处执行以下操作来实现:
bindkey -e
...最好在进行其他与键盘相关的配置之前。
与往常一样,有关 zsh 行编辑器 (zle) 的完整详细信息可以在zsh参考手册的相应部分。它描述了如何选择默认模式,以及默认情况下哪些操作绑定到不同键映射中的哪些键。
答案2
尝试
bindkey "^P" up-line-or-history