bash - bash和zsh之间的单词向前/向后分隔符区别
问题描述
被 macOS Catalina 拖入 21 世纪后,现在默认使用它的 shellzsh
而不是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
推荐阅读
- python - 将参数传递给作为值存储在字典中的函数
- c# - 为什么从 Powershell 调用时 Webservice 中有额外的参数?
- python - pycharm 和 Linux 在从不同目录导入模块时显示不同的错误
- list - Haskell 对单个列表的元素进行配对
- c# - Asp.Net Core Razor Pages:asp-route 使用同一页面上的输入值
- time - 如何测量 Julia 中每个循环步骤的执行时间?
- javascript - 阻止在 Internet Explorer 中查看网页
- python - PANDAS 根据通配符输入特定 ID
- node.js - CloudFormation 更新堆栈
- laravel - Livewire Alpinejs 跨文件发射/调度变量