Zsh
如何在zsh中配置Ctrl+w作為刪除詞
我想用
Ctrl
+刪除一個單詞W
。zsh
vim /foo/bar^W vim /foo/
並找到了解決方案
bash
,但bind
不在 zsh 函式中。如何將
Ctrl
+配置W
為delete-word
?
這是我一直在使用的*.zshrc*的一個片段:
my-backward-delete-word() { local WORDCHARS=${WORDCHARS/\//} zle backward-delete-word } zle -N my-backward-delete-word bindkey '^W' my-backward-delete-word
僅供參考,我發現這裡的解決方案更加優雅。我引用:
另一種選擇是將
WORDCHARS
(非字母數字字元視為單詞的一部分)設置為不包含/
.如果您希望
^w
在點、下劃線等處打斷,也可以對此進行調整。在~/.zshrc
我有:WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
更新(2020 年 3 月 2 日)
正如@Patryk 在下面的評論中指出的那樣,這不適用於
ZSH >= 5.7
. 這是我測試和處理的更新zsh 5.8 (x86_64-apple-darwin18.7.0)
。autoload -U select-word-style select-word-style bash export WORDCHARS='.-'