Bash
顏色失敗的反向搜尋
我可以輸入一個命令:
$ echo hello hello
然後使用 Ctrl+R 搜尋它:
(reverse-i-search)`h': echo hello
然後有時搜尋會失敗:
(failed reverse-i-search)`hz': echo hello
我可以以某種方式為顯示的“失敗的反向搜尋”部分著色嗎?如果它是與普通白色文本形成對比的紅色文本,我會更喜歡。這樣我就可以快速判斷搜尋失敗了。
正如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
基於目前版本的 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 行)