Zsh - 换行后不能退格

Zsh - can not do backspace after new line

我正在使用 zsh(不是我的 zsh)。后退按钮有效,但它只适用于同一行。如果我有一个新行(比如如果我点击向上箭头并带回最后一个命令),后退按钮将不会转到上一行。

我正在使用 vim 键绑定。有什么解决办法吗?

bindkey -v
bindkey '^R' history-incremental-search-backward
bindkey "^[[A" history-search-backward
bindkey -v '^?' backward-delete-char

不清楚您所说的 "Back" 按钮是什么意思。您正在显示 Ctrl-R、向上光标和 Ctrl-? 的绑定。 Ctrl-?可以通过 Backspace 或 Delete 产生,具体取决于您的终端。

你想用最后一个绑定中的 -v 选项实现什么?您已经选择了 vi 模式。要在 vi 命令模式键盘映射中绑定一个键,请使用 -a.

所以你可能想要的是:

bindkey -a '^?' backward-delete-char

在行首停止的退格键与实际的 vi 行为一致。 Vim 的行为更像是以下内容:

bindkey -a '^?' backward-char