之前我寫過一篇關於提高 Mac 開發效率的文章,裡面介紹了很多大幅度提升Mac開發效率的方法,遺憾的是那篇文章裡並沒有介紹 Alfred 這款神器。
然而轉念一想,即使那篇文章帶上 Alfred 或者其他別的應用,都不能改變最本質的東西:我們只是一個被動的使用者,我們只能嘗試著去學習、使用這些現有的工具。我們的程式設計技能並沒有提高自己的效率,反而在這些本該提升提升效率的工具上花大量時間去適應。
所以今天這篇文章的主題,將會是主要介紹透過 Alfred 打造自己的 workflow,然後將自己工作中那些無聊機械的重覆性工作全部用自動化指令碼取代。我會提供兩個示例外掛:
-
快速開啟&關閉 shadowsocks 連線
-
截圖後快速上傳到七牛
他們使用不同的技術製作而成,但宗旨只有一個:“找到一切可以被自動化的流程並且用指令碼來完成”,都開源在我的Github。
workflow 是 Alfred 中最強大的部分,它能把常見工作轉變成一個工作流。
很多人會使用 GoAgentX 和 shadowsocks ,它的功能無需多言,然而在使用過程中卻必須有大量的關閉和連線操作,相當令人煩惱。
為了免去移動滑鼠並點選這麼令人懊惱的操作,我們可以透過命令的方式來進行開關,如下圖所示:
這其實類似於按鍵精靈的思想,因為我們希望有人能自動點選那個連線按鈕或者關閉按鈕。這種情況下可以考慮使用 AppleScript。它的作用是方便我們和程式進行交流,從而執行一系列程式內建的操作指令。
這裡我不想自己介紹它的語法,因為實在是太白話了,文末的參考資料中也有詳細的解釋。來看一下第一個外掛的指令碼:
如果你略具備程式設計經驗,你一定會好奇這行程式碼是怎麼寫出來的,以及他們的語法是什麼:
首先開啟系統應用:指令碼編輯器(Script),然後選擇 檔案->開啟字典,找到 GoAgentX 這個應用,你就會發現所有的語法都在這裡了:
所以,有心的開發者日後在自己的應用中也可以考慮新增對 AppleScript 的支援。
如果是和外部程式互動,比如網路請求,檔案讀寫,執行 bash 指令碼等等,就不再適合使用 AppleScript 這麼簡單的指令碼了,推薦使用 Python 進行程式設計。
長久以來,寫部落格時把圖片上傳到圖床一直是一個繁瑣的任務:
-
截圖
-
開啟截圖儲存目錄,複製圖片
-
去七牛上傳
-
複製 url
-
貼上到 markdown 文字中
透過 workflow,我們可以把上述步驟簡化為簡單的三步,省略大量時間:
-
Command+Ctrl+A 截圖(圖片不要儲存在本地,存在剪貼簿中即可)
-
在 Alfred 中輸入
gn
-
圖片會自動上傳,並且把 Url 複製到剪貼簿中,你只要按下 Command + V 即可
具體的實現也不複雜,由於已經開源所以就不分析了,簡單介紹一下用法:
-
首先執行在 Alfred 中輸入
qnconf
,後面要加上 AK 和 SK,這是你的金鑰,可以從官網獲取,輸入如下:
qnconf xxx xxx
-
在 workflow 外掛的檔案夾中,有一個
conf.txt
檔案,你需要開啟它,設定上傳到哪個 bucket,以及你的圖床字首,可以根據我現有的檔案做修改。 -
使用時,確保剪貼簿中有圖片,在 Alfred 中輸入
qn
後面也可以指定一個引數名,表示上傳圖片的名稱。如果不寫則預設是當前時間戳。 -
執行後,圖片的 url 已經複製在你的剪貼簿中了,盡情使用吧。
這篇文章的目的不是介紹 workflow 的開發,也不是介紹 Python 的語法,這些資料網上應有盡有。
學習一門指令碼語言,結合一個偉大的應用,大幅度提升自己的效率,這種一舉兩得的事情實在是再美好不過了。
-
AppleScript的終極入門手冊
-
Alfred workflow 開髮指南
-
pngpaste
作者:bestswifter
連結:https://juejin.im/post/5a309c376fb9a0450a67549e
————近期開班————
馬哥教育2018年Python自動化運維開發實戰面授班2018年3月5號開班,馬哥聯合BAT、豆瓣等一線網際網路Python開發達人,根據目前企業需求的Python開發人才進行了深度定製,加入了大量一線網際網路公司:大眾點評、餓了麼、騰訊等生產環境真是專案,課程由淺入深,從Python基礎到Python高階,讓你融匯貫通Python基礎理論,手把手教學讓你具備Python自動化開發需要的前端介面開發、Web框架、大監控系統、CMDB系統、認證堡壘機、自動化流程平臺六大實戰能力,讓你從0開始蛻變成Hold住年薪20萬的Python自動化開發人才。
10期面授班:2018年03月05號(北京)
掃描二維碼領取學習資料
更多Python好文請點選【閱讀原文】哦
↓↓↓