Bash 4.4 vi模式着色

Bash 4.4 vi-mode coloring

从bash 4.4开始你可以在.inputrc中设置变量vi-ins-mode-string和vi-cmd-string。我一直在尝试使用 tput setab numbertput setaf number 来更改每个字符串的前景色和背景色,但没有成功。

我想这是可能的,因为我已经看到 bash-powerline 脚本,它正是使用这些函数来进行着色。

如有任何帮助,我们将不胜感激。

它们不是bash变量,而是readline变量,所以只能在.inputrc中设置,不是bash脚本。您需要使用原始 ASCII 转义序列。

set editing-mode vi
set show-mode-in-prompt on
set vi-cmd-mode-string \e[32m(c)\e[0m
set vi-ins-mode-string \e[34m(i)\e[0m