Help us understand the problem. What is going on with this article?

AppCodeショートカットメモ(コード補完周り)

More than 5 years have passed since last update.

以前にもショートカットまとめたけど、もうちょっと付け加えたメモ。
Eclipseのcmd + 2を押してからLってショートカットに感動して、AppCodeにもあるだろうと思って探してみたら案の定ありました。
ざっくり言うとこんな機能。

    new PrivateMessage(); // この行でcmd+2を押した後にLを押す

↓↓

    // こうやって補完される
    PrivateMessage privateMessage = new PrivateMessage();

Tabを押すと赤枠になってる部分を移動できるとか、
Shift + Enterでカーソル位置に関わらず改行してくれるとか、
細かいところも抑えていくと大分違いますが、
一番重要な機能として、これを知ってるか否かでコーディングの速度が大分違う気がします。
(感覚的な話かもしれませんが・・・)
詳しくは実際に使ってみてほしいんですが、AppCodeにも同様の機能があったのでご紹介。

ショートカット一覧

Refuctor > Extractを開くとメニューが表示されます。
これらはとても便利なショートカットです。
今回は以下のショートカットについてご紹介。

  • Variable
    command + option + V

  • Constant
    command + option + C

  • Parameter
    command + option + P

  • Property
    command + option + E

  • Instance Variable
    command + option + I

  • Define
    command + option + F

  • Typedef
    command + option + K

  • Method
    command + option + M

  • Block Parameter
    ショートカットなし

  • Superclass
    ショートカットなし

  • Subclass
    ショートカットなし

  • Protocol
    ショートカットなし

  • Category
    ショートカットなし

以下のようなソースを書いているとします。

@implementation HogeObject
{

}

- (void)hoge
{

}

@end

この状態でExtractメニューを実行します。
返り値から変数を自動生成というのが主な機能。
名前の編集ももちろんその場で可能。

補完前
- (void)hoge
{
    [NSArray array]; // この行にカーソルを合わせる
}

Variable [cmd + option + V] 実行後

補完後
- (void)hoge
{
    NSArray *array = [NSArray array];
}

Instance Variable [cmd + option + I] 実行後

補完後
@implementation HogeObject
{
    NSArray *_array;
}

- (void)hoge
{
    _array = [NSArray array];
}

Instance Variable [cmd + option + I] 実行後

補完後
@implementation HogeObject
{
    NSArray *_array;
}

- (void)hoge
{
    _array = [NSArray array];
}

Property [cmd + option + E] 実行後

補完後
@implementation HogeObject

- (void)hoge
{
    self.array = [NSArray array];
}
補完後
@interface HogeObject

@property (nonatomic, strong) NSArray *array;

@end

Parameter [cmd + option + P] 実行後

返り値からメソッドの引数を自動生成する。

ショートカット:
option + command + P

補完前
- (void)hoge
{
    NSMutableArray *array = [NSMutableArray array];
    [array addObject:@"hogehoge"];
}
補完後
// 変数 "array" にフォーカスしてcmd + option + P
- (void)hoge:(NSMutableArray *)array
{
//  NSMutableArray *array = [NSMutableArray array];
    [array addObject:@"hogehoge"];
}

もしくは

補完後
// "[NSMutableArray array]" を選択してcmd + option + P
- (void)hoge:(NSMutableArray *)mutableArray
{
//  NSMutableArray *array = [NSMutableArray array];
    NSMutableArray *array = mutableArray;
    [array addObject:@"hogehoge"];
}

また、@"hogehoge"を選択してる状態でExtract > Variableを実行すると以下のようになります。
(Variable以外のメニューも実行できます)

補完後
- (void)hoge
{
    NSMutableArray *array = [NSMutableArray array];
    NSString *object = @"hogehoge";
    [array addObject:object];
}

これらはCtrl + Tで呼び出せるものが多いです。
スピードや効率にこだわるなら一発で呼び出すショートカットを覚え、
中々覚えられない人はとりあえずCtrl + Tだけ押すという形でも良いと思います。
これらのショートカットを上手く使い分けて効率よくコードを書きましょう。

その他

ctrl + 上下

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

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、中央にエディタ、といった感じで配置すると使いやすいかもしれません。

エディタ外にフォーカスが移っている場合、etcを押すとエディタへフォーカスが戻ります。
エディタにフォーカスを戻したいときはとりあえずetcを押しましょう。

ctrl + O

Overrideできるメソッド(SuperClassのメソッド)を一覧表示する。

ctrl + I

実装しているDelegateメソッドを一覧表示する。

cmd + shift + O

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

control + 左右

タブ移動。

cmd + ctrl + 上

.hと.mの切り替え。

alt + cmd + L

Reformat Codeです。
コードのフォーマットをしてくれるので、超絶便利です。
これを使う場合は、フォーマッタの設定をしっかり行いましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした