我的终端输入星号然后 tab 补全就是把当前文件夹下的文件名和文件全部打出来了,这种问题怎么查呢?

2021-12-25 21:28:58 +08:00
 qkunchanzi

zshrc, bashrc 都已经重制了,日常用 iterm2 ,terminal 也同样。切换 zsh bash 都会打出来。因为它也不是运行脚本,就是输入*,然后按 tab ,不知道怎么查询?

2107 次点击
所在节点    Apple
15 条回复
qkunchanzi
2021-12-25 21:29:53 +08:00
挠头,要疯了。也不知道自己怎么搞出来的
momocraft
2021-12-25 21:39:55 +08:00
这不是默认行为吗? 你期待的是什么
nameuser
2021-12-25 21:41:41 +08:00
我在终端输入 ls ,敲回车,就是把当前文件夹下的文件名和文件全部打出来了,这种问题怎么查呢?
DonDonc
2021-12-25 21:52:22 +08:00
或许可以读一下 Pattern Matching 这一段 https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching
qkunchanzi
2021-12-25 21:58:19 +08:00
@momocraft 这不是 我说的是打出来。不是展示让你选择。
qkunchanzi
2021-12-25 21:59:16 +08:00
@nameuser SB ,陡机灵很有意思?
qkunchanzi
2021-12-25 22:01:24 +08:00
@DonDonc 不是正则匹配。我意思是它会打出来。普通的都是列表,让你选择一个文件夹或者文件,我这个是把所有的打出来了,命令也就乱了。
GuuJiang
2021-12-25 22:13:21 +08:00
@qkunchanzi 因为你把 oh-my-zsh 之类第三方工具提供的“按 tab 时以光标方式”选择这个 feature 当成了 shell 的默认行为了,在原生的 shell 里 tab 的行为本来就是列出来,至于你说的把命令搞乱了是不存在的,列出来的项并不会成为命令的一部分,随着你的输入越多,精确匹配的项也就越少
这个问题跟隔壁那个问为什么提示符没有了 git 分支显示的有异曲同工之妙
DonDonc
2021-12-25 22:27:10 +08:00
@qkunchanzi 你可以试试看写一个正则然后按 Tab ,Shell 会把该目录下文件名符合规则的文件名和目录名列出来,就像标题写的星号一样。这是默认行为。
DonDonc
2021-12-25 22:34:24 +08:00
@DonDonc 相关内容就是我发的那一段和它的上一级标题那一段。
AlphaRobert
2021-12-25 22:49:46 +08:00
你的意思是目录下所有文件名被拼在一起作为了输入吗?
Tink
2021-12-25 23:17:05 +08:00
文件名全部上屏进 shell 输入行了么
raykle
2021-12-25 23:29:26 +08:00
我的也是全部都打印出来了啊,不是默认行为?
DonDonc
2021-12-26 00:35:29 +08:00
@qkunchanzi zsh 文档搜索 Filename Generation ,Bash 搜索 Filename Expansion ,就是我上面回复链接的那一段和前一段。
ShadowPower
2021-12-26 02:14:34 +08:00
默认情况下
bash 会输出符合规则的文件名
zsh 会把全部符合规则的文件名拼接到光标所在的位置

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX