Ctrl + W
在我的 zsh 环境中,当我尝试使用或删除命令行上的最后一个单词时Opt + Delete
,它总是行为不当,例如
# start with this line below
pg_ctl --help
# Trying to delete last word with either Ctrl + W or Opt + Delete, I am hoping to get
pg_ctl
# instead I got
pg_ctl --
# Trying to delete last word again with either Ctrl + W or Opt + Delete, I'm hoping to get
pg_ctl
# but instead I got
pg_
实在是太令人沮丧了,我不得不在这里发帖寻求帮助。你们见过这个并知道如何解决吗?
我正在运行 macOS Monterey、iTerms 和 oh-myzsh。我刚刚测试过。我的 bash 环境中也会发生这种情况。
谢谢
答案1
对于哪些字符是单词的一部分、哪些不是单词的一部分,您和 shell 似乎有不同的想法。
对于zsh
,您应该阅读第 4.3.4 章:单词、区域和标记用户指南的内容zsh
。根据您使用的编辑模式,您也许可以通过操作变量来获得您想要的内容$WORDCHARS
(它包含非字母数字字符的列表,这些字符也应被视为单词的一部分)。
(免责声明:我对 的当前版本了解不多zsh
,尤其是oh-my-zsh
。我的工作需要我使用许多系统,通常会精简到所需的最低限度,其中一些具有奇特的配置;所以我已经习惯了使用“ plain vanilla”shell 配置。我可能会在经常访问的系统上设置相当少的 shell 自定义设置,但如果有必要的话,没有它们我也可以生活;我了解许多专业的系统管理员通常最终都会采用这样的 shell 配置。)
对于,如果您的“删除最后一个单词”击键与库函数bash
相关联(默认情况下),则它仅将字母和数字视为单词组成部分;任何其他字符都会将单词彼此分开。readline
backward-kill-word
在bash
4.0 及更高版本中,应该有一个readline
名为 的替代函数shell-backward-kill-word
,它可能更适合您的需求。请参阅此问题了解更多详细信息。