V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
JettChen
V2EX  ›  分享创造

QALI (Quick Aliasing): 用 Rust 实现了个命令简写和脚本管理工具

  •  
  •   JettChen ·
    JettChenT · 2022-08-30 15:56:03 +08:00 · 1812 次点击
    这是一个创建于 839 天前的主题,其中的信息可能已经有所发展或是发生改变。

    具体安装与操作方式请见 github 以及演示

    我编写该工具主要是为了解决个人平常命令行中遇到的以下问题:

    1. 较长的指令输入麻烦 /记不住 eg. tar -xvf.....
    2. 可以通过 alias {a}={b} 快速缩短指令,不过是在 session 内暂时储存的
    3. 可以通过编辑 .zshrc, .bashrc 等设置,但是删、查、改以及迁移(eg. bash->zsh) 极为不方便
    4. 想要全局访问自己写的 python/shell 脚本有点复杂,且不好维护
    5. 在系统的命名空间设置 alias 以及添加自己的程序时容易和系统已有的指令冲突 (参考 start all your commands with comma )

    QALI 包含两个指令: q(常用操作) 和 qali(管理操作),并解决了以上每个问题:

    1. eg. q -s untar "tar -xvf" 设置简写,并使用 q untar {文件名} 快速运行指令
    2. qali 将命令简写储存在本地文件夹内,不会丢失
    3. qali list 查看所有假名; qali remove 删除假名; qali select 通过 fuzzy select 查找指令
    4. eg. q -s hi ./hello.py :自动识别 Python 脚本,并可以在任意地点通过 q hi 全局执行脚本 (目前还支持 shell)
    5. 在 QALI 里面设置的命令不会和系统命名空间冲突,q {...} 命名空间有且仅有用户自己设置的命令简写

    写这个工具的同时也发现 github 上面有一些功能类似的项目,以下是一个对比:

    • navi: 侧重于使用他人写的 cheatsheets, 要通过手动编辑文件管理指令
    • espanso: 功能非常全面,也支持添加脚本,要通过手动编辑文件管理指令且使用图形界面
    • zsh-abbr: 包含了快速的设置和执行功能,但是没有自己的 namespace, 且只支持 zsh

    欢迎各位在下方评论提建议以及在github上合作!

    7 条回复    2022-09-02 18:22:40 +08:00
    lingly02
        1
    lingly02  
       2022-08-30 16:12:03 +08:00
    不错,我建议在输完 q untar 之后,打空格或 tab 自动展开为 tar -xvf
    JettChen
        2
    JettChen  
    OP
       2022-08-30 18:56:08 +08:00
    @lingly02 ok 谢谢~ 系统 API 允许的话是可以加这个功能。
    fzdwx
        3
    fzdwx  
       2022-08-30 19:52:48 +08:00
    这个好像跟 shell 的 completion 有关系。
    masker
        4
    masker  
       2022-08-30 20:04:50 +08:00 via Android
    写一个直接管理当前 alias 的不就好了吗
    JettChen
        5
    JettChen  
    OP
       2022-08-30 20:29:53 +08:00
    @masker 没有直接管理当前的是考虑到会和系统的 namespace 冲突,以及后面得要可扩展性地加入更多运行时执行的功能。
    Alan3
        6
    Alan3  
       2022-09-02 10:46:34 +08:00
    Bug:Centos 7 , "Select an alias" 的时候 Ctrl+C 退出后,shell 光标会消失,使用 `echo -e "\033[?25h"`后恢复。
    encro
        7
    encro  
       2022-09-02 18:22:40 +08:00
    alias 解决了我的问题,
    zsh 插件我都研究不过来了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3542 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:56 · PVG 08:56 · LAX 16:56 · JFK 19:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.