0
我可以用bash bind
,手動給某個函數提供一個函數來預填一個\C-s
查詢嗎?我希望我能做到預填充bash/readline增量搜索查詢?
bind '"\e\C-i": "\C-s$(echo "$FOO")\C-j"'
但只是搜索的準確(未展開)$(echo "$FOO")
。
我可以用bash bind
,手動給某個函數提供一個函數來預填一個\C-s
查詢嗎?我希望我能做到預填充bash/readline增量搜索查詢?
bind '"\e\C-i": "\C-s$(echo "$FOO")\C-j"'
但只是搜索的準確(未展開)$(echo "$FOO")
。
readline
不支持在宏中評估shell表達式,但有一種解決方法。引入兩個輔助鍵序列綁定,以便
你所需的鍵序列必須調用隨後通過2 1.
下面是一個實際實現上述思想的,利用輔助鍵序列"\e\C-o"
和"\e\C-p"
(如果使用的是那些用於其他目的,不要忘記用未使用的按鍵序列替換它們):
$ setup_fixedfwdsearchhistory_binding() { bind '"\e\C-o":"\C-s'"$FOO"'\C-j"'; }
$ bind -x '"\e\C-p": setup_fixedfwdsearchhistory_binding'
$ bind '"\e\C-i": "\e\C-p\e\C-o"'
謝謝!很好的黑客:-) – unhammer