在 shell 中使用 Vi 键绑定时如何显示当前的 Vi 模式?

sun*_*ica 15 vi shell command-line prompt

我在我的 tcsh shell 中使用 vi 键绑定。

现在,我不知道我处于哪种 vi 模式(insert模式或command模式),这导致了很多挫折。

有谁知道在 shell 中显示当前 vi 模式的方法?(通过包含在提示或其他东西中)

小智 6

对于任何遇到这个问题的人(比如我自己):我在stackoverflow找到了解决方案。显然 readline 对此有本机支持,因此您只需将以下内容添加到您的~/.inputrc

set show-mode-in-prompt on
Run Code Online (Sandbox Code Playgroud)

并自定义实际角色使用:

set vi-ins-mode-string "custom-ins"
set vi-cmd-mode-string "custom-cmd"
Run Code Online (Sandbox Code Playgroud)


小智 4

我不相信有任何方法可以从视觉上确定您所处的模式,但如果您稍微改变一下您的行为,那就没有关系了。

如果您想进入命令模式,请在键入命令之前按 ESC 键。

如果您想进入插入模式,请在输入内容之前按 ESC 和 i。

您最终会频繁地按 ESC 键,但我遇到的每个 vi 用户无论如何都会这样做。

  • 我所说的“额外 ESC”是指当我已经处于命令模式时按 ESC - 我经常这样做,因为我不知道自己处于什么模式。 (2认同)