我可以输入命令:
$ echo hello
hello
然后使用 Ctrl+R 搜索它:
(reverse-i-search)`h': echo hello
那么有时候搜索会失败:
(failed reverse-i-search)`hz': echo hello
我可以以某种方式为显示的“反向搜索失败”部分着色吗?我更喜欢红色文本与普通白色文本形成对比。这样我就可以很快知道搜索失败了。
答案1
基于 Bash (4.4) 的当前版本,消息“failed reverse-i-search”在与“reverse-i-search”相同的位置和相同的方式生成,使得它们无法区分任何可能改变其颜色的功能。
本质上,要完全达到您的要求,就需要修改 bash 源代码。 (文件 ./lib/readline/isearch.c 第 180 行左右)http://git.savannah.gnu.org/cgit/bash.git/tree/lib/readline/isearch.c
另一种方法是为您的终端启用“可视铃”,因为当搜索失败时,会执行“按铃”操作,该操作可以是终端上的音频或视觉事件。 (参见文件./lib/readline/isearch.c第715行)
答案2
作为czvtools 指出,“反向搜索失败”会响铃。您可以创建一个视觉铃声而不是常规铃声。创建一个文件“xterm-vb.terminfo”:
xterm-vb|red visible bell,
# \e7 save current cursor position
# \e[40A up 40 lines
# \e[80C move right 80 spaces
# \e[4D move left 4 spaces
# \e[5;30;41mERROR\e[m bright background; foreground black; background red
# \e8 restore cursor to position of last save_cursor
flash=\e7\e[40A\e[80C\e[4D\e[5;30;41mERROR\e[m\e8,
use=xterm,
编译并安装文件:
tic xterm-vb.terminfo
将行添加到“~/.profile”或类似内容:
TERM=xterm-vb
将行添加到“~/.inputrc”:
set bell-style visible