我可以在终端(xterm)使用 vi 模式时查看我处于哪种模式吗?
Can I view in which mode I am while using vi-mode for terminal (xterm)?
这个问题不言自明。我从一位同事那里听说,在终端中使用 vi-mode 时,有一种方法可以查看我当前处于哪种模式,但他不知何故忘记了它是如何完成的,我找不到这个问题的答案。我该怎么做?
这是一个 readline 功能。要启用它,您必须设置
set show-mode-in-prompt on
在您的 ~/.inputrc
文件中。这需要 readline 6.3 或更新版本(与 Bash 4.3 或更新版本捆绑在一起)。
在 vi 模式下,模式字符串默认为 (ins)
和 (cmd)
:
(cmd)$
(ins)$
这假定您的提示只是 PS1='$ '
。
您可以使用其他两个 readline 设置自定义它们,例如
set vi-cmd-mode-string [c]
set vi-ins-mode-string [i]
导致
[c]$
[i]$
请注意,非打印字符(如颜色的终端转义符)必须使用 </code> 和 <code>
进行转义。这两个设置需要 readline 7.0 或更新版本(与 Bash 4.4 或更新版本捆绑在一起)。
手动输入:
这个问题不言自明。我从一位同事那里听说,在终端中使用 vi-mode 时,有一种方法可以查看我当前处于哪种模式,但他不知何故忘记了它是如何完成的,我找不到这个问题的答案。我该怎么做?
这是一个 readline 功能。要启用它,您必须设置
set show-mode-in-prompt on
在您的 ~/.inputrc
文件中。这需要 readline 6.3 或更新版本(与 Bash 4.3 或更新版本捆绑在一起)。
在 vi 模式下,模式字符串默认为 (ins)
和 (cmd)
:
(cmd)$
(ins)$
这假定您的提示只是 PS1='$ '
。
您可以使用其他两个 readline 设置自定义它们,例如
set vi-cmd-mode-string [c]
set vi-ins-mode-string [i]
导致
[c]$
[i]$
请注意,非打印字符(如颜色的终端转义符)必须使用 </code> 和 <code>
进行转义。这两个设置需要 readline 7.0 或更新版本(与 Bash 4.4 或更新版本捆绑在一起)。
手动输入: