Как облегчить себе жизнь в Xcode. Shortcuts, tips&tricks

    image
    Эффективная работа в любой IDE, да и не только в IDE, определяется в немалой степени тем, как много вы используете клавиатурных сокращений и всяческих фич, призванных облегчить вашу жизнь.
    В этом посте я попытаюсь поделиться тем, что знаю и использую сам, что накопалось в сети но так же очень рассчитываю на вашу помощь. Поделитесь своими находками и трюками. По результатам думаю сделать какой-то PDF, вроде известного Xcode-рам pdf c шорткатами от Colin Wheeler (не знаете? тогда вот линк)

    По поводу клавиатурных сокращений стоит просмотреть указанный PDF. Шорткатов там масса, но есть такие, которые я использую чаще других.
    Определим символы для описания шорткатов:
    ⌃ — Control
    ⌘ — Command
    ⌥ — Alt
    ⇧ — Shift
    ⏎ — Enter/Return
    ⎋ — Escape
    →←↑↓ — Cursor

    ⌃⌘↑ — Переключение между заголовочным файлом и реализацией. Наверное самое частоиспользуемое сочетание.
    ⌘T — Открытие новой вкладки (tab). Кстати, если кликнуть на заголовок таба, то можно задать ему имя, к примеру Debug.
    ⇧⌘Т — Открыть новое окно
    ⇧⌘] — переход к следующей вкладке
    ⇧⌘[ — переход к предыдущей вкладке
    ⌘W — закрыть текущую вкладку, или окно, если вкладка единственная

    ⌘N — создать новый файл
    ⌘S — сохранить текущий файл
    ⌥⌘S — сохранить все изменения во всех открытых файлах

    При наборе:
    Если надо убрать то, что предлагает автодополнение, то просто нажмите ⎋ Esc
    и ⌥⎋ — если хочется увидеть автодополнение кода.

    ⌘F — поиск в текущем файле
    ⇧⌘F — поиск по всему проекту
    ⌘G — переход к следующему результату поиска
    ⇧⌘G — переход к предыдущему результату поиска

    ⌘+1..7 — переключение между навигаторами.

    ⌘/ — закомментировать/раскомментировать текущую строку или выделенный блок, раскомментирование работает корректно только если знак комментария стоит в начале строки.

    ⌘] — сдвинуть вправо строку/выделенный блок
    ⌘[ — сдвинуть влево строку/выделенный блок

    ⌘R — запустить прогармму на выполнение
    ⌘I — запустить программу с инструментами (allocations, leaks etc.)

    ⌃⌥⌘0 — показать/скрыть панель утилит (правая панель)
    ⌃⌥⌘1..4 — переключение между библиотеками темплейтов, сниппетов, объектов и медиаданных

    Еще несколько шорткатов от arturphoenix
    ⇧⌘O — быстрое открытие файла или переход в пределах файла
    ⌘L — переход к строке с номером
    ⌃⌘E (при установке курсора на переменную) — быстрое переименование переменной в текущем scope.

    Хотелось бы отдельно остановиться на сниппетах.
    Помимо имеющихся сниппетов (фрагментов кода) можно создавать и свои или редактировать имеющиеся.
    Создадим сниппет для #pragma mark
    Откроем библиотеку сниппетов, нажав ⌃⌥⌘2, если она не открыта.
    Для начала выделим в коде нужный фрагмент:
    image
    Далее мышкой перетаскиваем выделенное в окно снипеттов, открывается окно редактирования. Задаем имя:
    image
    Шоркат:
    image
    область действия(видимости) сниппета (в нашем случае — all) и placeholder в который будет вставляться кастомный текст. Placeholder задается в таком формате — <# placeholder #>:
    image
    Жмем Done и смотрим, что у нас получилось. В коде начинаем набирать mark:
    image
    Получаем подсказку автодополения, жмем и остается только вписать текст маркировки:
    image
    Очень удобная штука. Я себе много всякого добавил.

    Жду ваших комментариев, быстрых клавиш и трюков для улучшения эффективности работы в Xcode!

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 24

      0
      А мне вот эта вещь очень сильно облегчает жизнь. Вся мощь Vim в Xcode.
        0
        Надо будет попробовать. Жаль не знал про это года три назад, когда основным инструментом был как раз Vim, а за это время уже сильно привык к Xcode, не пришлось бы привыкать заново :)
        0
        XCode 4.3.3 комбинация ⌃⌥⌘2 не срабатывает
          0
          Только что проверил, срабатывает. Еще раз: control+alt+command+2?
            0
            Ох, прошу прощения, моя вина, я не туда смотрел, спасибо!
          0
          Очень полезная комбинация ⌃⌘O — быстрое открытие файла, обеспечивает удобную и быструю навигацию по проекту (шпаргалка подсказывает, что в старых версиях xCode за это отвечала комбинация ⌃⌘D).
          ⌘L — переход к определенной строке кода в текущем документе.
          ⌃⌘E (при установке курсора на переменную) — быстрое переименование переменной в текущем scope.
          Если кто-то еще подскажет способ при помощи клавиатуры быстро перемещаться между методами текущего класса (например, открыв меню со списком функция из Jump Bar'а в верхней части окна), буду очень благодарен. Такая возможность присутствует во многих Этой возможности очень не хватает,
            0
            Что-то у меня не работает ⌃⌘O и ⌃⌘D тоже, последнее вызывает системный словарь. А какая у вас версия Xcode?
              0
              Ага, разобрался. Там нужно не Control+command+O а Shift+Command+O.
                0
                Да, извините, перепутал в первой комбинации Shift c Control.
              0
              Для того что бы быстро перемещаться по методам класса — попробуйте ctrl+6.
                0
                Именно то, что нужно! Большое спасибо.
              –1
              Снипеты и шот-каты конечно облегчают жизнь, но когда же станет возможным писать плагины для xCode!
                +1
                Пишут же как-то? В первом же комменте ссылка ни на что инное как на плагин к Xcode, как я понимаю.
                0
                Пишут. Я использую плагин для подсветки лога.
                0
                давайте сразу всем отпишу:

                CyberTor -> конечно пишут и я пишу и меня впринципе все устраивает, но вот пару плагинов для себя или точнее под свои проекты я бы написал. И я имел ввиду официальную поддержку Apple плагинов, которой сейчас нет.

                SAKrisT -> ну круто, но не совсем понимаю что вы имеете ввиду под плагинами и как решаете свою задачу, потому как точно видел в настройках xCode ее настройку.
                0
                Помню, начинал изучение разработки под iOS со штудирования шорткатов XCode. Отличный тред на stackoverflow.com в тему.
                  0
                  Так и не найдя в свое время способ организовать свои сниппеты так, чтобы они работали на всех моих машинах на работе и дома и переживали бы снос и переустановку xCode, написал свой сервис, синхронизирующий все сниппеты под DropBox и совершенно счастлив с тех пор.

                  (под сниппетами понимаются простые текстовые файлы или скрипты, генерирующие и вставляющие в потенциально любой редактор, например, такие строки

                  NSAssert(0, @«mk_ebdc32d2_4930_4413_91db_c5546cdedd9e» // уникальная метка на основе uuid

                  );

                  Про появившуюся возможность писать плагины не знал, спасибо что сказали.
                    0
                    Cmd+Shift+O что бы найти любой файл (используется хитрый алгоритм поиска), а затем
                    Сmd+Shift+J — сразу показать его в дереве файлов!
                      0
                      Вместо #pragma mark можно использовать

                      //MARK: <#text#>
                      Главный преимущество — это просто комментарий и не будет проблем при использовании кода в другой IDE

                      Еще есть //TODO: <#text#>. Работает только при записи вне тела метода, а жаль…
                        0
                        Насчет TODO — так было не всегда. В старых версиях подсвечивалось корректно в любом месте в коде, а потом то ли поломали, то ли намеренно так сделали, неясно, но уже которую версию не фиксят.
                          0
                          Помимо TODO есть еще несколько таких «магических» слов:

                          // TODO: <#text#>

                          // FIXME: <#text#>

                          // !!!: <#text#>

                          // ???: <#text#>

                          Удобно так же использовать директивы
                          #warning <#message#>
                          #error <#message#>
                          Если надо обратить на что-то особое внимание перед сборкой, после передачи кода и т.д.
                          К примеру задание какого-то ключа, до которого собирать код нежелательно.
                          0
                          Благодарю, порой русских док как раз не хватает.
                          А вот вопрос — если двумя пальцами слайдить по основной рабочей области, то по какому алгоритму файлы листаются?

                          Only users with full accounts can post comments. Log in, please.