XCode Text Editor note
寫程式最常用到的就是Editor,使用時間最常所以要加快寫程式的速度, Editor的熟悉度有相當的影響,通常沒有好用的IDE環境下小弟的首選 Editor是VIM,主要是他的編輯功能實在太強大,ㄧ有些時候也會用 Emacs比如再OSX下的macVim不知道為什麼就是不好用,又怪怪的可是 Aquamacs就相當好用,這時候當然使用Aquamacs拉。
開發Cocoa程式也可以使用vim或是emacs,不過這種依附在龐大Framework 的程式開發,一個專門的IDE可以提供的方便性絕對值得我們離開慣用的 Editor來使用,這邊介紹一些比較好用的特性。
常用熱鍵
- Cmd+double click (⌘double click):跳到定義
- {}前後double click: 選取block
- cmd+option+up (⌘⌥↑): head file 和 implement file 間切換
- cmd+shift+d (⌘⇧D): 快速開檔
Focus Follow Selection
Xcode 提供的一個滿實用的功能,可以再 View->Code Folding->Focus Follow Selection 開啟或關閉,開啟後Xcode會自動判斷目前游標所在位置的程式和上下文的關係 ,比如function,if block等等。 (參考下圖)
Fold
Fold 這功能幾乎都有,可以直接再Xcod text editor案右鍵從menu選擇
這邊把比較常用的熱鍵列出,小弟以為手不要離開鍵盤使用熱鍵才是家快速度的 不二法門,因此每次使用奇怪功能我一定要確認是否有hot key可以使用。
Description | Key | symbol |
---|---|---|
Fold method | ctrl+cmd+up | ⌃⌘↑ |
unfold method | ctrl+cmd+down | ⌃⌘↓ |
fold comment | ctrl+shift+cmd+up | ⌃⇧⌘↑ |
unfold comment | ctrl+shift+cmd+down | ⌃⇧⌘↓ |
Scope Edit
Scope edit 就是方便的 symbol rename,先點兩下要改名的symbol (變數,method name...) 然後到 Edit->Edit All in Scope (或是熱鍵 ctrl+cmd+t [⌃⌘T])修改,可以看到 整個scope中都修改了,假如想在修改前檢查,可以使用命令 Edit->Select next placehold (或是熱鍵 ctrl+/ [⌃/])跳至下一個。
Text macro
Textmate上面的超好用的功能code snippet其實xcode也是有的,再xcode editor中輸入for 然後按下esc(⎋)可以看到列舉的code complete選項
選擇 for loop 就可以看到 xcode已經幫你打好大部分的code,你要做的只剩填上該填的部份 即可,和Scope Edit一樣你可以使用(ctrl+/ ⌃/)來遊走每一個要填的欄位。
列舉內建的縮寫
Text macro name | prefix |
---|---|
if Block | if |
if/else Block | ifelse |
Else if Block | elseif |
for Loop | for |
for i Loop | fori |
While Loop | while |
do-while loop | do |
switch block | switch |
case block | case |
Enum definition | enum |
strunt definition | struct |
union definition | union |
type definition | typedef |
printf() | printf |
#pragma mark | pm |
Pragma Mark | pragma |
#import | pim |
#import(framework) | pimf |
#import(system) | pims |
#include | pin |
#include(system) | pins |
#if block | pif |
#ifdef block | pifd |
#if/else | pife |
#ifdef/else | pifde |
#if 0 | pifz |
copyright comment | copyright |
comment selection | comment |
separator comment | cseparator |
Try/Catch block | @try |
Catch block | @catch |
finally block | @finally |
NSLog() | log |
alloc/init call | a |
array declaration | aa |
Mutable Array decl | ma |
Array for Loop | fora |
Array Foreach Loop | fore |
nit Definition | init |
dealloc Definition | dealloc |
bind:defined | bind |
@interface defined | @interface |
@implementation | @implemen |
@protocol | @protocol |
NSString | nss |
NSMutableString | nsms |
NSArray | nsa |
NSMutableArray | nsma |
NSDictionary | nsd |
NSMutableDictionary | nsmd |
Run Shell Command
選取遇執行的指令,案熱鍵ctrl-r (⌃r)
ex: 選取ls
執行後 (ctrl + R)
沒有留言:
張貼留言