如何让 bash 的补全 popup 显示 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SSang
V2EX    Bash

如何让 bash 的补全 popup 显示

  •  1
     
  •   SSang 2021-08-31 09:40:00 +08:00 3032 次点击
    这是一个创建于 1555 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有很多时候会遇到中文路径,就必须得切换中文输入法,再 tab (虽然像是 zsh/fish 就可以多次 tab 来选择,不过目前我还没有迁移 zsh 的计划,并且我也没有想要使用鼠标的意愿)

    Snipaste_20210831_092525.png

    我之前看到有别人的终端用的补全有 popup 的功能,类似 vim 的 popup,像是这样(年代久远,我也不能确定他用的是什么命令行)

    Snipaste_20210831_093203.png

    第 1 条附言    2021-08-31 11:03:43 +08:00
    我觉得我已经表达的很清楚了,我目前并不希望迁移到 zsh/fish,所以不要再说 zsh 和 fish 或类似的东西了,zsh 和 bash 的配置并不能完全兼容,更不要说 fish 这种几乎就是两个东西了。
    zhhanging
        1
    zhhanging  
       2021-08-31 09:55:10 +08:00
    看看这个,不过只有 mac 版 https://fig.io
    RRRoger
        2
    RRRoger  
       2021-08-31 09:57:57 +08:00
    @zhhanging 看起来有用 不过配置起来好复杂啊
    kukat
        3
    kukat  
       2021-08-31 10:05:03 +08:00
    bash 不清楚,zsh 可以 https://github.com/Aloxaf/fzf-tab
    SSang
        4
    SSang  
    OP
       2021-08-31 10:07:52 +08:00
    @kukat zsh 我知道可以,只是目前来说迁移成本较高,我想要慢慢过渡,就是想要各临时解决方案
    SSang
        5
    SSang  
    OP
       2021-08-31 10:09:30 +08:00
    @zhhanging 可惜我是 linux 用户,而且是云服务器,这个看起来需要图形界面
    Kimen
        6
    Kimen  
       2021-08-31 10:35:10 +08:00
    Emmm……zsh 有啥迁移成本?
    Cabana
        7
    Cabana  
       2021-08-31 10:37:24 +08:00   1
    @zhhanging #1 试了下,很不好用,而且好像和 tmux 有冲突
    TangMonk
        8
    TangMonk  
       2021-08-31 10:41:03 +08:00
    FIshshell
    xlsepiphone
        9
    xlsepiphone  
       2021-08-31 11:20:25 +08:00
    工作这么多年了,出了写写 shell 脚本,我基本上从来不用 bash

    fish 才是未来
    plko345
        10
    plko345  
       2021-08-31 11:55:25 +08:00 via Android
    我也想知道,这种到 stackoverflow 问可能有人知道
    hicdn
        11
    hicdn  
       2021-08-31 11:56:38 +08:00   1
    用 fzf
    输入两个 * 号,然后按 tab,就可以搜索或者用方向键选择
    Kobayashi
        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 配置连千行都没有,那可能就是一般人。
    Kobayashi
        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 **,但并不是针对所有命令,只能补全几个命令。
    SSang
        14
    SSang  
    OP
       2021-09-01 12:04:53 +08:00
    @Kobayashi 第二张图是我自己在 vim 截下来的( YCM 插件),只是想体现一下我想要实现的效果,可能我没说清楚,(别人的终端补全我只是有看到过,但是没有图)

    我昨天已经尝试了 fzf,已经 99% 确定当时我看到的就是 fzf 。“补全当前目录下文件” 对我来说就足够了(我一开始的需求也只是想要解决中文路径切换输入法的问题,而且 fzf 能实现的也不止这些)
    SSang
        15
    SSang  
    OP
       2021-09-01 12:05:14 +08:00
    @Kobayashi

    针对你后面的几个问题:

    shell 的选型本身就是个复杂的过程,也许今年 zsh 流行,明年又来个 xsh,后年又来个 ysh,你还需要考虑配置方式,配置难易度,系统间是否统一等等,就算是 zsh/fish 之中选择一个,也不是能够轻易决定的。再者,就算没有迁移成本,也有学习成本。就像是 vim,明明各种性能问题,本身一键就能迁移 nvim,甚至很多 ide 都支持了 vim,还很多特别的功能,但还是很多人在使用 vim 总是有原因的(亲儿子也是一个重要的原因)。

    以及我的 bash 配置真的有千行,而且本身有多个服务器,每个服务器还配置了不同的 bash,我觉得当你听到我说 bash 迁移有成本的时候就应该考虑到我不是一般人了。如果不能像 vim 到 nvim 那么容易迁移,我是不会轻易尝试的。
    SSang
        16
    SSang  
    OP
       2021-09-01 12:08:02 +08:00
    PS:我在问 bash 有什么办法,还明确指出了我已经知道了 fish/zsh 能实现,还有人要在底下复读,还要顺便阴阳怪气说有个毛线的迁移成本,反正我是不能理解有什么意义。
    SSang
        17
    SSang  
    OP
       2021-09-01 12:49:00 +08:00 via Android
    言语过激,请见谅
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5625 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 01:45 PVG 09:45 LAX 17:45 JFK 20:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86