本文大致整理了自己用過的一些外掛的使用感想(就是好不好用)。 在那之前先簡單貼兩條外掛須知,知道的可以忽略。
1、Alcatraz
類似於管理第三方庫的cocoapods,管理外掛也有個Alcatraz。
安裝的方法也很簡單,如果你以前沒有安裝過那執行下面指令
1 |
curl -fsSL https://raw.github.com/alcatraz/Alcatraz/master/Scripts/install.sh | sh |
如果之前安裝過但是Xcode最新版本不能用了,那就先解除安裝舊的再安裝下新的。
解除安裝的方法是:
1 2 |
rm -rf ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin rm -rf ~/Library/Application Support/Alcatraz/ |
注:也許並不是所有人都使用了Alcatraz,而是平時都喜歡上github下載一個跑一下 然後load Bundle這種方法的, 如果之前安裝了很多外掛,現在剛剛使用Alcatraz的也沒問題,安裝Alcatraz之後之前安裝的也會自動整合進來不用擔心。
還有就算你使用了這個工具xcode也是需要重啟才能應用外掛的並不能把這一步給省了。
2、更新外掛
不管你是用直接download zip的方法安裝外掛的還是用Alcatraz安裝的外掛如果外掛本身沒有最新xcode的支援,那在你的Xcode更新一個版本後,Xcode外掛就會失效了。 這個問題就是沒有把最新版本xcode的DVTPlugInCompatibilityUUID配到外掛的支援列表中。
先獲取,終端中輸入
1 |
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID |
然後按照如下目錄~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
找到外掛列表,選中對應的外掛顯示包內容,並開啟info.plist檔案 在這個陣列中新增最新的UUID即可
也有更犀利的做法就是:
1 |
find ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add UUID |
最後面的UUID是前面獲取到的。
推薦外掛
下面進入正題,說說我喜歡用的外掛,基本算是一個使用心得吧。 全都附上了連線,沒貼動圖以免太亂,基本連線的github中都有效果圖。
1.VVDocumenter-Xcode 三道槓新增文件註釋
https://github.com/onevcat/VVDocumenter-Xcode
所有外掛裡這個是我最早使用的也應該是排第一的。 使用也非常方便但是用久了也許會發現自動生成的註釋是每一個引數和返回值都會彈出一個塊,而我們日常開發中大部分的引數和返回值都是一眼見分曉的,並不需要逐個標註,這也就使得我每次敲三道槓都還要手動刪除一部分,比較麻煩。 如果作者能提供下一種是現有的,另一種敲法是隻有Description的那我會非常方便。 或者有個更燒腦的猜想,就是在現有基礎上判斷引數是否是基本資料型別還是特殊型別,特殊型別的引數才生成註釋程式碼塊。返回值如果是instancetype那就不需要生成註釋程式碼塊,或者判斷引數名如果是一個常用單詞(time)還是組合詞(categoryID),常用單詞就不生成註釋了也許會更好。也許是我想多了,反正這個外掛是必用的,更何況現在連swift都支援了。
2. SCXcodeMiniMap 右邊顯示小地圖
https://github.com/stefanceriu/SCXcodeMiniMap
這是類似於sublime的功能,這是非常好用的。 並且右邊的程式碼迷你地圖提供了很多可配置的地方,而且會高亮顯示巨集和註釋部分,小地圖中點選任何地方也會自動滾動至此。這在有的類程式碼特別長時你寫著寫著都不知道自己在哪裡了 會很有用。(如果你經常用 pragma mark那你當我沒說)
3.FuzzyAutocomplete 程式碼補全支援模糊查詢
https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin
程式碼補全時可以不用從頭開始敲,只要記得某個特定詞彙就能匹配到。 並且對於專案中有好幾種字首的比如我們以前有的事MT字首有的是MTB字首,這種就算你字首敲漏了只要後面對了也能匹配的到。 當然也有弊端就是你敲一個很普通的方法下面都會匹配一大長串,看著有點冗餘而且xcode會比較卡,並且敲出來是好好地如果你想用delete一個個字元往回刪就可能會出現xcode,crash了(也許是和其他某個外掛產生了衝突,我錯怪他了)。用不用看個人喜好吧,因為蘋果有很多詭異的api,比如Rect 他是CGRectMake ,但是到了Range 他又是NSMakeRange 用了這個外掛就不會被他坑了。
4.KSImageNamed 用圖片時自動顯示圖片縮圖
https://github.com/ksuther/KSImageNamed-Xcode
也是非常殘暴的一個功能,在開發中我們的圖片名稱都是fb_poinum_high類似的,用這個外掛敲出字首就能夠看到對應的一批圖片縮圖再上下選擇非常方便。 不足之處也有,那就是已經敲完的程式碼想看到圖片縮圖必須先把imageNamed刪掉 再重新敲一次才能看到縮圖,如果在@”fb_poinum_high” 圖片名中一修改就能看到圖片列表就更好了。
5.HOStringSense 可以在彈出框寫NSString,所見及所得
https://github.com/holtwick/HOStringSense-for-Xcode
之前有幾次需求要寫換行的msg,有時候對不準,用這個外掛非常方便。在彈出框裡寫完就是所見即所得。而且游標點到字串的時候還會顯示字串的長度,這個功能我也很常用。
6.GitDiff 簡單直觀的標記本次commit修改的部位
https://github.com/johnno1962/GitDiff
這個外掛在企業級App的開發中,使用率非常高,效果非常好。 座標檔案列表中的M,D,A,A+,? 可以很快的顯示你有哪些檔案修改了。 但是精確到檔案裡 這個外掛就能很好的展示,預設是新增的位置顯示綠色,修改的位置顯示紅色。 當然這些也都是可配置的。 (雖然xcode或終端也有很多方法能對比看diff但是沒有這樣簡單直觀)
7.xvim 把xcode的編輯頁面可支援vim操作
https://github.com/JugglerShu/XVim
引入這個外掛之後,在xcode的正常內碼表面的游標就會變成vim裡面的方塊了,熟悉vim指令的骨灰級攻城獅應該特別喜歡這款外掛,dd直接刪除一行,dw刪一個單詞 用著的確是很爽。 用了一段時間發現其實對xcode的、原始的編碼方式改動(這裡也可以說是侵入性)並不大,因為按下s就是編輯啊 就和xcode原來一樣了任何功能都不少,按下esc又切換到vim非常犀利。總之是特別好用,而且看github點星也有3000+吧,並且不斷有人提issue,現在已經非常完善了。
8.XAlign 提供各種自動對齊方案
https://github.com/qfish/XAlign
這個外掛實現了很多種自動對齊的功能,非常殘暴。支援“=” “@” 和property 的自動對齊。 安裝之後就趕緊把專案所有牽扯到的地方都用快捷鍵敲一下吧。說意見的話就是暫時還不支援大括號和縮排自動對齊。
9. BBUDebuggerTuckAway 敲程式碼時debug檢視自動隱藏
https://github.com/neonichu/BBUDebuggerTuckAway
提供微操的外掛,功能簡單,但是非常實用。敲程式碼敲快了的人,或者是在改Bug時,RUN一下再除錯幾行這種操作是會迴圈多次進行的。這個時候就會了解到這麼不起眼的功能帶來了多大的驚喜。
10.Backlight-for-XCode 高亮顯示正在編輯的行
https://github.com/limejelly/Backlight-for-XCode
也是一個微操的外掛,功能簡單,就是你正在編輯的這行程式碼高亮顯示。並且這個顏色和顯示方案都是可配置的。這個外掛有兩個很大的好處一是在滾輪上下尋找程式碼時有一個方向指引知道自己正在編輯的方法在什麼位置,二是有的一行程式碼很長折行成了兩三行但是實際上還是一行程式碼,那這一坨都會高亮顯示。不足之處就是作者可能沒有設定好預設值,你剛安裝後發現沒有效果,要去選單把功能開啟才有效果並且坐著設定的預設高亮色是白色 =。=
11. cocoapods-xcode-plugin pod相關的操作可以在xcode選單進行
https://github.com/kattrali/cocoapods-xcode-plugin
一般App在pod穩定了之後應該會很少修改,但是這個庫提供的功能也是極好的,可以實現pod install,新建/修改 podfile,新建/修改 podspec檔案。用習慣了終端iterm的人可能不太適應,習慣用source tree的人可能會覺得這個外掛很爽~
12.ColorSense 輸入顏色時有一個色板給你選
https://github.com/omz/ColorSense-for-Xcode
在使用colorWithRGB的時候,可以點出一個顏色選擇框直接選擇顏色,但是這個功能在使用了Wonderful或是企業級App裡用處不大,因為是個專案都有視覺規範,應該都寫成一個特定的巨集了,就算沒有視覺規範,那好歹也有個RGB(r,g,b,a) 這種巨集吧。 [UIColor colorWithRed:233/255.0 Green:213/255.0 Blue:12/255.0 alpha] 這種程式碼還是很不美觀的。如果是測試demo之類的用這個外掛可以。
13.SCXcodeSwitchExpander switch列舉的時候會自動生成程式碼
https://github.com/stefanceriu/SCXcodeSwitchExpander
如果你的專案中有使用列舉會非常方便,自動生成了所有可能,並且每種裡面都包含程式碼塊,可以直接tab切換。 雖然使用率不會特別高但是用到的時候還是非常方便的。以前偷懶時我都寫case:1 case:2 現在可以走向規範了。
14.DerivedData Exterminator 一鍵刪除Derived Data
https://github.com/kattrali/deriveddata-exterminator
使用此外掛之後,view選單裡多了一些操作,可以一鍵刪除Derived Data。有時候在除錯,啟動圖,launch screen,navgationBar appearance,之類的功能可能需要經常刪derived data來除錯。以前的方案應該是需要開啟xcode偏好 locations 裡面去刪除,現在方便了不少。 不足之處就是刪除這個專案的Derived Data 和刪除All Derived Data 直接放在一起,手一滑就點錯了。有的人電腦效能慢,專案大你一下把別的專案的Derived Data也刪了 以後重新Build一下就太慢了。還有記得以前有小工具就是能夠把正在執行的工程的主目錄在find中顯示,用來除錯資料快取的,這個庫如果整合了這個功能就更好了。
15.XcodeColors 控制檯列印彩色log
https://github.com/robbiehanson/XcodeColors
有的人會說彩色log 可以用DDLog啊,這個外掛和DDLog是可以共同作用的, 也可以只用這個外掛。 至少我用這個外掛還是覺得挺好用的。自定義一個巨集就可以在適當的敵地方彩色答應了 比較輕量級。不足之處也有,就是如果你專案中寫了很多這樣的程式碼,但是如果用別人沒有裝這個外掛的xcode來跑 那就沒有效果了啊。不過也無妨頂多就是除錯欄不顯示顏色罷了。
16.OMQuickHelp option+點選會直接用dash開啟
https://github.com/omz/Dash-Plugin-for-Xcode
dash是一個非常強大的檢視api和文件的工具,在這個裡面能下載和看到各個平臺的文件。 普通的option+點選會彈出一個小懸浮窗顯示api相關資訊,如果用了這個外掛會直接在dash中開啟相應的文件,前提是dash中已經下載過xcode對應的文件,再前提是你得安裝了dash。 dash在蘋果商店是賣幾十塊錢的,而且中國區域也搜不到dash。這裡提供一個dash破解版的下載地址:http://share.weiyun.com/6fe485efbd9fc160dbc815639b65085b (密碼:xzGP) (你要是問我為什麼不用百度雲? 我想說百度雲呵呵)
17.DXXcodeConsoleUnicodePlugin debug欄列印時自動把/ueo6轉化成漢字
https://github.com/dhcdht/DXXcodeConsoleUnicodePlugin
在我們前後端聯調介面的時候,一般都是url貼到瀏覽器json資料到了chrome自動轉化(前提是你安裝了jsonformater外掛)。但是有時候比如POST請求結果不能在瀏覽器中看到,只能在debug中打斷點了列印瞭如果遇到 msg:/ue06/ud07/ug08 這種會很蛋疼。這個外掛安裝後就是能讓你在debug的console裡面把這些uinicode轉化成漢字顯示。 這裡說到了console的優化 我也順便提個小技巧就是讓console裡可以po出 id型別的資訊(正常情況你po id型別的物件會顯示error)在終端依次輸入下面三行指令
1 2 3 |
touch ~/.lldbinit echo display @import UIKit >> ~/.lldbinit echo target stop-hook add -o "target stop-hook disable" >> ~/.lldbinit |
18.XToDo 快捷鍵標記,和統一檢視
https://github.com/trawor/XToDo
之前設定TODO 和標記某處??? 我都是手敲一個特定的符號,然後找的時候再去全文搜尋。 有了這個外掛,可以用快捷鍵新增TODO 和 FIXME (額這裡如果用程式碼塊也是可以相同實現的)。然後提供了TODOList 快速檢視自己各處的標記。等於是省去了一個搜尋的步驟。 但是不足就是,ToDoList的對話方塊是一個懸浮的而不是像上面的SCXcodeMiniMap或是GitDiff那樣是嵌入在xcode裡面的,這樣在來回點的時候xcode的焦點和對話方塊的焦點會來回切換,雖然你是置頂的但還是比較影響體驗。我用搜尋的話就不用來回切焦點了。 但是這個外掛本身還是很不錯的。
19.XActivatePowerMode 敲程式碼時螢幕抖動火花迸濺效果
https://github.com/qfish/XActivatePowerMode
這是裝逼外掛,模仿sublime的一款 敲程式碼火花迸濺效果的外掛。也許有的人覺得只有火花不需要有抖動,當然這些效果都可以在選單裡開啟和關閉。但是有問題就是,這個外掛和上面的FuzzyAutocomplete共同作用時,會很卡,直接xcodecrash,所以慎入。
20.ActivatePowerMode 敲程式碼時螢幕抖動火花迸濺效果
https://github.com/poboke/ActivatePowerMode
功能和上面的相似並且更狠,還帶響聲。但是讓xcode變卡的問題同樣存在。 而且這個外掛比上面高階之處在於迸濺的火花的顏色和編輯位置的程式碼顏色相同,作者找到了配色方案返回顏色的私有api得到程式碼顏色。 迸濺效果更接近sublime上的效果。有人因為又用機械鍵盤 又帶響導致手被剁了,所以這個也慎入。
其實還有一些外掛也很火,比如codepilot3相當於xcode中的Aifred但是升級xcode7之後就不能使用了,也許是按鍵衝突還是什麼,他們官網就是無腦CMD+Shift+x開啟搜尋框。但是如果按下無效呢?也沒有個選單讓這個快捷鍵可以設定,看程式碼庫也的確是很久沒更新了; 還有外掛能讓你的xcode直接跳到github顯示程式碼對比這些,感覺並沒有必要啊,而且有時候github開啟很慢,很沒有連貫性啊; 還有外掛能夠你在.m寫完方法的實現之後自動給你在.h檔案生成方法宣告,也是覺得畫蛇添足 這些等等可能是我個人用起來不爽這裡就都不提了。
還有外掛不建議裝的太多,覺得從上面挑些自己有用的裝5~8個即可,多了xcode會很卡,而且會經常crash。如果真的遇到xcode經常crash的問題也沒事不用擔心,把那個外掛目錄下的外掛全部清除,無需重灌xcode也是可以恢復正常的。