word forward/backward分隔符bash和zsh的区别
Word forward/backward delimiter difference between bash and zsh
被 macOS Catalina 拖进了 21 世纪,现在默认为 zsh
而不是 bash
shell,我正在尝试恢复一些 bash 的行编辑行为。具体来说,如果我在行尾:
bash$ ls /foo/bar/baz
然后我按 Alt-Left Arrow,光标跳到 "baz",然后是 "bar",然后是 "foo"。与大多数环境(例如 Safari 和使用 Cocoa 文本编辑功能的应用程序)一样,它将斜线视为单词分隔符。
在 zsh
中,当我尝试做同样的事情时,第一个 Alt-Left Arrow 将光标一直跳回到“/foo/bar/baz”的开头,这使得它对于直接编辑 long 的部分不太有用。
这可以在 zsh 中配置吗?如果可以,怎么做?
zsh 变量 WORDCHARS 中的字符被视为单词的一部分。
您只需要从中删除 /
% echo "$WORDCHARS"
*?_-.[]~=/&;!#$%^(){}<>
% WORDCHARS="${WORDCHARS/\//}"
# Now Alt-left-arrow will stop at /
请注意 $WORDCHARS 也用于其他情况。参见 man zshall
被 macOS Catalina 拖进了 21 世纪,现在默认为 zsh
而不是 bash
shell,我正在尝试恢复一些 bash 的行编辑行为。具体来说,如果我在行尾:
bash$ ls /foo/bar/baz
然后我按 Alt-Left Arrow,光标跳到 "baz",然后是 "bar",然后是 "foo"。与大多数环境(例如 Safari 和使用 Cocoa 文本编辑功能的应用程序)一样,它将斜线视为单词分隔符。
在 zsh
中,当我尝试做同样的事情时,第一个 Alt-Left Arrow 将光标一直跳回到“/foo/bar/baz”的开头,这使得它对于直接编辑 long 的部分不太有用。
这可以在 zsh 中配置吗?如果可以,怎么做?
zsh 变量 WORDCHARS 中的字符被视为单词的一部分。
您只需要从中删除 /
% echo "$WORDCHARS"
*?_-.[]~=/&;!#$%^(){}<>
% WORDCHARS="${WORDCHARS/\//}"
# Now Alt-left-arrow will stop at /
请注意 $WORDCHARS 也用于其他情况。参见 man zshall