如何在输入命令时设置 vi 模式?

如何在输入命令时设置 vi 模式?

set -o vi我知道我可以在命令行中将bash 设置为 vi 模式。然而,我发现我有时只需要 vi 模式,我想继续使用正常模式(emacs 模式?),并且在我已经输入新命令时能够切换到 vi 模式会很高兴。

有没有办法在不发出 CLI 命令的情况下设置 vi 模式?

例如,它可以通过终端应用程序打开。我在 Mac OS X 上使用 iTerm2,但找不到即时切换模式的命令。

有什么建议吗?

答案1

您将能够将两个 Readline 功能绑定vi-insertion-modeemacs-editing-mode控制键组合,以在这两种输入模式之间动态切换。

下面的代码首先绑定vi-insertion-modeCtrl+XCtrl+Tinemacs-standard模式,然后绑定emacs-editing-modeCtrl+XCtrl+T(相同的组合键,但是)invi-insert模式。

bind -m emacs-standard '"\C-x\C-t": vi-insertion-mode'
bind -m vi-insert      '"\C-x\C-t": emacs-editing-mode'

您可以使用任何不会干扰太多其他事情并且对您有意义的控制序列。这里使用的序列默认是未绑定的。

相关内容