Bash

顏色失敗的反向搜尋

  • April 9, 2017

我可以輸入一個命令:

$ 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 行)

引用自:https://unix.stackexchange.com/questions/351497