本文是視頻直播的文字整理,錄像能夠在:優酷 上看到html
關於 Mac 工做效率的文章一直層出不窮,然而並不是全部內容都適合程序員,好比某些 Unix 命令,其實使用頻率很是低。做爲一名初級 iOS 程序員,我嘗試着和你們分享一些可以切實提升咱們開發效率的小技巧。git
我是無鼠標主義者,任何須要鼠標的操做在我看來都是極爲低效的。Mac 的觸摸板很是好用,可是我依然在嘗試避免使用觸摸板。由於雙手保持在鍵盤區域更適合編程。雖然觸摸板不可能被避免(好比瀏覽網頁),但我但願至少在 Xcode 中不使用它。程序員
因此,本文會和你們分享一些系統級快捷鍵,Xcode、Chrome、iTerm 等應用中的快捷鍵,以及經常使用的工具,好比 Vim 和 Git 的使用。這裏面除了 Xcode,其餘都是通用的,若是你不是 iOS 開發者,建議自行查閱相關 IDE 的快捷鍵。github
一部分人可能認爲,快捷鍵用起來很彆扭,還不如本身用觸摸板(鼠標)來得方便。然而你應該意識到,使用觸摸板的效率是有上限的,當你熟悉快捷鍵後,速度遠比如今快得多。shell
這一點,在學習 vim 時尤爲重要。你不該該關注完成一個命令須要多久,而應該關注須要多少個按鍵,你能夠認爲在造成肌肉記憶後,按鍵的思考時間爲0。因此咱們得出一個結論:編程
總時間 = 按鍵數 * 一個常數(表示單次按鍵時間)。swift
所以,評價 vim 中一個操做的優劣,一般用高爾夫分數來表示,它表示完整這個操做須要幾回按鍵。vim
可是!!!快捷鍵是提升效率的手段,但它不會提升代碼質量。既要堅持學習,也要適可而止,萬萬不可主次顛倒。xcode
關鍵不在於你學會了多少快捷鍵,而是你有多少工做是能夠經過快捷鍵來完成的,目的在於提升效率,僅此而已。bash
一種很強大,通用的的方法是 設置->鍵盤->快捷鍵->應用快捷鍵 而後精確匹配應用中的快捷鍵名,這個一般須要配合 CheatSheet 來實現。當你以爲某個快捷鍵很差用的時候,也能夠經過這種方式去修改。
在設置快捷鍵時,須要避免全局快捷鍵和應用快捷鍵衝突,同時也要注意一些經常使用操做在多個應用內保持統一。
我建議將 Caps Lock 與 Ctrl 鍵對調,由於大小寫切換鍵的使用頻率很是低,而 Ctrl 的使用頻率顯然高於他,所以有必要將大小寫切換鍵放到最不容易觸碰到的地方。
下面我會介紹一些我經常使用的快捷鍵,它們大部分是系統自帶的,也有少部分是我本身定義的。
Command + ,
打開的。相信不少人都有這樣的煩惱:若是應用不全屏,那麼桌面上顯示的窗口太多,每一個窗口的顯示內容不夠多。若是應用全屏,那麼切換應用是很麻煩的。要麼用 Command + Tab
,要麼手勢滑動,但不管哪種,時間複雜度都是 O(n)。有沒有 O(1) 的方法呢?答案是使用神器:snap
我主要是以應用首字母或者關鍵字母做爲標識,配合 Command + Shift
前綴:
J
K
L
M
Y
U
S
V
E
1/2/3/4
:因工做須要,我經常使用的是備忘錄,郵件,日曆,設置;
這個鍵我沒有啓用,但它其實是一個很是方便的快捷鍵。Dock 欄應用的選擇須要必定的權衡。顯然最快的方式是隻按 Command
,可是這種全局快捷鍵會致使大量衝突。而 Controll
和 Option
鍵又很是難以觸摸,因此我選擇了 Command + Shift
做爲全部應用的快捷鍵前綴。
注意避免字母 o
和 f
,它們在 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
搜索下一個Command + t
新建一個 tabCommand + w
關閉當前 tabCommand + Shift + [
和 Command + Shift + ]
左右切換 tabCommand + shift + ,
編輯 scheme,選擇 debug 或 releaseF6
:跳到下一條指令 F7
:跳進下一條指令(它會跳進內部函數,具體效果自測) Control + Command + y
繼續運行
Command + k
刪除 Console 中的內容Command + d
打開/關閉 控制檯(修改系統快捷鍵:Show/Hide Debug Area)得到更全面的快捷鍵介紹,請參考:這篇文章
入門指南:簡明 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 第三次出現的前一個位置dt + 字母
表示刪除字母前的全部內容。<start position><command><end position>
好比 0y$
,從行首複製到行尾,ye
表示 從當前位置複製到本單詞結尾。<action>a<object>
或 <action>i<object>
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
無比清晰:
Command + l
焦點移動到地址欄Shift + Option + Delete/Left
向左刪除/選中一個單詞(能夠自定義爲 Ctrl-w
)Command + y
搜索歷史Command + 數字
快速切換 tabCommand + shift + []
左右切換 tabCommand + t/w
新建/關閉 tabCommand + e/g
搜索選中,前往下一個,或者用 Command + f
和回車。能夠看到,Chrome 中涉及到 tab 的操做應該與 Xcode 儘可能保持一致。
Ctrl w
刪除前一個單詞Command + r
清除屏幕上的內容Command + t/w
打開/關閉 tabCommand + 數字
切換到第 n 個 tab雙擊
選中一個單詞,自動複製iTerm 能夠經過 Command + shift + []
來左右切換 tab,也能夠經過 Command + Left/Right
切換,後者實際上是多餘的,並且不符合習慣。
因此參考 這篇文章 或者自行查閱 Google,在 Preference->Keys->Global Shortcut Keys 中,設置好 Command
加上左右鍵,和刪除鍵的對應操做。
git 的本質是對指針的操做。
掌握git的 add
、commit
、stash
、pull
、fetch
這些基本操做
理解什麼是本地倉庫,什麼是遠程倉庫,理解多人開發時的 merge
和 conflict
的概念
掌握分支的使用,掌握 checkout
命令的使用
熟練掌握 git rebase
操做,包括 git rebase -i
和 git rebase --onto
,掌握一種 git 工做流
首先下載 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'
複製代碼
聽說 Alfred 是效率神器,鑑於我除了寫代碼,通常不怎麼玩 mac,因此也就沒有去了解。若是有更多好的快捷鍵和應用,歡迎與我交流。