你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 【干貨】如何大幅度提高Mac開發效率

【干貨】如何大幅度提高Mac開發效率

編輯:IOS開發基礎

20151211100519949.jpg

本文授權轉載,作者:bestswifter(簡書)

本文是視頻直播的文字整理,錄像:


關於 Mac 工作效率的文章一直層出不窮,然而並非所有內容都適合程序員,比如某些 Unix 命令,其實使用頻率非常低。作為一名初級 iOS 程序員,我嘗試著和大家分享一些能夠切實提高我們開發效率的小技巧。

我是無鼠標主義者,任何需要鼠標的操作在我看來都是極為低效的。Mac 的觸摸板非常好用,但是我依然在嘗試避免使用觸摸板。因為雙手保持在鍵盤區域更適合編程。雖然觸摸板不可能被避免(比如浏覽網頁),但我希望至少在 Xcode 中不使用它。

所以,本文會和大家分享一些系統級快捷鍵,Xcode、Chrome、iTerm 等應用中的快捷鍵,以及常用的工具,比如 Vim 和 Git 的使用。這裡面除了 Xcode,其他都是通用的,如果你不是 iOS 開發者,建議自行查閱相關 IDE 的快捷鍵。

綜述

一部分人可能認為,快捷鍵用起來很別扭,還不如自己用觸摸板(鼠標)來得方便。然而你應該意識到,使用觸摸板的效率是有上限的,當你熟悉快捷鍵後,速度遠比現在快得多。

這一點,在學習 vim 時尤其重要。你不應該關注完成一個命令需要多久,而應該關注需要多少個按鍵,你可以認為在形成肌肉記憶後,按鍵的思考時間為0。所以我們得出一個結論:

總時間 = 按鍵數 * 一個常數(表示單次按鍵時間)。

因此,評價 vim 中一個操作的優劣,通常用高爾夫分數來表示,它表示完整這個操作需要幾次按鍵。

但是!!!快捷鍵是提高效率的手段,但它不會提高代碼質量。既要堅持學習,也要適可而止,萬萬不可主次顛倒。

關鍵不在於你學會了多少快捷鍵,而是你有多少工作是可以通過快捷鍵來完成的,目的在於提高效率,僅此而已。

一種很強大,通用的的方法是 設置->鍵盤->快捷鍵->應用快捷鍵 然後精確匹配應用中的快捷鍵名,這個通常需要配合 CheetSheet 來實現。當你覺得某個快捷鍵不好用的時候,也可以通過這種方式去修改。

1171077-48b2857b3b1cc69a.jpg

應用內快捷鍵替換

在設置快捷鍵時,需要避免全局快捷鍵和應用快捷鍵沖突,同時也要注意一些常用操作在多個應用內保持統一。

我建議將 Caps Lock 與 Ctrl 鍵對調,因為大小寫切換鍵的使用頻率非常低,而 Ctrl 的使用頻率顯然高於他,因此有必要將大小寫切換鍵放到最不容易觸碰到的地方。

下面我會介紹一些我常用的快捷鍵,它們大部分是系統自帶的,也有少部分是我自己定義的。

入門

  • 絕大多數應用的 preference 頁面都是通過 Command + , 打開的。

  • 剪切,復制,粘貼,撤銷,重做,光標移動到行首和行尾,這些基礎操作必須掌握。

Snap

相信很多人都有這樣的煩惱:如果應用不全屏,那麼桌面上顯示的窗口太多,每個窗口的顯示內容不夠多。如果應用全屏,那麼切換應用是很麻煩的。要麼用 Command + Tab,要麼手勢滑動,但無論哪一種,時間復雜度都是 O(n)。有沒有 O(1) 的方法呢?答案是使用神器:snap

我主要是以應用首字母或者關鍵字母作為標識,配合 Command + Shift 前綴:

  • Xcode:J

  • Chrome:K

  • iTerm:L

  • Markdown 相關:M

  • QQ:Y

  • 微信:U

  • SoureceTree:S

  • MacVim:V

  • Evernote:E

  • Dock:1/2/3/4:因工作需要,我常用的是備忘錄,郵件,日歷,設置

  • ; 這個鍵我沒有啟用,但它實際上是一個非常方便的快捷鍵。

Dock 欄應用的選擇需要一定的權衡。顯然最快的方式是只按 Command,但是這種全局快捷鍵會導致大量沖突。而 Controll 和 Option 鍵又非常難以觸摸,所以我選擇了 Command + Shift 作為所有應用的快捷鍵前綴。

注意避免字母 o 和 f,它們在 Xcode 中有特殊的用處。

1171077-554331b21ed70d99.jpg

Snap

Xcode 快捷鍵

編譯、運行,Instruments,單元測試,暫停這些基本操作就不解釋了。我把一些自認為比較有用的命令加粗表示:

文件編輯

  • Command + [ 和 Command + ] 左右縮進

  • Command + Option + [ 和 Command + Option + ] 當前行上下移動

  • Command + Option + Left/Right 折疊、展開當前代碼段

文件跳轉

  • Command + Control + Up/Down .h 和 .m 文件切換

  • Command + Control + Left/Right 浏覽歷史切換

  • Command + Control + j 跳轉到定義處

  • Command + Option + j 跳轉到目錄搜索

  • Command + 1/2/3/4/5 跳轉到左側不同的欄目

  • Comannd + Shift + o 文件搜索

搜索

  • Comannd + Shift + f 全局搜索

  • Command + e 搜索當前選中單詞

  • Command + g 搜索下一個

tab

  • Command + t 新建一個 tab

  • Command + w 關閉當前 tab

  • Command + Shift + [ 和 Command + Shift + ] 左右切換 tab

Scheme

  • Command + shift + , 編輯 scheme,選擇 debug 或 release

調試

  • F6:跳到下一條指令

  • F7:跳進下一條指令(它會跳進內部函數,具體效果自測)

  • Control + Command + y 繼續運行

其他

  • Command + k 刪除 Console 中的內容

  • Command + d 打開/關閉 控制台(修改系統快捷鍵:Show/Hide Debug Area)

獲得更全面的快捷鍵介紹,請參考:這篇文章

Vim 常用快捷鍵

入門指南:簡明 Vim 練級攻略

在我的 git 上有一份 Vim 的配置(地址),先下載到 ~/ 目錄下,然後建立軟連接:

rm .vimrc
ln -s .vim/.vimrc .vimrc

推薦一個 Mac 上的 Vim 軟件:MacVim,它比在終端中看 Vim 更好一些。打開 MacVim 後,輸入以下命令安裝插件:

:BundleInstall

進入輸入模式

  • i 在光標前面進入輸入模式,a 在光標後面進入輸入模式

  • I 在行首進入輸入模式,A 在行尾進入輸入模式

  • o 在下一行行首進入輸入模式,O 在上一行行首進入輸入模式

文本操作

  • yy 復制當前行,dd 剪切當前行,p 復制。注意這裡用的都是 Vim 自帶的剪貼板。

  • U 撤銷,**Ctrl + r 重做

  • x 刪除光標所在的字母

  • cae 或 bce 刪除當前光標所在的單詞,並進入編輯模式

  • 數字+命令 重復命令 n 次,比如 3dd

光標移動

  • ^ 到本行開頭,$ 到本行末尾

  • /111 或 111G 跳轉到 111 行,gg 第一行,G 最後一行。

  • e 移動到本單詞的結尾, w 移動到下一個單詞的開頭。

  • % 匹配當前光標所在的括號(小括號,中括號,大括號)

  • * 查找與光標所在單詞相同的下一個單詞

  • f + 字母 跳轉到字母第一次出現的位置,2fb 跳轉到字母 b 第二次出現的位置

  • t + 字母 跳轉到字母第一次出現的前一個位置,3ta 跳轉到字母 a 第三次出現的前一個位置

  • f 和 t 換成大寫,表示反方向移動查找。dt + 字母 表示刪除字母前的所有內容。

舉一反三

  • 比如 0y$,從行首復制到行尾,ye 表示

  • 從當前位置復制到本單詞結尾。

  • a

  • action 可以是任何的命令,比如 d,y,v 等

  • object 可以是 w 單詞,p 段落,或者是一個具體的字母

  • a 和 i 的區別在於 i 表示 inner,只作用於內部,不含兩端。

  • 思考一下,有多少種方法可以刪除光標當前所在單詞?

  • 答案:diw,daw,caw,ciw,bce,bde。

  • 思考一下他們的原理,後兩者不太推薦(有可能跳到前一個單詞)。

  • 如果是選中當前單詞呢?

除了以上基本語法,我還在整理一套 《Vim 基礎練習題》,等完成之後會與大家分享。

實戰

  • 給多行添加注釋:

  • v:進入可視狀態

  • nj: 向下選擇n行, 或者輸入 Shift ] 跳到段尾

  • Command + / 添加注釋

  • 在 MacVim 中,git blame 無比清晰:

1171077-566c74eab1e29886.jpg

Chrome

  • Command + l 焦點移動到地址欄

  • Shift + Option + Delete/Left 向左刪除/選中一個單詞(可以自定義為 Ctrl-w)

  • Command + y 搜索歷史

  • Command + 數字 快速切換 tab

  • Command + shift + [] 左右切換 tab

  • Command + t/w 新建/關閉 tab

  • Command + e/g 搜索選中,前往下一個,或者用 Command + f 和回車。

可以看到,Chrome 中涉及到 tab 的操作應該與 Xcode 盡量保持一致。

iTerm2

  • Ctrl w 刪除前一個單詞

  • Command + r 清除屏幕上的內容

  • Command + t/w 打開/關閉 tab

  • Command + 數字 切換到第 n 個 tab

  • 雙擊 選中一個單詞,自動復制

iTerm 可以通過 Command + shift + [] 來左右切換 tab,也可以通過 Command + Left/Right 切換,後者其實是多余的,而且不符合習慣。

所以參考這篇文章或者自行查閱 Google,在 Preference->Keys->Global Shortcut Keys 中,設置好 Command 加上左右鍵,和刪除鍵的對應操作。

Git

git的本質是對指針的操作。

掌握git的 add、commit、stash、pull、fetch 這些基本操作

理解什麼是本地倉庫,什麼是遠程倉庫,理解多人開發時的 merge 和 conflict 的概念

掌握分支的使用,掌握 checkout 命令的使用

熟練掌握 git rebase 操作,包括 git rebase -i 和 git rebase --onto,掌握一種 git 工作流

Oh my zsh

首先下載 oh-my-zsh 的配置到 ~/ 目錄下,然後在命令行中執行以下操作:

rm .zshrc
ln -s .sys.config/.zshrc .zshrc

然後重啟 iTerm。你可以根據自己的喜好,前往 ~/.sys.config/setting/git.zh 配置 git 命令的別名,比如;

alias gcm='git commit -m'
alias gignore='git update-index --assume-unchanged'
alias gpush='git push origin HEAD:dev;'
alias go='git checkout'

More

據說 Alfred 是效率神器,鑒於我除了寫代碼,一般不怎麼玩 mac,所以也就沒有去了解。如果有更多好的快捷鍵和應用,歡迎與我交流。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved