在各種基於GNU Readline的CLI上工作,如果有一種方法可以讓括號和引號 在鍵入時自動關閉,它將大大加快我的速度。Autoclose GNU Readline
因此打字擊(或其他的CLI)一個'
或(
實際上 追加閉引號或托架''
()
或和將光標置於其間 用於寫入。
我環顧四周相當長的一段時間,試圖找出相關 (例如~/.inputrc
設置)任何東西,但沒有發現任何東西,我不知道這是否是 都可以實現的。任何意見將不勝感激。
在各種基於GNU Readline的CLI上工作,如果有一種方法可以讓括號和引號 在鍵入時自動關閉,它將大大加快我的速度。Autoclose GNU Readline
因此打字擊(或其他的CLI)一個'
或(
實際上 追加閉引號或托架''
()
或和將光標置於其間 用於寫入。
我環顧四周相當長的一段時間,試圖找出相關 (例如~/.inputrc
設置)任何東西,但沒有發現任何東西,我不知道這是否是 都可以實現的。任何意見將不勝感激。
這有點棘手,但可行。作爲bash
命令:
bind '"(" "\C-v()\e[D"'
bind '"\"" "\C-v\"\C-v\"\e[D"'
如.inputrc
(因此使用readline
任何程序獲取的行爲)的設置:
"(": "\C-v()\e[D"
"\"": "\C-v\"\C-v\"\e[D"
您可以前綴與控制-V的每一個關鍵類型爲「普通」行情並留下括號而不觸發自動關閉行爲。
上面假設Emacs鍵盤綁定。對於六個綁定,使用
bind '"(": "\C-v()\ei"'
bind '"\"" "\C-v\"\C-v\"\ei"'
或
"(": "\C-v()\ei"
"\"": "\C-v\"\C-v\"\ei"
本質上說,只是用[D
替換i
;代替發送轉義序列以將光標向左移動,只需在插入括號/引號後發送\e
以回到命令模式,然後重新進入插入模式,該模式應該將光標定位在剛輸入的字符內。
做你想要的東西是不可能的,但是有一個解決辦法。在inputrc中 將這個:
"\C-x\"": "\"\"C-b"
運行:
info readline "comm" "readline init" "sample"
整個樣品。
不是不可能的,只是令人費解。 – chepner 2012-07-26 12:31:20
這很好,但如果我有'設置編輯模式vi',它會讓我在自動完成後退出插入模式,這非常煩人。這可以解決嗎? – qed 2014-03-06 10:05:06