Oh-my-zsh中的井号符号不良模式或未找到匹配。

6
我相信这与我的Oh-my-zsh配置有关,但我无法确定具体是什么。
当我在git命令中(以及其他所有命令中,例如'ls #2')使用“#”符号时,会出现“坏模式”错误或“未发现匹配项”的错误。
我猜测这与计数有关,但我找不到配置的位置。
例如:
➜  demo git:(adlist) git push origin adlist#3 
zsh: no matches found: adlist#3

或者

➜  demo git:(adlist) git push origin #3-adlist
zsh: bad pattern: #3-adlist
3个回答

12

6
能否禁用模式删除?这让我疯了。 - swrobel
4
@SWrobel,您可以通过将git别名为noglob git来禁用它:alias git ='noglob git' - Steve McKinney
@swrobel,你也可以使用set -k - maxymoo
1
@YonggooNoh set +k - maxymoo
1
被接受的答案中的解释是错误的。模式删除适用于参数替换。但问题没有参数替换。在文件名扩展中也有2种不同的特殊含义。请参阅手册页zshexpn下的“Glob运算符”和“Globbing标志”。 - Uwe Geuder
显示剩余3条评论

10
你可以使用unsetopt EXTENDED_GLOB,这将停止将#解释为模式的一部分。
如果你确实想保留大多数EXTENDED_GLOB的功能,但是希望禁用#用于模式匹配,则可以disable -p '#'(必须对#参数进行单引号引用,以防止其像模式一样展开)。即使在我的zsh安装中,版本号为5.7.1,这个方法也有效,尽管它没有在zshbuiltins(1)中记录。

2

打开你的zshrc文件:

vi ~/.zshrc

添加到文件末尾:

unsetopt INTERACTIVE_COMMENTS
unsetopt BAD_PATTERN

影响您的文件:

source ~/.zshrc

重新启动你的终端并享受它。


将英文翻译为中文。返回仅翻译的文本:回答时应提供更多关于某事在做什么以及为什么建议某事的推理。 - éclairevoyant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接