Bash 忽略 .inputrc 中的 vi-ins/cmd-mode-string 选项

Bash 忽略 .inputrc 中的 vi-ins/cmd-mode-string 选项

当我第一次创建 .inputrc (默认情况下它不存在)时,我设置vi-ins-mode-string为“+”和vi-cmd-mode-string“:”来区分模式。默认情况下,我的提示符前没有添加“(cmd)”或“(ins)”,但后来我决定确实希望显示这些选项,所以我在 .inputrc 中更改了这些选项。但是,“+”和“:”继续出现在我的 bash 提示符前面,我不知道为什么。我尝试使用sourceand获取 .inputrc bind,我已经退出了终端的所有实例,但没有任何效果。我在这里做错了什么吗?我的 .inputrc 目前是:

set show-mode-in-prompt on
set vi-ins-mode-string "(ins)"
set vi-cmd-mode-string "(cmd)"

编辑:当从虚拟环境(使用 conda 创建,如果这很重要)内部启动 python 的交互式 cli 时, (ins) 和 (cmd) 会被适当地附加。只有在我的常规 bash 命令行上,“+”和“:”才会继续出现。

答案1

  1. 将这些行添加到您的~/.inputrc文件中。
  2. 重新启动 shell(打开一个新的终端会话)。
  3. 确保您的bashshell 处于vi命令行模式并使用set -o vi.

或者:

  1. 将这些行添加到您的~/.inputrc文件中。
  2. 使用bash重新读取文件Ctrl+XCtrl+R(您必须emacs首先使用 暂时切换到模式set -o emacs)。
  3. 确保您的bashshell 处于vi命令行模式并使用set -o vi.

如果你有一个INPUTRC环境变量,那么这将指向该文件实际上用过的。从 shell 的启动文件中删除该变量(并重新启动 shell),或确保它具有默认值$HOME/.inputrc(并重新启动 shell)。

相关内容