AppCodeをInstallして最初にすること＆ショートカット

主にSettings周り。
`Cmd + ,`で設定画面が開きます。

##行末より後ろでもクリックできる状態を解除する

- `Editor`を選択
 - `Allow placement of caret after end of line`のチェックを外す
 - 最近のVersionだとデフォルトでチェック外れていた気がします

##Incremental SearchのKeymap設定

- `Keymap`を選択
	- `Other`を選択
		- `Incremental Search`をダブルクリック -> `Add Keyboard Shortcut`
		- 自分は`ctrl + s`で設定してます
		- （Searchの`s`として記憶してます）

##ctrl + 左右でタブ移動を有効にする

これはMacのKeymapの話。
AppCodeは複数のタブを開く事が可能で、
`ctrl + 左右`を実行するとタブを左右に移動できます。
しかし、Mac上ではMission Controlのショートカットが割り当てられています。
バッティングしないようAppCodeかMission Controlかどちらかを変更しましょう。
個人的にはタブ移動を優先させたいので、Mission Controlは切っています。

##エディタのカラースキームを変更する

- `Editor`を選択
	- `Color & Fonts`を選択
	- あとは好きなモノを選ぶ or スキーム作成
	- 最近のVersionはDarculaが標準なのでいじってません。

##Camel Humpsを有効にする

- `Editor`を選択
	- `SmartKey`を選択
	- `Use "CamelHumps" word`にチェックを入れる

`alt + 左右`で単語ごとにカーソル移動が可能ですが、
デフォルトの設定だとスペース区切りの1単語で移動してしまいます。
この設定をしておくとキャメルケースの単語ごとにカーソル移動ができるようになります。
この設定しておいたほうが便利なのでオススメです。

`alt + 左右`で移動可能なカーソルの位置：`|`
Off:
    `|` tableViewController `|`
On:
    `|` table `|` View `|` Controller `|`

##補完されるキーワードとか括弧をカスタマイズ

- `Code Style`を選択
	- `Objective-C`を選択
	- あとはよしなに

####自分がカスタマイズしてる部分

- `Wrapping and Braces`タブ
	- `Braces placement`
		- `In classes and structures`を選択 -> `Next line`を設定
		- `In namespace`を選択 -> `Next line`を設定
		- `In methods`を選択 -> `Next line`を設定
		- `In functions and blocks`を選択 -> `Next line`を設定

class作成時の`@interface`や`method`などなどの自動挿入時、
`{`は改行されてから挿入するようにしてます。

```
@interface Hoge : NSObject
{

}

@end

@implementation Hoge
{

}

- (void)function
{

}
```

Xcodeのテンプレを見てると、括弧が改行されてたりされてなかったりしてキモい。
alt + cmd + Lで`Reformat Code`が実行できるので、この設定をしっかり設定しておくと捗る。


##スニペット登録

- `Live Templates`
	- `Objective-C`を開くとスニペット一覧が表示される
	- `+`を押すと新しいスニペットが登録できる


####例えば

ifとかelseのスニペットは最初登録されてないので、登録してみる。

1. `+`を押して新規作成
2. Abbreviation: `if`
3. Description: `call if`（説明文、コーディング時にも表示される）
4. Template text: 後述
5. No applicable contexts yet. -> `Define`をクリック
6. `Objective-C`を開いて、`statement`にチェック

```TemplateText
if ($VAR$) {
  $END$
}
```

`$`で囲んだキーワードは`Edit Variable`ボタンから属性を選択でます。
Default Valueの設定とかも可能です。
実際にスニペットを使って入力してる時に、
`$VAR$`などの変数の入力が終わったら`$END$`にジャンプできます。


##蛇足

[AppAppCodeで知っていると便利なショートカット12選](http://qiita.com/items/8cf569990eb8f7aa582f "AppAppCodeで知っていると便利なショートカット12選")
こちら便利なショートカットを紹介している方がいたので、
私からも個人的に良く使ってるショートカットを紹介します。


#####1. `ctrl + 上下`

開いているコード内で、メソッド単位のジャンプができます。
メソッドの頭に飛ぶので意外と便利。

#####2. `cmd + 1`

エディタ外のプロジェクトのウィンドウを開閉できます。
フォーカスもそのウィンドウへ移るので、そのまま`cmd + N`を押すとClass作成などのポップアップが表示されます。
ポップアップにはCategoryやGroupの作成メニューなどもあるので便利です。

`cmd + 数字`はエディタ外のウィンドウにアクセスする便利なショートカットです。

- `cmd + 1` : Project
- `cmd + 2` : Favorte
	- AppCodeはコード内にブックマークの設定ができます
- `cmd + 4` : Run
	- ctrl + Rで実行したウィンドウを開きます
	- このウィンドウ内もControl+左右でタブ切り替えができます
- `cmd + 5` : Debug
	- Cmd + 4とほぼほぼ同じ
- `cmd + 6` : TODO
	- コード内に`// TODO: `と書いてあればここに表示されます
	- 一覧表示されて探しやすいのでTODO書く気になれます
- `cmd + 7` : Structure
	- 開いてるファイルのクラスやメソッドを一覧表示してくれます
	- Eclipseで右側に表示されてるアレですね

これらウィンドウはエディタの上下左右のどこかに移動することができます。
大きな画面なら左にProject、右にStructure、下にRun/Debug、中央にエディタ、といった感じで配置すると使いやすいかもしれません。


#####3. `ctrl + O`

Overrideできるメソッドを一覧表示してくれます。
文字を入力するとメソッドを検索してハイライトしてくれます。
（もちろんキャメルケースで）
cellForRowAtIndexPath何とかとか
didSelectRow何とかとか
あの辺のメソッドは全部これで一発補完です。
マジ便利です。


#####4. `ctrl + I`

実装するDelegateのメソッドを一覧表示してくれます。
`ctrl + O`のDelegate版ですね。
これもマジ便利です。
上のショートカットと合わせて使うと非常に捗ります。


#####5. `cmd + shift + O`

ファイルを検索してくれます。
もちろんキャメルケースでも。
`cmd + O`（クラス検索）と併用すると便利。


#####6. `ctrl + 左右`

上でも紹介したタブ移動。
タブ移動ができないエディタは使いにくくて仕方ない。


#####7. `cmd + ctrl + 上`

.hと.mの切り替え。
両者を行き来する頻度は非常に高いので、
これがあると凄く捗る。


#####8. インクリメンタルサーチ

上でも紹介しました。
デフォルトだとショートカットが設定されてない。
私は`ctrl + S`とかに設定してます。
`cmd + F`でも問題無いですが、それよりもスムーズに検索から入力に移れるのでちょっと便利です。


#####9. `cmd + shift + F`

プロジェクト内全体で文字列検索してくれます。
たまに使う。


#####10. `alt + 上下`

`alt + 上`を押すと、カーソルが合わさっている単語を選択してくれます。
更に、`alt + 上`を押すと、選択範囲のスコープが広がります。
逆に、`alt + 下`を押すと、選択範囲のスコープが狭まります。
`alt + 上下`とインクリメンタルサーチを併用するとカーソル移動が非常にスムーズになります。


##最後に

少し長くなってしまいましたが、
AppCodeには便利な機能が満載ですが、もちろん欠点もあります。

- Interface builderも搭載されているが、Xcodeに劣る
- プロジェクトの設定がXcodeほど詳細に設定できない
- Swiftのコード補完がいまいち

使い分けが必要なのでその辺はどうしても手間がかかってしまいますが、
Objective-Cのコーディングにおいてはこちらのほうが間違いなく快適です。

有償のエディタですが、**30日のTrial期間**があるので、
是非お試しあれ！