一直使用Guake 终端,Guake提供的其中一个功能是快速打开。html
大概的意思就是,显示在终端上的数据会通过匹配,若是符合必定的规则,则能够按住ctrl,使用鼠标单击以触发指定操做。python
好比对于一个文件,能够Ctrl+鼠标点击,快速调用vim打开。免去复制粘贴的麻烦。对于我这种,常常须要使用git,vim的人,很是好用。git
默认提供的匹配比较弱,能够本身下载源码后,修改python正则匹配规则,使其正确匹配git log/show/diff 等的输出,这个修改的位置,等另写一篇吧。github
体验了这种便捷以后,开始思考macos
1.如何在没有guake的辅助下,使用相似功能?ubuntu
2.可否更便捷?vim
最开始的想法是,设法在ubuntu默认终端支持相似功能。但很快否决了,一是不知道怎么作比较好,二是我不必定会使用ubuntu的默认终端,我可能会从各类其余的ssh工具中登录,好比macos的终端,win10的内置ubuntu,甚至手机上的ssh工具。服务器
那么,这个功能仍是要实如今服务器上,这样无论从哪里登录,均可以使用。ssh
那么初步的想法就是,捕获全部的终端输出,识别出其中的文件,并作上标记,好比在每一行的行首打印一个数字,以此数字关联到那一行识别到的文件。这样就能够在后续命令中,使用简单的数字,代替复杂的长路径+文件名。工具
基本的想法有了以后,仍是要先搜索下,看是否已经有现成的工具。
通过一番搜索,没有找到同样的,但找到了fpp, 即Facebook PathPicker .下载试用了一下,仍是挺好用的。大概的作法是,将输出经过管道传给fpp,fpp会识别其中的文件名,并相似于输入git 输入commit信息通常,打开一个新的交互页面。在这个界面中,能够经过键盘操做,标记一些文件,最终对这些选中的文件进行操做。更具体的,能够到github页面去看介绍,有简单的视频演示。github页面https://github.com/facebook/pathpicker/
看起来,fpp仍是很棒的。但对我来讲,仍是本来的想法,用起来会跟舒服一些。由于
1.若是使用在输入上作标记的形式,跟本来的使用习惯较为符合。运行了git status/show 等命令后,若是不想进一步打开某个文件,则可正常继续操做。而若是导入fpp,则会打开一个新页面。
2.感受fpp打开页面进行标记的操做,仍是麻烦,更适用于须要一次选择不少文件的情形,而我平常工做,常常是只须要进一步操做其中的一两个文件 。
那仍是要本身动手,丰衣足食了。不过既然有fpp这么好的轮子了,仍是要用起来,识别文件这个重任就交给fpp了,毕竟已经作得这么完善。
最终的成果,PathMarker.py,将输出经过管道,传给PathMarker.py set,便可打印处理后的输入,对于识别到文件的行,加上一个数字标记。
使用PathMarker.py get xxx, 便可将xxx中的数字,替换为以前get到的文件,并运行xxx.
这么说,还不太好理解,到这里看视频演示吧 https://github.com/zqb-all/PathMarker
本来的流程
git status/show/log ---> 输入“vim ” ---> 手离开键盘,使用鼠标 ---> 使用鼠标选中须要打开的文件(ubunru环境下选中即复制) ---> 粘贴 ---> 手离开鼠标,回到键盘 ---> 回车,打开文件
git status/show/log ---> 根据看到的文件,手工输入文件名打开,即输入vim xxx (无需鼠标,但须要本身输入完整的路径+文件名)
使用guake快速打开功能以后
git status/show/log ---> 手离开键盘,使用鼠标 ---> 左手按住Ctrl,右手使用鼠标单击须要打开的文件 ---> 手回到键盘开始编辑
使用fpp
git status/show/log | fpp ---> 在fpp打开的界面中,选中所需文件 ---> 肯定,打开对应文件 (无需鼠标)
使用PathMarker
git status/show/log | PathMarker.py set ---> PathMarker.py get vim + 所需打开文件对应的数字(无需鼠标)
欢迎下载试用。
原文地址:https://www.cnblogs.com/zqb-all/p/9610792.html