適用於鍵盤流、懶人、強迫症患者以及碼農的究極Mac使用指南

何時夕發表於2018-10-14

本文首發於微信公眾號——世界上有意思的事,搬運轉載請註明出處,否則將追究版權責任。微訊號:a1018998632,交流qq群:859640274

一、前言

使用 Mac 已經有一年左右的時間了,這一年裡我常常想著如何使用 Mac 來提升自己的工作效率。最近總結了一下這一年以來的積累,在這裡整理成文章的形式放出來,希望能給大家一些幫助。

再次宣告:本文是給一些喜歡折騰提升效率的、希望成為鍵盤流選手的、懶惰得不願意多移動手指的、有嚴重的強迫症的人提供一些經驗和幫助的。所以意義黨、不分青紅皁白黨、鍵盤俠黨可以點選叉叉了。

二、正確的使用鍵盤

鍵盤是我們在使用電腦時最常用的輸入資訊工具,所以第一步就是從鍵盤定製開始,將鍵盤的使用效率最大化。

1.練就正規的打字指法

如果要問我這幾個月來做的比較有成就感的事情有哪些,我絕對會加上將雙手二指禪糾正成了正規指法這件事。我其實在前面的一篇文章中提到過打字速度這件事情。在我看來練就正規的打字指法有以下好處:

  • 1.打字速度會比原來高接近一倍,就拿我來說。雙手二指禪的時候我的打字最高速度是30陌生英文單詞/分鐘,這個速度也就一般般吧(當然如果聊天的話會更快)。我糾正指法用了兩週,到現在我打字速度已經可以達到50陌生英文單詞/分鐘,這裡的提升是顯著的。
  • 2.打字速度不僅會變快,還會有持續提升的空間,使用雙手二指禪之前我也練過一些提升速度的練習,但是指法其實是我當時提升打字速度的瓶頸,練來練去沒啥長進。有了正規指法之後,其實指法已經不是提升打字速度的瓶頸了,用的越久你會覺得打字速度越快,一般人時間可以達到80陌生英文單詞/分鐘
  • 3.糾正指法也是一個體現你是否願意為提升自己而做出改變的事情,糾正指法的是一個有點難受的過程,這個過程其實也是一個逃離舒適區的過程。
  • 4.最後一個好處就是你可以輕鬆的學習我後面對 mac 做出的一些定製,如果不是正規指法的話學習歷程可能會難一點。

說了這麼多怎麼才能練就正規的打字指法呢?戳這裡吧:typingclub,注意這不是廣告,這是一個外國的練打字的網站。

2.縮小鍵盤區域

有了標準的指法,其實還有一個好處剛剛沒說:就是手的姿勢就不用經常變化了。但是有同學會說:你騙人!誰說不會經常變化,難道你不需要按刪除鍵上下左右鍵~鍵等等邊緣按鍵了嗎?我當然要按,不過我不需要移動手的姿勢就能按到,這也是我這一節要說的東西。

鍵盤區域.jpg

上圖就是我目前的鍵盤配置了,我一個個為大家來解釋:

  • 1.首先紅的的框框圈出來的都是我目前絕不會使用的按鍵(fn 應該一個多月會用上一兩次吧。刪除鍵,在剛進系統打錯了密碼時會用上),而黃色框框圈出來的就是用於替代那些廢棄的按鍵。這樣一來你會發現,不管你怎麼打字手都會保持著一個姿勢——標準的指法姿勢這樣的方案對於我這麼一個有極強的強迫症和完美主義的人來說是極具吸引力的。

  • 2.接下來我來介紹一下具體的替代方案:

    • 1.fn 鍵用處極少,具體要使用的地方:比如一些 ide,可以在系統中設定將鍵盤頂部的觸控式螢幕直接顯示為 f1-f12
    • 2.我們可以看見鍵盤上的 command 和 option 這兩個鍵都有一對分佈在鍵盤的左右。其實這在我看來是非常冗餘的,正好整個鍵盤上面沒有 home 和 end 鍵(這兩鍵在碼字的時候非常有用),所以可以直接替換掉。在替換掉之後,這兩個鍵也可以像字母數字鍵一樣被當做功能鍵墜飾來使用。
    • 3.control 鍵廢除,因為如果想不改變手的姿勢來按 control 那麼按的時候極其費力。故將其廢除,然後用 caps lock 鍵來代替它。而 caps lock 鍵就可以用 shift 鍵來替代,這樣一來 control 鍵就變得觸手可及了。
    • 4.有了觸手可及的 control 鍵,接下來我們就可以對剩下的廢棄鍵進行改造了:使用 control + 黃框中的鍵代替紅框中的廢棄鍵
      • 1.control + hjkl 這幾個鍵用來替換上下左右鍵此時如果你用過 vim 就會知道我為啥要這樣設計了,因為在 vim 的普通模式下,就是這樣移動游標的。而 vim 是上古時期鍵盤中沒有上下左右鍵時就已經存在的軟體,對於一個程式設計師來說 vim 應該是非常需要掌握的。當然shift + 上下左右鍵可以用control + shift + hjkl來替換,有些人會說原本 control + hjkl 帶來的快捷鍵咋辦呢?這個我會在後面講快捷鍵的章節講到。
      • 2.control + io’ 這三個鍵可以用來替代 -=| 這幾個鍵,同樣 control + shift + io' 也可以用來替代上面幾個鍵的 shift 模式。至於這裡設計的原因其實比較簡單:一個是因為我在盲打的時候經常按不準這三個鍵。另一個則是因為這三個黃框鍵的相對位置與三個紅框鍵的相對位置相似,便於在距離減小的基礎上進行肌肉記憶。
      • 3.還剩下 delete、esc、~ 這三個鍵,這裡我分別用 control + enter [ home 鍵來替換他們。
        • 1.detele 的替換是因為其按的時候手指一動幅度過大,而替換成 control + enter 可以達到與原來敲擊類似的手感。
        • 2.esc 的替換一個也是因為動作幅度過大。另一個原因則是 vim 中可以使用 control + [ 來退出各種模式。
        • 3.至於 ~ 的替換也只是因為敲擊幅度過大而已。
  • 3.如果你是一個程式設計師的話你會發現這裡鍵盤的佈局方式非常像 hhkb 而且更加激進。到了這裡如果最能實現上面的方案的話,一切將會是多麼的和諧(來自一個強迫症患者的狂喜)。當然我真的實現了,而且已經使用了超過一個月的時間了,最終的效果怎麼樣呢?效果就是:當我因為不可抗力使用普通鍵盤的時候我會一直吐槽這鍵盤怎麼設計的這麼傻:),那麼下來我就來說說應該怎麼實現這個方案吧!

    • 1.首先在實現這個方案的時候會用上兩個改鍵軟體,建議先看我之前寫的入門文章:讓你的Mac成為超高效率的工作工具

    • 2.首先要用到的軟體是:karabiner-elements,這個軟體可以直接調換兩個按鍵,如下圖所示:

      • 1.我將 **~ 上 下 左 右 - = **這些按鍵都設定為了 f20,這樣的好處是可以在前期不熟練的情況下,來強制自己使用配置後的按鍵。

      • 2.然後是將 left_command 與 left_option 互相調換了一下,這裡交換的原因其實是之前我想統一 win 和 mac 的快捷鍵使用方式,具體可以參考我之前寫的入門文章。現在的話讀者可以看自己的需要判斷需不需要交換。

      • 3.然後是我將 right_command 和 right_option 變成了 home 和 end,這樣在碼字的時候挺方便的。

      • 4.最後則是將 caps_lock 換成了 left_control。

    karabiner-elements配置.png

    • 3.接下來我們需要用到神器:KeyBoard Maestro,這個軟體非常厲害,簡單來說就是可以通過軟體提供的功能製作各種指令碼以實現一些特別的操作。在後面我們會很頻繁的使用這個軟體,大家一定要去看我前面提到的入門文章,這樣可以很輕鬆的學習後面的定製教程。

      • 1.這裡我預設大家都知道如何使用這個軟體所以就直接上我的配置瞭如下圖:在圖中大家可以看見我對映了各種快捷鍵,這裡要注意一個問題就是,每個配置觸發按鍵的方式都要選擇 is pressed,這樣最終才能實現和普通按鍵一樣的效果

keyboard-maestro鍵盤縮小配置水印.jpg

到這裡整個鍵盤使用方式就說完了,我這裡只是提供了一個比較成體系的鍵盤定製方式。至於最後的效果嘛就交給大家去評判了,反正對於我來說是極大的提升了碼字碼程式碼的效率和舒適度。

三、正確的使用快捷鍵

我們在使用電腦的過程中會使用各種不同的快捷鍵,這也是提升工作效率的方式之一。這一章我就來講講如何正確的使用快捷鍵(使用的方式會超出你的想象)。

1.設計快捷鍵的體系

我們首先來講一講如何從全域性的角度來設計一個快捷鍵的體系

  • 1.我們首先得定義 shift、control、option、command 這幾個鍵的使用場景
    • 1.shift + 字母/數字鍵用於輸入大寫字母或者是符號,shift + 上下左右/home/end用於選中文字。
    • 2.control + 各種鍵可以用於以下幾個場景:
      • 1.剛剛說的鍵盤小型化
      • 2.為了相容 win 的快捷鍵,可以將 mac 的各種編輯鍵從 option 轉移到 control 上面(例如複製、貼上、全選、撤銷等等)。這裡的方案在入門文章裡寫了。
      • 3.在各種具體的應用下面 control 也負責著各種操作,比如我是一個程式設計師我在使用JetBrains全家桶、VsCode等等ide 的時候就會讓 control + ; 來作為撥出命令框的快捷鍵、vim 的一些編輯功能也全部是用 control 來實現的。總的來說就是各個具體應用下的一些功能快捷鍵可以用 control 來實現,至於其中會產生的衝突我們到實現的時候再解決。
      • 4.其實上面這些場景已經差不多會用掉 control 下80%左右的按鍵了,接近飽和。
    • 3.command + 各種鍵主要可以用於除全域性編輯快捷鍵以外的全域性操作
      • 1.開啟資料夾,我們可以定義一些常用的資料夾來通過快捷鍵開啟。注意這裡並不需要每個資料夾都定義一個快捷鍵,所有資料夾都可以用一個快捷鍵解決。這個在入門文章中也有實現方案。
      • 2.定義一些自動化指令碼,多個指令碼也可以使用一個快捷鍵進行觸發。比如我最近定義的指令碼就是自動將 chrome 中的標籤同步到 safari 中。
      • 3.對應用視窗的設定,只要通過一個快捷鍵就能實現將某個應用的視窗佔左一半、佔右一半、占上一半等等精確分割螢幕的操作。
      • 4.快速啟動應用,對於這個操作我是給每個非常常用的應用一個專屬的快捷鍵比如:微信、qq、Android Studio 等等。這樣能達到最大的啟動速度。而對於不是很常用的應用可以只通過一個快捷鍵統一呼叫,這樣速度會慢一點。
      • 5.最後一種使用場景其實和 control 的第三種使用場景相似:也是負責各種具體應用下的各種操作,因為各種應用當然不可能只使用 control 一個按鍵就能操作的過來。
    • 4.option + 各種鍵用的不是很多,因為左手的大拇指比較難按到,所以使用場景比較少
      • 1.mac 原生的複製、貼上、全選、撤銷等等這些全域性編輯按鍵在各個應用下都是 option 開頭的。因為我們前面已經將這些操作對映給 control + 相同的鍵 了,所以這得給它們佔個坑,不能修改,好在option 鍵在本體系中使用場景很少
      • 2.音樂的全域性控制按鍵,這個的話其實是我個人的喜好,大家可以自己看。

2.快捷鍵體系的實現

就像前面說的那樣快捷鍵體系的實現主要是通過 keyboard-maestro 來連線各種 app 最終實現的。我接下來就簡單截圖說幾個實現

  • 1.這裡說一下為什麼一個快捷鍵可以跳轉多個檔案,其實當你按下一個快捷鍵的時候,如果有多個指令碼響應的話,軟體會讓你繼續輸入指令碼名字匹配。

  • 2.開啟資料夾可以通過呼叫 Finder 的功能前往資料夾...,然後提前定義一下要輸入的資料夾的名字來實現。如下圖

開啟資料夾.jpg

  • 3.應用視窗設定可以通過 keyboard-maestro 內建的功能實現

變化視窗.jpg

  • 4.剩下的我就不一一講過來了,我把我的配置貼上來,大家可以下載過來看keyboard maestro 配置

四、正確的使用軟體

前面說了這這麼多比較"重"的東西,現在就來介紹一些有用軟體吧。因為我是一個程式設計師,所以可能對程式設計師來說更有幫助一些。

1.讓你的輸入法不再亂跳

使用 mac 的時候有一個問題常常困擾我:我不想用 mac 預設的輸入法,但是有時候切換應用的時候它就會跳出來導致我又得切換一下輸入法,於是我想有沒有一個軟體能把我的輸入法固定下來呢?有的那就是 keyboard pliot,他可以給每個應用設定不同輸入法,於是你只要都設定成一個輸入法即可。另外有些人會說我想在某些應用裡就只輸入英文,有些應用裡只輸入中文咋辦呢?其實如果你用的是搜狗輸入法就直接能在偏好裡設定。

keyboard pliot配置.png

2.快速切換軟體的補充

前面我們提到了如何快速的切換應用,其實這裡還有一個不完美的地方就是:如果一個應用有很多個視窗的話,那麼之前的方案並不能很好的達到精準切換。所以這個時候就要 contexts 這軟體登場了,它可以通過搜尋找到對應的應用然後進行切換,這樣就補全了我們前面說的情況。

contexts.jpg

3.正確的使用jetbrains全家桶

程式設計師應該知道是啥東西,不管你是寫 java、android、php、js、python還是c++,mac 下面都能使用它們的 Ide。這裡我就分享一下我最近幾個月才學習到的妙招吧:

  • 1.你只要記住一個快捷鍵,就能像使用命令列一樣進行各種操作:記住這個東西他的名字叫Find Action,你可以在快捷鍵對映裡面找到它,接下來你只需要自然而然的記住各種命令就行了。
  • 2.vim 外掛:vim 真的是一個神器,除了我剛開始習慣花了一點實現,到現在為止我覺得我的編碼效率提升了一個檔次。而且在平時編碼的時候使用 vim 這樣有助於統一各個端的編輯方式。這樣跨平臺的時候就會方便很多。
  • 3.還是關於 vim 的東西:這裡就貼一個連線吧 vim 外掛高階配置,vim 外掛可以通過定義來呼叫 IDE 的各種操作。

4.更多軟體

其實到這裡我已經把肚子裡的東西都吐光了,大概是年初的時候我已經在讓你的Mac成為超高效率的工作工具這裡初步分享了我使用的各種軟體,現在這篇文章其實是算進階篇吧。

不販賣焦慮,也不標題黨。分享一些這個世界上有意思的事情。題材包括且不限於:科幻、科學、科技、網際網路、程式設計師、計算機程式設計。下面是我的微信公眾號:世界上有意思的事,乾貨多多等你來看。

世界上有意思的事

相關文章