命令行工具PathMarker

一直使用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

相關文章
相關標籤/搜索