Fw: [心得] 命令列上的互动模糊过滤工具介绍

楼主: changyuheng (张昱珩)   2017-03-20 23:37:52
※ [本文转录自 Soft_Job 看板 #1OpuCUzP ]
作者: changyuheng (Henry) 看板: Soft_Job
标题: [心得] 命令列上的互动模糊过滤工具介绍
时间: Mon Mar 20 15:21:48 2017
下面这篇文章已经把介绍写得很详细了,我就不再赘述。推荐大家看看:
http://www.cnblogs.com/bamanzi/p/cli-narrowing-tools.html
发这篇文章主要的目的是针对 cd 的加速。
不知道大家会不会常常在 cd 路径的时候,
只大概记得在哪里或是记得在哪里但是目录很深懒得打全。
这个时候 fzf 就很好用:
https://github.com/junegunn/fzf#fuzzy-completion-for-bash-and-zsh
只要执行 cd **<TAB> 即可叫出交互式模糊搜寻接口,
找到目标之后按二次 <ENTER> 就可以进入该目录。
但是它有一个缺点,就是它虽然已经很快又有快取,
而且还让你用 ag 或 pt 把 find 换掉来让它依 CPU thread 数平行遍历目录变得更快;
https://github.com/ggreer/the_silver_searcher
https://github.com/monochromegane/the_platinum_searcher
当搜寻的范围中有 AOSP (Android 的 source code) 这种大咖时,还是慢;
就算不慢,资讯量也太大了。
于是乎,有人就想,如果能替曾经去过的目录们建 MRU 表,
以后切目录时如果确定有去过,从这张表搜寻就好,就会很快资讯量也不会太大。
这个功能有好几个人做,目前最有名的是 z:
https://github.com/rupa/z
但是--总是要有点波折,不然就不用发这篇文了--,
z 虽然也有支援 tab completion,可是它只支援 substring filter,
而且不是互动的。
z 在超强的 fish 下使用倒是还好,因为 fish 的选单有互动搜寻接口,
https://github.com/fish-shell/fish-shell
不过这是当然的,因为它就是主打这个功能才会叫 friendly interactive shell 啊!
可是 fish 没事干嘛改 syntax 呢……
还有 process substitution ㄌㄟ?
所以大多数人还是继续用 Bash 或 zsh。而且 zsh 有一个知名的脏 framework……
咳,知名的 framework 叫 oh-my-zsh,
把它装下去之后就能让你的 zsh 跟 fish 有 87% 像啊!
但是!就是这个但是让我花了点时间!它的 tab completion 还是不能互动搜寻啊!
我知道有人想说 zaw 对不对?
https://github.com/zsh-users/zaw
可是 zaw 的选单不是 TAB completion 啊!
到目前为止,有 z 有 fzf,材料都齐了,就是没人把它们兜在一起。
于是我牺牲了一点宝贵的周末把它们逗起来,下面是示意图:
https://raw.githubusercontent.com/changyuheng/fz/master/fz-demo.gif
如果你觉得不错,这个工具解决了你的问题,可以参考这个安装说明安装:
https://github.com/changyuheng/fz/blob/master/README-zh.md
然后,在 GitHub 专案页面给个星吧!
作者: jennya (Jennya)   2016-03-20 17:21:00
好像不错
作者: g12288 (史蒂芬)   2016-03-20 18:58:00
厉害推
作者: dannypsnl (秦书)   2016-03-20 20:06:00
作者: bootleq   2016-03-20 21:10:00
讲 omz 脏就是要推
作者: scotthsieh (Scott)   2016-03-20 22:55:00
想问omz脏的点?
楼主: changyuheng (张昱珩)   2016-03-20 23:37:00
破坏套件的版控
作者: dryman (dryman)   2017-03-21 23:57:00
请说明这跟编辑器的关系
作者: wgst88w (清楚明“熙”)   2017-03-22 23:10:00
WSL居然OK~

Links booklink

Contact Us: admin [ a t ] ucptt.com