#修改 #适配 #bash #命令 #shell #设置 #mc-fly

bin+lib rhis

rhis 是基于 McFly 0.8.1 修改以适应我的使用

2 个版本

0.10.1 2023年7月1日
0.10.0 2023年7月1日

#20#适配

MIT 许可证

100KB
2K SLoC

rhis:McFly 的修改版本

rhis

这是 McFly 0.8.1 的修改版本。

rhis 中简化了 McFly 的几个功能

  1. 只包含 Init/Add/Search 子命令,其余两个子命令已被移除。
  2. 只支持已实现 bind-x 的 bash 版本,其他 shell 不再受支持。
  3. 不再支持 vim/emacs 键绑定,唯一支持的是上/下键(太多绑定让我困惑 :) )。
  4. 通过命令行仅支持暗/亮主题和 UI 位置(顶部/底部)的设置。所有其他设置不再受支持,并已删除所有自定义环境变量。
  5. 数据库将不再无限扩展。因此,nn_rank 函数不再支持 overlap_factorimmediate_overlap_factor 参数,并将它们强制设置为 0.0。因此,候选列表与 McFly 可能存在一些差异。除了这两个参数外,所有其他参数应保持不变。

由于这些简化以及某些代码调整,rhis 的代码库大约是 McFly 的一半大小。

以下是某些功能增强

  1. 不再使用磁盘上的临时文件,仅使用 bash 内置命令进行 bash 注入脚本。
  2. 与 McFly 相比,UI 刷屏应该减少,并且候选列表中不再存在命令和时间戳之间的填充。
  3. UI 渲染不再留下痕迹,窗口在调整大小时将正确重绘。长输入命令不会与候选列表重叠(尽管现在输入命令有一个最大长度限制)。
  4. 支持当候选列表超出窗口大小时进行滚动。
  5. 数据库将不再无限扩展,消除潜在的性能问题。
  6. 在 Add/Search 子命令中遇到错误时,rhis 避免恐慌并中断用户的 shell,尽管这还没有完全实现。
  7. 避免添加不存在于 typo 的命令,在尝试查找命令是否存在且可执行时,支持与 bash 相同的引号和转义规则。

用法

在 .bashrc 中,添加以下代码到末尾

eval "$(rhis init --light --bottom)"

或仅禁用浅色主题和底部位置

eval "$(rhis init)"

依赖项

~28–38MB
~627K SLoC