iro*_*and 21 keyboard-shortcuts zsh zle
我想通过Ctrl+ Win zsh
like删除一个单词。
vim /foo/bar^W
vim /foo/
Run Code Online (Sandbox Code Playgroud)
并为 找到了解决方案bash
,但bind
不在 zsh 函数中。
如何将Ctrl+配置W为 a delete-word
?
小智 22
这是我一直在使用的.zshrc 中的一个片段:
my-backward-delete-word() {
local WORDCHARS=${WORDCHARS/\//}
zle backward-delete-word
}
zle -N my-backward-delete-word
bindkey '^W' my-backward-delete-word
Run Code Online (Sandbox Code Playgroud)
我记得这是原始来源:http : //www.zsh.org/mla/users/2001/msg00870.html
Ana*_*dis 14
只是为了您的信息,我发现这个解决方案在这里是更为优雅。我引用:
另一种选择是将
WORDCHARS
(将非字母数字字符视为单词的一部分)设置为不包含/
.如果您希望
^w
在点、下划线等处中断,您也可以调整它。在~/.zshrc
我有:Run Code Online (Sandbox Code Playgroud)WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
正如@Patryk 在下面的评论中指出的那样,这不适用于ZSH >= 5.7
. 这是我测试和处理的更新zsh 5.8 (x86_64-apple-darwin18.7.0)
。
autoload -U select-word-style
select-word-style bash
export WORDCHARS='.-'
Run Code Online (Sandbox Code Playgroud)
到目前为止,没有一个答案提供 bash 具有的所有属性。即:
此外,我们不想全局设置 WORDCHARS,因为它会影响其他功能。
这是一个满足以上所有条件的解决方案:
# Ctrl-w - delete a full WORD (including colon, dot, comma, quotes...)
my-backward-kill-word () {
# Add colon, comma, single/double quotes to word chars
local WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>:,"'"'"
zle -f kill # Append to the kill ring on subsequent kills.
zle backward-kill-word
}
zle -N my-backward-kill-word
bindkey '^w' my-backward-kill-word
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4541 次 |
最近记录: |