
backward-kill-word
是刪除前一個字母數字單字的 readline 操作。例如,在以下場景中套用此操作(▯
指示遊標的位置)
echo hello-friend▯
結果是
echo hello-▯
backward-kill-word
通常綁定到<Alt-Backspace>
,儘管這可以在 readline 的設定檔中自訂~/.inputrc
。
我的問題是:是否可以進行自定義backward-kill-word
,以便刪除第一個非字母數字字元或第一個大寫字母?這樣,它就可以用來刪除CamelCase單字。例如,如果我從
echo HelloFriend▯
按下後<Alt-Backspace>
我想獲得
echo Hello▯
答案1
如果可以選擇切換到zsh
,您可以使用select-word-style
用戶貢獻的小部件它允許您為所有單字動作和操作選擇單字樣式。
添加~/.zshrc
:
autoload -U select-word-style
zle -N select-word-style
bindkey '\ez' select-word-style
select-word-style default
然後按Alt+Z選擇替代文字樣式:
$ 回顯你好朋友Alt+Z 文字樣式(點擊回車查看更多詳細資訊): (b)ash (n)正常 (s)地獄 (w)hitespace (d)預設 (q)uit (B)、(N)、(S)、(W) 如上,帶有子字匹配
然後大寫B
會選擇一種(對我來說很煩人,但也許對你來說很熟悉)bash
單字選擇樣式,但使用駝峰式子詞處理更改,其中(在emacs
模式下)Ctrl+ W(或Alt+ Backspace)將刪除Friend
上面的內容,或是Alt+B將移回開頭這個Friend
字的意思等等