如何将Ctrl + w配置为zsh中的删除单词


Answers:


15

这是我一直在使用的.zshrc的一个片段:

my-backward-delete-word() {
    local WORDCHARS=${WORDCHARS/\//}
    zle backward-delete-word
}
zle -N my-backward-delete-word
bindkey '^W' my-backward-delete-word

我记得这是原始来源:http : //www.zsh.org/mla/users/2001/msg00870.html


谢谢!我把这段代码放进去了~/.zshrc,而且效果很好!
ironsand

emacsZLE中的默认键绑定表将^ W绑定到backward-kill-word而不是backward-delete-word,注意。
JdeBP

10

只是为了您的信息,我发现这个解决方案在这里是更为优雅。我引用:

另一种选择是将WORDCHARS(非字母数字字符视为单词的一部分)设置为不包含的内容/

您也可以调整这个,如果你更喜欢^w对点,下划线等。在打破~/.zshrc我有:

WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'

更新(2 / Mar / 2020)

正如@Patryk在下面的评论中指出的那样,这不适用于ZSH >= 5.7。这是我测试并处理的更新zsh 5.8 (x86_64-apple-darwin18.7.0)

autoload -U select-word-style
select-word-style bash

export WORDCHARS='.-'

这使M-d有用性降低。
Toothrot

1
这不适用于zsh 5.7 (x86_64-apple-darwin18.2.0)
Patryk

@Patryk感谢您的注意!我更新了答案!
Anastasios Andronidis
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.