zoukankan      html  css  js  c++  java
  • 命令行工具PathMarker

    一直使用Guake 终端,Guake提供的其中一个功能是快速打开。

    大概的意思就是,显示在终端上的数据会经过匹配,如果符合一定的规则,则可以按住ctrl,使用鼠标单击以触发指定操作。

    比如对于一个文件,可以Ctrl+鼠标点击,快速调用vim打开。免去复制粘贴的麻烦。对于我这种,经常需要使用git,vim的人,非常好用。

    默认提供的匹配比较弱,可以自己下载源码后,修改python正则匹配规则,使其正确匹配git log/show/diff 等的输出,这个修改的位置,等另写一篇吧。

    体验了这种便捷之后,开始思考

    1.如何在没有guake的辅助下,使用类似功能?

    2.能否更便捷?

    最开始的想法是,设法在ubuntu默认终端支持类似功能。但很快否决了,一是不知道怎么做比较好,二是我不一定会使用ubuntu的默认终端,我可能会从各种其他的ssh工具中登陆,比如macos的终端,win10的内置ubuntu,甚至手机上的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

  • 相关阅读:
    POJ 3904 Sky Code [数学]
    UVA 11542 Square [XOR方程组]
    CSS+DIV 设置圆角边框加阴影效果
    取消谷歌CHROME文本框(域)外边框高亮和缩放功能的办法
    IE和火狐CSS透明层兼容写法
    Ubuntu 12.04 amd64 搭建Apache+PHP+Mysql环境
    CSS样式表的优先级别
    css设置透明层
    卸载gnome的命令为
    ubuntu12.04 启动n卡独显方法
  • 原文地址:https://www.cnblogs.com/zqb-all/p/9610792.html
Copyright © 2011-2022 走看看