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

2022-08-30 15:56:03 +08:00
 JettChen

具体安装与操作方式请见 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 上面有一些功能类似的项目,以下是一个对比:

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

1785 次点击
所在节点    分享创造
7 条回复
lingly02
2022-08-30 16:12:03 +08:00
不错,我建议在输完 q untar 之后,打空格或 tab 自动展开为 tar -xvf
JettChen
2022-08-30 18:56:08 +08:00
@lingly02 ok 谢谢~ 系统 API 允许的话是可以加这个功能。
fzdwx
2022-08-30 19:52:48 +08:00
这个好像跟 shell 的 completion 有关系。
masker
2022-08-30 20:04:50 +08:00
写一个直接管理当前 alias 的不就好了吗
JettChen
2022-08-30 20:29:53 +08:00
@masker 没有直接管理当前的是考虑到会和系统的 namespace 冲突,以及后面得要可扩展性地加入更多运行时执行的功能。
Alan3
2022-09-02 10:46:34 +08:00
Bug:Centos 7 , "Select an alias" 的时候 Ctrl+C 退出后,shell 光标会消失,使用 `echo -e "\033[?25h"`后恢复。
encro
2022-09-02 18:22:40 +08:00
alias 解决了我的问题,
zsh 插件我都研究不过来了。

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

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

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

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

© 2021 V2EX