set -o vi
我知道我可以在命令行中将bash 设置为 vi 模式。然而,我发现我有时只需要 vi 模式,我想继续使用正常模式(emacs 模式?),并且在我已经输入新命令时能够切换到 vi 模式会很高兴。
有没有办法在不发出 CLI 命令的情况下设置 vi 模式?
例如,它可以通过终端应用程序打开。我在 Mac OS X 上使用 iTerm2,但找不到即时切换模式的命令。
有什么建议吗?
答案1
您将能够将两个 Readline 功能绑定vi-insertion-mode
到emacs-editing-mode
控制键组合,以在这两种输入模式之间动态切换。
下面的代码首先绑定vi-insertion-mode
到Ctrl+XCtrl+Tinemacs-standard
模式,然后绑定emacs-editing-mode
到Ctrl+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'
您可以使用任何不会干扰太多其他事情并且对您有意义的控制序列。这里使用的序列默认是未绑定的。