Bash

使用 Ctrl-R 使用反向歷史搜尋時突出顯示 bash 中的文本

  • April 14, 2021

使用Ctrl-R,我可以在 bash 中搜尋歷史記錄。

但是該怎麼辦,如果我想突出顯示我輸入的相關單詞。

例子:

(reverse-i-search)`mount': sudo mount /dev/sda2 /mnt

在上面的反向搜尋中,我想mount從整個命令中突出顯示世界sudo mount /dev/sda2 /mnt。如何在 bash 中實現這一點?

readlinebash用於其行編輯器)沒有這種可能性。

zsh預設情況下會這樣做。預設情況下,它會用下劃線突出顯示搜尋到的文本,但您可以更改它。例如:

zle_highlight=(isearch:standout)

或者:

zle_highlight=(isearch:fg=red)

( zleiszsh的行編輯器,就像readlineis bash’s)。

因此,從 Bash 5.1 和 Readline 8.1 開始,您實際上可以做到這一點。

來自https://lwn.net/Articles/839212/

Readline 中最明顯的新功能:添加了“面”,它突出了點和標記之間的文本(區域,因此也稱為“活動區域”)。添加此功能是為了清楚地顯示通過括號粘貼插入的文本,並標記通過增量和非增量歷史搜尋找到的文本。面目前與括號粘貼相關聯,並與括號粘貼模式一起啟用和禁用。預設情況下啟用括號粘貼模式。

https://www.reddit.com/r/archlinux/comments/ka5xek/latest_readline_upgrade_causes_it_to_highlight

圖片來源https ://www.reddit.com/r/archlinux/comments/ka5xek/

由於它預設啟用,因此您需要在 inputrc 中添加以下內容以禁用它:

set enable-bracketed-paste off

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