本文由CocoaChina翻譯組成員唧唧歪歪翻譯(博客)
原文:Raizlabs: Zev Eisenberg——Spicing Up Xcode
在第三次Raizlabs Lightning Talks上,我吃了一個Scotch bonnet 辣椒,隨後展示了關於Xcode的13個提示和技巧。如果你錯過了這次討論,或者想了解其中的細節,下面有一個視頻,還有我提到的所有內容的文字版,以及一些額外的東西。
“給Xcode加點料”是受到Hot Pepper Gaming的啟發。Hot Pepper Gaming是YouTube上很有名的一個頻道,內容是很多專業的游戲測評員在吃了超級辣的辣椒之後,是如何測評視頻游戲的。
視頻地址(需翻牆):https://vimeo.com/122111430
Mac 鍵盤符號
首先讓我們再來看一下這些怎麼也記不住的鍵盤符號。
給Xcode加點料——快捷鍵
1、Control+方向鍵:按駝峰移動光標
在編輯器的任何文本中,你可以使用和 ,按字符串的駝峰向前或向後移動光標。舉個例子,如果光標在tableView的最前面,你想把光標移動到table和View的中間,就可以按,光標會向右移動一個駝峰。這還能與OS X中基本的文字導航快捷鍵結合。比如說,按下(control+shift+方向鍵)就可以選擇到下一個駝峰的文字。或者是(control+刪除鍵)來刪除到前一個駝峰。
注意,你可能要禁用OS X中在空格間移動光標的默認快捷鍵,因為它也是和。你可以在系統偏好設置 → 鍵盤 → 快捷鍵 → Mission Control中設置,取消勾選向左移動一個 space 和 向右移動一個 space。
不過遺憾的是,Xcode的輸入框(比如搜索框)並不支持在駝峰間移動光標,OS X系統也不支持。
2、Balance Delimiter
Xcode的這個命令是在Editor → Structure → Balance Delimiter。它會根據當前的選擇,自動選擇下一個最外層的括號裡的內容。這和“在括號裡雙擊會選中括號本身和括號裡的內容”有些類似。下圖展示了這兩種情形。
你可以在 Xcode Preferences → Key Bindings中給Balance Delimiter設置一個快捷鍵,我用的是(command+shift+空格)。
給Xcode加點料——導航
Xcode有很多命令和快捷鍵來支持不同類型的導航。你可以花一些時間看看View,Find和Navigate菜單下面有哪些能用的。試試單獨按住、和一起按住來查看隱藏的命令。
要花幾篇文章才能把全部導航快捷鍵講完,所以下面總結了一些我最喜歡的。
3、在Project Navigator中顯示:
這個快捷鍵會打開左邊欄,顯示Project Navigator,並選中你正在編輯的文件。可以很便捷的查看當前文件在工程中的位置,以及相關文件。
4、顯示文檔:(按住option單擊)
按住option,點擊任何方法都會彈出一個框顯示該方法的文檔。如果你用觸控板的話,也可以三指點擊方法。最棒的是,這個方法也支持你自己的/** documentation comments */(比如用VVDocumenter-Xcode創建的文檔注釋)。
5、打開文檔:(按住option雙擊)
如果你想打開完整的文檔浏覽器查看,按住option雙擊該方法。這對Apple框架的方法很有用,比如說-[UIView isOpaque]方法,有一些詳解在上面提到的彈框中是不顯示的。
6、在另一個編輯器中打開:(command+option+逗號)
當你在main editor中編輯某個文件時,這個快捷鍵會在assistant editor中打開該文件。當你在assistant editor中編輯時,快捷鍵會在main editor中打開同一個文件。當和其他快捷鍵結合時,在不同編輯器中打開文件就很方便。例如,你正在assistant editor中編輯一個文件,你想在assistant editor中打開一個新文件,這時候用這個快捷鍵就能很容易地把正在編輯的文件顯示在main editor中。
7、跳轉到定義處:(按住command+option+control單擊)
和一樣,CLICK會在另一個編輯器中打開該文件。而與不同的是,它打開的是你單擊的符號的定義文件。
8、設置觸控板來更好的導航
OS X觸控板手勢已經公布很長一段時間了。最開始是用三指輕掃來導航:向左掃前進,向右掃後退。後來變成了兩指向相反方向拖拽。這和在OS X Lion中引入的“自然”滾動方向配合的很好,但如果你想在文件中快速跳轉,那這個滑動的動畫就有些煩人了。
幸運的是,只要調整一下觸控板的設置,你就能同時使用兩指拖拽和三指輕掃了。注意一下這兩個手勢的方向是相反的。只要你記住的話就不是問題了。打開系統偏好設置 → 觸控板 → 更多手勢,改動如下:
在頁面之間輕掃:用兩個或三個手指輕掃。選擇用三個手指輕掃。
在全屏幕顯示的應用程序之前輕掃:用四個手指左右輕掃。
把Mission Control 和 應用程序 Exposé的手勢改為用四個手指(如果不用的話可以關閉)。這能讓你在Xcode中通過四個手指上下輕掃來在一個類的.h和.m文件間切換。相同功能的快捷鍵是和(control+command+上/下)。(對於一般只有.h和.m的類來說,按上和下的效果是一樣的,但如果有.h和.m以及_Private.h的話,快捷鍵是會在這3個文件中向前或向後循環。)
9、快速打開:(commond+shift+字母O)
在Xcode中的任何位置,按下(是字母O,不是數字0),都會彈出快速打開對話框。你可以輸入任何文件或者符號的名字,Xcode會模糊匹配工程中的所有文件,以及Apple所有的公開頭文件。它會在文件名、方法、函數、屬性和常量之間搜索。模糊是指你的輸入只要順序正確,可以漏掉一些字母。
在下面的例子中,我要尋找的文件叫INVEditCreditCardsButtonView.xib。我記不起文件的全名了,但是我知道文件名和編輯銀行卡(edit card)有關系,而且還有可能是一個button,所以我在快速打開中輸入“editcaedbutton”,最上面的幾個結果中就有我想要的。
提醒一下,我想要的是xib文件。我可以按方向鍵下兩次或者用鼠標雙擊第三個結果,但其實還有更簡單的方法。因為文件擴展名也在搜索范圍內,所以只需要再多輸入一個“x”就可以高亮正確的文件,然後按Return就可以打開。
給Xcode加點料——技巧
下面是一些能讓你在Xcode中工作更有效率的技巧。
10、移動程序計數器(program counter )
當你在斷點暫停時,在左側顯示行數的邊欄旁邊有一個綠色的小箭頭,它表示程序計數器,指向將要執行的代碼。很炫酷的是,你可以在程序中的其他地方單擊或者拖拽程序計數器。當你想跳過幾行代碼並且不執行這些代碼的時候,這就很有用了。你還可以返回再把某行代碼重新執行一次。當然這樣也很容易導致程序崩潰,不過如果你足夠仔細的話,這能節省很多編輯和重新編譯的時間。
(譯注:視頻裡說了句“永遠別這麼干”……)
11、在Assistant Editor 中預覽
如果你在iOS 8+的app中使用了trait collection,你的xib和storyboard中可能顯示的都是600 x 600 pt的方形,這樣看出來它們在不同的屏幕大小上到底是什麼樣子的。幸運的是,可以在Assistant Editor 中預覽。
打開Assistant Editor。在Jump Bar上選擇Preview。
這會根據指定的設備來顯示界面的預覽。你可以點擊底部的+按鈕來添加其他屏幕大小,從而測試在不同寬高比屏幕上的布局。
12、可搜索菜單
在Mac上,你可以打開一個彈出菜單,輸入某個項目的前幾個字母來跳轉到該項目。你可能在網絡表單中查找自己的狀態或者出生年時這麼用過。但是Xcode的菜單做得更好。Xcode中的大部分菜單都是可以搜索的。打開菜單,開始輸入,就會顯示出一個搜索框,並根據你輸入的字母過濾菜單。最棒的是這個可搜索菜單也是模糊搜索,和快速打開對話框一樣。
最常用的就是Show Document 菜單了,你可以按?6打開。這個菜單顯示在Jump Bar,會列出當前文件所有的類、屬性和方法。同時也會顯示使用#pragma mark - Section Name手動添加的分割線和節標記。
開始輸入,就能快速過濾出你想要的項。
13、Alcatraz
Alcatraz 是一個Xcode包管理器。你能在其中浏覽並輕松安裝插件、模板和配色方案。我在討論中提到了Alcatraz ,但是在這我更願意說說我最喜歡的Xcode插件。
DerivedData Exterminator
有時候我們會遇到DerivedData導致的工程編譯出錯,即使Clean Project也問題依舊。刪除DerivedData後,問題就解決了。這個插件就可以快速刪除DerivedData。插件在Xcode 工具欄上添加了一個按鈕,單擊一下就可以了。(譯注:原文這裡說了一些沒什麼用的內容,翻譯出來也沒什麼意義,不如說說這個插件的用途。As your project grows, Xcode seems to lose its ability to keep track of all the files and sub-projects that make up your app, and various build products seem to get stale and need to be blown away. This plugin puts a button in the Xcode toolbar that makes it a snap.)
FuzzyAutocomplete
這個插件給Xcode的CodeSense自動補全系統添加了模糊匹配,類似你在快速打開和可搜索菜單中用到的。這在Object-C的代碼中很有用,尤其是那些很長並且類似,只在末尾稍有不同的代碼。有了FuzzyAutocomplete,如果你想輸入類似UIViewAutoresizingFlexibleTopMargin的,現在你只需要輸入flextop,FuzzyAutocomplete會處理其余的事情。我給Apple提了一個建議,希望能把這個功能整合進Xcode,本來就該如此,不是麼?
GitDiff
Xcode的文件對比在查看哪些行有Git狀態時很方便,同時也很笨重(占了半個屏幕)。GitDiff 提供了一個輕量級的選擇:在顯示行數和斷點的邊欄上顯示一些小的彩色標簽。當在使用時,它能清楚而又不突兀地提醒我哪些行已經編輯過了,幫助我跟蹤當前正在做的事情。
SCXcodeSwitchExpander
輸入switch語句,這個插件會根據枚舉中定義的值,自動寫出所有case。又是一個應該集成進Xcode中的功能。
VVDocumenter-Xcode
在任何方法或者屬性前輸入///,這個插件會把它轉為格式化好的文檔注釋,包括參數和返回值的占位信息。最棒的是,這些注釋也能在上面提到的? Click(option 單擊)彈出文檔中工作。
XVim
Xcode中的Vim快捷鍵和編輯模式。如果你喜歡自討苦吃的話,這個插件就很有用。(你能說我不是一個Vim的用戶麼?當然如果你已經知道這些快捷鍵,那這個插件那就相當強大啦)
你最喜歡的是什麼?
我希望這篇提示與技巧能幫到你。Xcode還有很多更深更廣的功能等待發現,而不僅僅只是我提到這一小部分。你最喜歡的提示和技巧是什麼呢?可以在下面的評論中發表出來哦。