Zsh reverse-delete-word无法识别“/”字符


4

我希望Zsh上的ctrl-W在遇到“/”字符时停止。我的.zshrc文件中有以下内容,但它不会在“/”上停止。到底是怎么回事?

default-backward-delete-word () {
  local WORDCHARS="*?_[]~=/&;!#$%^(){}<>"
  zle backward-delete-word
}
zle -N default-backward-delete-word
bindkey '^W' default-backward-delete-word

Answers:


6

问题是,那 / 是你的一部分 WORDCHARS

根据 zshparam(1)

WORDCHARS <S>

由行编辑器视为单词的一部分的非字母数字字符列表。

所以,如果你想 zsh的 考虑一下 / 作为一个单词分隔符,它不应该在 WORDCHARS。我还建议在定义它时使用单引号而不是双引号 - 特别是当有一个时 $ 在那里,这可能会导致不必要的扩展。

local WORDCHARS='*?_[]~=&;!#$%^(){}<>'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.