有很多时候会遇到中文路径,就必须得切换中文输入法,再 tab (虽然像是 zsh/fish 就可以多次 tab 来选择,不过目前我还没有迁移 zsh 的计划,并且我也没有想要使用鼠标的意愿)
我之前看到有别人的终端用的补全有 popup 的功能,类似 vim 的 popup,像是这样(年代久远,我也不能确定他用的是什么命令行)
1
zhhanging 2021-08-31 09:55:10 +08:00
看看这个,不过只有 mac 版 https://fig.io
|
3
kukat 2021-08-31 10:05:03 +08:00
bash 不清楚,zsh 可以 https://github.com/Aloxaf/fzf-tab
|
6
Kimen 2021-08-31 10:35:10 +08:00
Emmm……zsh 有啥迁移成本?
|
8
TangMonk 2021-08-31 10:41:03 +08:00
FIshshell
|
9
xlsepiphone 2021-08-31 11:20:25 +08:00
工作这么多年了,出了写写 shell 脚本,我基本上从来不用 bash
fish 才是未来 |
10
plko345 2021-08-31 11:55:25 +08:00 via Android
我也想知道,这种到 stackoverflow 问可能有人知道
|
11
hicdn 2021-08-31 11:56:38 +08:00 1
用 fzf
输入两个 * 号,然后按 tab,就可以搜索或者用方向键选择 |
12
Kobayashi 2021-08-31 22:21:59 +08:00 via Android
这不是 shell completion menu,而是 vim 编辑时的补全,补全来源 "[File]", "[Dir]" 字段很好的说明了这一点。参考视频 https://www.semicolonandsons.com/episode/vim-autocomplete-overview 1 分 10 秒左右内容。
shell 补全显示方式做不到。唯一一个例外是 upterm,这个 terminal emulator 自己实现了弹出式补全的效果。 另外我比较犯贱: 1. zsh fish 设计时额外考虑了交互式 shell 的功能,bash 连个完善的钩子系统都不存在,有些功能 bash 就是做不到:钩子、字节码编译、懒加载(大多数补全都是懒加载)、右 prompt,更强的行编辑器( ZLE )…… 2. Bash 流行主要取决于 GNU Bash,即 GNU 亲儿子。写脚本绝对是 Bash,适用性更广。交互式 shell 不需要和脚本运行的 shell 同一,装俩就行。 3. 从名字上看,fish 好像更专注于交互使用。但从生态上看,zsh 好比编辑器界的 vscode,框架、插件管理器、插件数量完爆其他 shell 。zsh 现在连任务队列回调都玩儿出来了,算是异步了。https://github.com/unixorn/awesome-zsh-plugins 4. bash 迁移有个毛的成本,一般人根本不用考虑这些。如果你的 bash 配置连千行都没有,那可能就是一般人。 |
13
Kobayashi 2021-08-31 23:30:35 +08:00 via Android
又想了一下,bash 自己肯定是实现不了,有可能受底层 readline 限制。
集成 fzf 替代补全倒是个思路。原来本论坛有人推广过 fzf-tab,不过是个 zsh 插件。确实有类似插件支持 bash,https://github.com/lincheney/fzf-tab-completion 楼上那那个 fzf 启用 cd ** 补全就不要试了,那个只针对补全当前目录下文件。可能还能补全 ssh **,但并不是针对所有命令,只能补全几个命令。 |
14
SSang OP @Kobayashi 第二张图是我自己在 vim 截下来的( YCM 插件),只是想体现一下我想要实现的效果,可能我没说清楚,(别人的终端补全我只是有看到过,但是没有图)
我昨天已经尝试了 fzf,已经 99% 确定当时我看到的就是 fzf 。“补全当前目录下文件” 对我来说就足够了(我一开始的需求也只是想要解决中文路径切换输入法的问题,而且 fzf 能实现的也不止这些) |
15
SSang OP @Kobayashi
针对你后面的几个问题: shell 的选型本身就是个复杂的过程,也许今年 zsh 流行,明年又来个 xsh,后年又来个 ysh,你还需要考虑配置方式,配置难易度,系统间是否统一等等,就算是 zsh/fish 之中选择一个,也不是能够轻易决定的。再者,就算没有迁移成本,也有学习成本。就像是 vim,明明各种性能问题,本身一键就能迁移 nvim,甚至很多 ide 都支持了 vim,还很多特别的功能,但还是很多人在使用 vim 总是有原因的(亲儿子也是一个重要的原因)。 以及我的 bash 配置真的有千行,而且本身有多个服务器,每个服务器还配置了不同的 bash,我觉得当你听到我说 bash 迁移有成本的时候就应该考虑到我不是一般人了。如果不能像 vim 到 nvim 那么容易迁移,我是不会轻易尝试的。 |
16
SSang OP PS:我在问 bash 有什么办法,还明确指出了我已经知道了 fish/zsh 能实现,还有人要在底下复读,还要顺便阴阳怪气说有个毛线的迁移成本,反正我是不能理解有什么意义。
|
17
SSang OP 言语过激,请见谅
|