我使用的是分词式外壳(select-word-style shell)。我一般喜欢它,但也想在正斜杠处拆分,这样当我前进/后退一个词时,如果该词不包含任何 /s,它会完全跳过该词,但如果它确实包含一个或更多的斜线,它停在第一个斜线。
有任何想法吗?
在zsh默认情况下通过,CTRL+w和ALT+Backspace似乎正是同样的效果。
我如何保持CTRL+w原样,并更改ALT+Backspace以使其停在非字母数字字符处。
即,当光标位于以下命令的末尾时:echo /aaa/bbb/ccc,按CTRL+w应离开echo,而按ALT+Backspace应离开echo /aaa/bbb/。
根据来自 的回答@Thomas Dickey,我已将以下内容添加到我的.zshrc:
my-backward-delete-word () {
local WORDCHARS='~!#$%^&*(){}[]<>?+;'
zle backward-delete-word
}
zle -N my-backward-delete-word
bindkey '\e^?' my-backward-delete-word
Run Code Online (Sandbox Code Playgroud)
现在命令行编辑器的行为与我预期的不同。
例如,单引号字符'未在 my 中枚举WORDCHARS,因此当我按下 时Alt+BackSpace,backward-delete-word应该停在'。
这适用于第一个示例,但不适用于第二个示例:
$ echo 'asdf'
$ echo …Run Code Online (Sandbox Code Playgroud)