在 Bash Vi 模式下,我一键按下后自动进入插入模式

Gil*_*les 7 bash terminal vi

我正在使用带有 XFCE4 终端的 bash shell。我已将外壳配置为处于 Vi 模式。

我通过在 ~/.bashrc 文件中添加以下行来完成此操作:

set -o vi
Run Code Online (Sandbox Code Playgroud)

在正常模式下的 shell 中,我按的第一个字符在正常模式下输入,但随后我在插入模式下被抛出。

IE:

我在正常模式。如果我按 b,我将返回一个单词并进入插入模式。

如果我按 bb,我将返回一个单词,进入插入模式,然后插入 b 字符。

另一个例子,如果我按 dd,第一个 d 将被普通模式捕获,然后我将进入插入模式,其中第二个 d 将被插入。

如果我set -o vi在 shell 中手动输入(无论它是否在我的 .bashrc 中),我将不会得到这种行为,而是得到正常行为。我知道我的 .bashrc 中的更改正在被读取,因为我不在 Emacs 模式下。

我正在使用 bash 4.2.45(1)-release。

这是我的 .bashrc 的完整内容:

  PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
  PATH=$PATH:/home/bleakcabal/.rvm/gems/ruby-2.0.0-p247/bin
  set -o vi
Run Code Online (Sandbox Code Playgroud)

Gil*_*les 1

我在阅读@Patrick 的评论后解决了我的问题

您所描述的行为是 emacs 模式。

这让我意识到我没有处于 vi 模式。我还把

set -o vi
Run Code Online (Sandbox Code Playgroud)

输入我的 .bash_profile ,现在一切正常。这很奇怪,因为从我读到的内容来看, .bash_profile 用于登录 shell, .bashrc 用于交互式非登录 shell,我相信这就是我的情况。