本文首發於微信公眾號——世界上有意思的事,搬運轉載請註明出處,否則將追究版權責任。微訊號:a1018998632,交流qq群:859640274
用mac已經有了一段時間了,作為一個愛折騰(懶)的程式設計師,我花費了大概一週的時間將自己的mac打造成了一個超高效率的工作工具,先展示一下其中的一個成果。
- 上面這個圖是一鍵退出某些工作app,然後準備進入windows虛擬機器工作
- 本來還有一個gif,但是太大了,所以直接放成視訊,有興趣可以看看:一鍵進入工作
一.如何構建你自己的快捷鍵體系(理論,如果不想看,可以跳過這一章直接看下一章實踐)
我們都知道快捷鍵可以使得手不離鍵盤,這樣一來就能減少鍵鼠(觸控板)之間的切換,從而提高效率。但是不同的軟體的快捷鍵不同,不同平臺之間(windows、mac、linux...)的快捷鍵也不同,那麼如何一勞永逸的使用一套快捷鍵通吃所有軟體個平臺呢?
1.讓所有平臺遵循一個規範
正如我們前面所說,平臺有好幾個,所以首先我們得確定一個平臺作為基點。我是從windows平臺過渡到mac上面來的,之前的快捷鍵習慣不想改了,所以各種快捷鍵標準向windows看齊。(我想大多數人都是這樣的,所以具有一定的適普性)
2.觀察軟體,找到共性
無論是window還是mac通過觀察各式各樣的軟體,我們都能看見有下面這些操作方面的共性,下面以Mac的軟體為例
- 1.仔細觀察軟體們的頂部選單我們會發現,檔案(file)、編輯(edit)、顯示(view)、視窗(window)、幫助(help),這些條目是大部分app共有的(當然可能名字不同)除去幫助,我們還有四個條目可以下文章:
- 1.檔案(file):
- 1.開啟新標籤頁、開啟檔案、關閉標籤頁、儲存檔案,絕大部分app都有
- 2.編輯(edit):
- 1.複製、貼上、剪下、全選、查詢、重做、撤銷、搜尋,絕大部分app共有
- 2.搜尋上一條、搜尋下一條,少部分app共有
- 3.顯示(view):由於每個app的介面佈局不一樣,所以我僅僅舉幾個例子。
- 1.Safari的:顯示/隱藏書籤邊欄、顯示/隱藏閱讀邊欄
- 2.Android Studio、CLion、IDEA:顯示/隱藏各種邊上的工具欄
- 3.Evernote:顯示/隱藏側邊欄
- 4.視窗:
- 1.上一個標籤頁、下一個標籤頁、合併所有視窗,大部分app共有
- 1.檔案(file):
- 2.聯想我們每天需要對app進行的操作:
- 1.螢幕分塊:整個螢幕、左半邊、右半邊、左上四分之一、右上四分之一、左下四分之一、右下四分之一
- 2.最小化、全屏
- 3.關閉軟體
- 4.偏好設定
- 5.前進、後退
3.使用軟體,找到個性
前面是找共性,找完了之後。我們在日常使用軟體的時候會發現,某個軟體的某些功能我們幾乎沒隔多久就會用一次,此時需要將這些特殊的功能提取出來,還是以Mac為例
- 1.Finder:我們會發現某些目錄經常會用到,下載、桌面、使用者目錄、應用程式、檔案...
- 2.Safari:各種書籤
- 3.個人工作的軟體:Android Studio、Photo Shop、IDEA、Sublime、VS Code...的各種專案
4.全域性快捷鍵
對於某些操作是屬於某個app的但是我們需要在所有app中都使用這個功能,此時就要用到全域性快捷鍵
- 1.開啟常用軟體:例如Safari、Finder、Chrome等等,我們常常會互相切換,此時定義一個順手的快捷鍵尤為重要
- 2.某個app的全域性功能:翻譯、記筆記、發郵件等等
5.快捷鍵的型別歸類
我們知道無論是windows還是mac,都有shift、alt(option)、ctrl、win(command),這四個功能鍵。我就按照我的考慮將這些快捷鍵歸個類,因為我的快捷鍵是依從windows來的,所以以windows為例
- 1.shift+字母:輸出大寫,地球人都知道
- 2.ctrl+字母:編輯相關的快捷鍵,如檔案的增刪、開啟、儲存,文字的全選、剪下、查詢等等
- 3.alt(option)+字母:控制相關的快捷鍵,如軟體視窗的增加、關閉,標籤頁的上一個、下一個等等
- 4.win(command)+字母:在mac中其實command鍵的功能就是windows的alt的功能,所以重複了,可以廢物利用成一個後面說的組合鍵
- 5.組合鍵+字母:有兩種用法,用於全域性按鍵
- 1.直接組合:這種組合方式很多,但是每次按起來比較麻煩
- 2.使用工具將一個廢棄的鍵(例如前面說的command鍵,或者fn鍵)代替組合鍵,即按這一個鍵,等於按多個鍵。
二.如何構建你自己的快捷鍵體系(實踐)
1.接下來的實踐是基於以下幾條規則:
- 1.基於MacBook Pro 2017的內建鍵盤
- 2.大部分快捷鍵基於windows的習慣
- 3.小部分快捷鍵基於自身習慣
2.兩個軟體的介紹
- 1.Karabiner-elements:
- 1.功能:可以將鍵盤上的任意兩個鍵進行功能調換
- 2.我的使用:用於將Mac的內建鍵盤的fn與左control互換,左option與左command互換,右command和右option換成了home和end.
- 3.Karabiner-elements下載地址
- 2.Keyboard Maestro:
- 1.功能:可以通過定義一個快捷鍵,實現一系列固定的操作
- 2.我的使用:接下來會按照上一章說的各個操作進行快捷鍵的設定
- 1.複製、貼上、剪下、全選、查詢、重做、撤銷、搜尋、儲存檔案、開啟檔案,以上的操作都遵循windows,都是ctrl+字母。但是我們知道在mac下這些快捷鍵是command+字母,所以需要進行轉換:
- 1.新增一個新指令碼:
- 2.命名指令碼,為指令碼新增一個觸發器(即當進行這個操作的時候,會執行這個指令碼),我這裡使用的是按鍵觸發器,即當按下某些鍵的時候就觸發這個指令碼:
- 3.將ctrl+c填入觸發器中,然後點選新增動作,會彈出動作的列表,可以在上面查詢我們需要的動作:
- 4.我們新增了一個觸發按鍵的動作,並填入了command+c。此時這個指令碼就表示,當我們按下了ctrl+c的時候會觸發command+c按下的動作:
- 5.這樣一來我們可以將上面的全部動作動轉換成以windows平臺為標準的快捷鍵,流程都是一樣的。
- 2.開啟新標籤頁、關閉標籤頁、上一個標籤頁、下一個標籤頁、前進、後退,很多app都會有標籤頁這一概念,例如safari、finder、sublime、Evernote、IDEA等等各種IDE,這些快捷鍵的定義可以根據個人愛好,或者Windows,或者Mac的標準。我經過實踐發現使用alt(按鍵轉換前的command)+方向鍵等,最為適手:
- 1.上一個/下一個標籤頁:alt+左方向鍵/右方向鍵,
- 2.前進/後退:ctrl+alt+左方向鍵/右方向鍵,
- 3.開啟/關閉標籤頁:alt+加號/刪除鍵,
- 4.至於指令碼的定義,和上一節中一致
- 3.開啟邊欄/工具欄之類的操作可以定義成alt+數字,這樣的好處是如果工具欄增多了,可以進行擴充,也方便記憶
- 4.整個螢幕、左半邊、右半邊、左上四分之一、右上四分之一、左下四分之一、右下四分之一、最小化、全屏,像這些功能類似的操作,我們可以製作成一個指令碼集合,通過一個快捷鍵+字母就實現全部的功能:
- 1.新增一個Group:
- 2.在集合中新增第一個指令碼,新增按鍵觸發器,新增重置app視窗大小動作:
- 3.點選上一步新增的動作中的resize by選單,我們會發現選單中有許多功能,足夠滿足我們的需求,我們可以選擇Full Screen:
- 4.此時一個具有將app視窗占滿整個螢幕的功能就誕生了:
- 5.此時只有一個功能,我們可以接著按照類似的操作定義其他功能。有一點要注意的是,這個group下的全部指令碼的按鍵觸發器需要設定成同一個快捷鍵,如圖所示:
- 6.當我們完成了上面的操作的時候,我們可以試著觸發快捷鍵,會發現全部的指令碼都顯示在一個選單中,而我們只需要通過按一個字母選擇一個指令碼觸發就行了:
- 5.開啟常用軟體、開啟不常用軟體、關閉當前軟體,這些就簡單說說,因為也就是一個動作就能搞定的功能
- 1.開啟常用軟體:
- 2.開啟不常用軟體:可以使用指令碼集合來減少快捷鍵的數量
- 3.關閉當前軟體:
- 6.在Finder中快捷開啟某個資料夾,這個功能比較複雜。我們前面都是在一個指令碼中只使用一個動作,在這裡我們可以按順序執行一系列動作以完成這個複雜的功能:
- 1.先將Finder調為當前應用
- 2.使用一個計時器,停止執行指令碼直至Finder已經是當前應用
- 3.觸發快捷鍵ctrl+G,大家開啟Finder可以看見有這樣一個功能前往資料夾...,這裡就是觸發這個功能:
- 4.再觸發一個delete鍵,將當前的路徑刪除
- 5.在**前往資料夾...**視窗中填入目標路徑
- 6.觸發return,這樣一來就到了目標資料夾
- 7.當然如果資料夾多了的話,可以使用指令碼集合,同理更多的功能都可以像這樣由一個個的小功能疊加起來
- 1.複製、貼上、剪下、全選、查詢、重做、撤銷、搜尋、儲存檔案、開啟檔案,以上的操作都遵循windows,都是ctrl+字母。但是我們知道在mac下這些快捷鍵是command+字母,所以需要進行轉換:
- 3.KeyBoard Maestro下載地址
三.為快捷鍵體系新增更多功能
如果說我對Keyboard Maestro有不滿意的地方,那麼就是圖形介面太少。對於如何製作搜尋的功能我根本無從下手。這個時候Alfred拯救了我,我想很多人都用過這個軟體,相關的介紹也很多了,所以接下來我只說別人沒說過的。
1.我的外掛
當然我搜集了很多外掛,其中有些經過了我自己的改造,現在放出來給大家使用。
- 1.Things:可以和things結合快速定義日程
- 2.NetWork:可以檢視wifi列表並連線wifi
- 3.ItermFinder:可以在Finder和Iterm之間互相開啟路徑
- 4.Top:檢視前幾名記憶體的應用
- 5.Restart:重新啟動應用
- 6.Kill:直接將應用殺死
- 7.Fakenum:獲取測試資料
- 8.Ip:獲取當前電腦的ip
- 9.HiddenFile:顯示或者隱藏 隱藏檔案
- 10.EverNote:直接填寫筆記,或者查詢筆記
- 11.Douban:在Douban上查詢電影、音樂、書籍評分
- 12.Dash:在Dash中查詢
- 13.Copy Url:拷貝當前網頁的url
- 14.BiliBili:在b站查詢
- 15.Baidu:在百度中查詢,會提前顯示條目
- 16.AboutMac:檢視mac的資訊
- 17.知乎:在知乎中查詢,會提前顯示條目
- 18.有道翻譯:查詢翻譯單詞意思,還可以說出英文
- 19.ADB:做android的會知道,進行ADB的操作
2.將Alfred與Keyboard Maestro相互整合
這裡我預設大家對Alfred已經有了一定的瞭解,如果真的不瞭解的話可以看看這個教程。少數派的Alfred教程
- 1.Alfred的劣勢:相較Keyboard Maestro的眾多動作,Alfred的動作比較少。就例如一個簡單的模擬按鍵按下都需要AppleScript來實現,更別說更復雜的動作。
- 2.Keyboard Maestro的劣勢:
- 1.前面已經提到了一個,KM沒有方便的搜尋介面。
- 2.Alfred可以更方便的執行pyhotn、php等指令碼語言的指令碼
- 3.Alfred和Keyboard Maestro的互相呼叫:只要能夠互相呼叫就可以方便的將兩個軟體進行結合
- 1.Alfred調KM:其實我們知道KM目前絕大部分的入口是快捷鍵,所以我們可以在Alfred中使用一個模板AppleScript來觸發快捷鍵從而呼叫KM:
- 1.建立一個Alfred的Workflows,填寫一個keyword觸發器:
- 2.建立一個指令碼執行器:
- 3.填寫執行程式碼,很簡單1、3行是預設的不用修改,第2行前面的osascript是預設的,後面的是AppleScript的路徑:
- 4.構造模板AppleScript也很簡單,1、3行不需要改變,第二行的數字代表字母,大括號內可以填寫四個功能鍵。所以這一個指令碼的意思就是,按下alt(option)+37表示的字母。點選檢視陣列代表的字母:
- 5.至此我們就能很方便的在Alfred中呼叫KM
- 2.KM呼叫Alfred:這個就簡單了,因為Alfred的是快捷鍵和搜尋視窗,所以可以通過之前的教程很方便的構建指令碼來呼叫Alfred
- 1.Alfred調KM:其實我們知道KM目前絕大部分的入口是快捷鍵,所以我們可以在Alfred中使用一個模板AppleScript來觸發快捷鍵從而呼叫KM:
3.Alfred下載
四.其他軟體以及Tips
- 1.PopClip:
- 2.Evernote:
- 1.使用:可以通過KM將快速筆記的功能整合進入快捷鍵體系中:
- 2.功能:
- 1.迅速記錄文字,而不需要對應用進行切換
- 2.通過前面的Alfred外掛聯動,可以方便的查詢筆記
- 3.Dash:
- 1.程式設計師的寶典,通過前面Alfred外掛的聯動,方便查詢Api
- 2.軟體下載
- 4.AirMail:
- 1.比原生郵件更方便的郵件客戶端,可以方便的整合進入快捷鍵體系
- 2.軟體下載
- 5.MindNode:
- 1.簡約方便的思維導圖應用,可以通過PopClip的外掛md2mm,直接將md的文章轉化為思維導圖
- 2.軟體下載
- 6.Parallels Desktop:
- 1.Mac下面最好的虛擬機器,可以通過KM定義指令碼的方式,在Mac和Windows之間切換
- 2.[軟體下載](www.sdifen.com/pd132.html
不販賣焦慮,也不標題黨。分享一些這個世界上有意思的事情。題材包括且不限於:科幻、科學、科技、網際網路、程式設計師、計算機程式設計。下面是我的微信公眾號:世界上有意思的事,乾貨多多等你來看。