readline 中支援駝峰命名法的向後終止字

readline 中支援駝峰命名法的向後終止字

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字的意思等等

相關內容