bash - 有没有办法通过按键将 Bash 或 zsh 从 Emacs 模式切换到 vi 模式?

标签 bash history zsh

我希望能够暂时从 emacs 模式切换到 vi 模式,因为 vi 模式有时更好,但我通常在输入某些内容到一半时才意识到我想要使用 vi 模式。

我不想永久切换到 vi 模式,因为我通常更喜欢命令行上的 emacs 模式,主要是因为我已经习惯了,多年来,许多击键已经成为第二天性。 (作为一名编辑器,我通常在 viper 模式下使用 emacs,这样我就可以同时使用 vi 和 emacs 键击,因为我发现自己一直不小心在 vi 中使用它们,结果搞砸了,而且因为在某些情况下,我发现 vi 击键更容易内存和方便,而在其他情况下,我发现 emacs。)

最佳答案

您可以创建一个切换,因为键绑定(bind)在 vi 模式和 emacs 模式之间是分开的。

$ set -o emacs
$ bind '"\ee": vi-editing-mode'
$ set -o vi
$ bind '"\ee": emacs-editing-mode'

现在 Alt-e(或 Esc e)将在模式之间切换。

将此添加到 PS1 定义中的某处,以便在提示中指示您所处的模式。切换模式时不会立即显示更改,但会发出新提示时更新。

$(set -o | grep emacs.*on >/dev/null 2>&1 && echo E || echo V)

关于bash - 有没有办法通过按键将 Bash 或 zsh 从 Emacs 模式切换到 vi 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2640141/

相关文章:

bash - 连续处理tail -f输出

bash - 如何使用 sed bash 删除特定模式

mysql - 如何将星号传递给 bash heredoc?

architecture - 为什么堆栈通常向下增长?

ip - 为什么仅采用IP V4和V6?

bash - 为每个匹配项执行一次命令的通配符

python - 使用 argparse 完成 Bash 选项卡不显示目录中的所有文件

java - 提交按钮 + GWT 历史记录

linux - bash 脚本和 zsh shell 中数组的行为(起始索引 0 或 1?)

bash - 如何在不 fork 子 shell 的情况下获取 shell 函数的输出?