Bash
使用 Ctrl-R 使用反向歷史搜尋時突出顯示 bash 中的文本
使用
Ctrl-R
,我可以在 bash 中搜尋歷史記錄。但是該怎麼辦,如果我想突出顯示我輸入的相關單詞。
例子:
(reverse-i-search)`mount': sudo mount /dev/sda2 /mnt
在上面的反向搜尋中,我想
mount
從整個命令中突出顯示世界sudo mount /dev/sda2 /mnt
。如何在 bash 中實現這一點?
readline
(bash
用於其行編輯器)沒有這種可能性。
zsh
預設情況下會這樣做。預設情況下,它會用下劃線突出顯示搜尋到的文本,但您可以更改它。例如:zle_highlight=(isearch:standout)
或者:
zle_highlight=(isearch:fg=red)
(
zle
iszsh
的行編輯器,就像readline
isbash
’s)。
因此,從 Bash 5.1 和 Readline 8.1 開始,您實際上可以做到這一點。
來自https://lwn.net/Articles/839212/:
Readline 中最明顯的新功能:添加了“面”,它突出了點和標記之間的文本(區域,因此也稱為“活動區域”)。添加此功能是為了清楚地顯示通過括號粘貼插入的文本,並標記通過增量和非增量歷史搜尋找到的文本。面目前與括號粘貼相關聯,並與括號粘貼模式一起啟用和禁用。預設情況下啟用括號粘貼模式。
圖片來源:https ://www.reddit.com/r/archlinux/comments/ka5xek/
由於它預設啟用,因此您需要在 inputrc 中添加以下內容以禁用它:
set enable-bracketed-paste off