Этот пост является вольным переводом статьи Xcode, Supercharged.

Для нас, как инженеров, очень важно привыкнуть к инструментам, которые мы используем в работе каждый день, но никогда не стоит останавливаться на их изучении. Всегда найдутся скрытые возможности, которые помогают нам работать быстрее и концентрироваться на цели, а не на средствах ее достижения. Я покажу некоторые «фишки», которые обнаружил за время своей работы в среде разработки Xcode. Надеюсь, они и вам пригодятся.

1. Ctrl + цифры

В Xcode есть быстрая навигация по всему проекту: от корневого каталога до файлов и методов в них. Просто нажмите Ctrl + цифры от 1 до 6 и сами увидите. В появляющихся окнах также работает поиск.



2. «Фишки» брэйкпоинтов

Брэйкпоинты — прекрасны. Их тоже можно «зарядить». Вы знали, что можете выполнять LLVM-комманды и даже воспроизводить алерты при срабатывании брэйкпоинта? Причем вы можете комбинировать это с беспрерывным выполнением (когда вам нужно понять, что метод вызывается, но не нужно останавливать приложение).



3. Нечеткий поиск где угодно

Не можете вспомнить где видели что-то в коде? В Xcode есть нечеткий поиск по всему проекту — Cmd+Shift+O. Ключевой момент именно в нечеткости: если результатов поиска слишком много — просто продолжайте печатать пока не найдете то что ищете.





4. Редактирование в области видимости (in Scope)

Поставьте курсор на имя метода или переменной и нажмите Cmd+Ctrl+E. Обратите внимание как выделено каждое упоминание этого слова. Достаточно изменить это имя один раз и Xcode изменит его везде в классе, в котором оно используется. Этим очень удобно пользоваться, когда вам нужно быстро переименовать какую-то переменную или метод. Также это работает для локальных переменных в их областях видимости. Это особенно удобно, когда вы дали название свойству/методу, а потом передумали.



5. camelCase выделение

Эта «фишка» отлично работает в сочетании с предыдущей. В Xcode можно быстро выделять camelCase-текст с помощью Ctrl+Shift+стрелка вправо/влево. Вы просто быстро выделяете слова в названии переменной. Это очень удобно. Обратите внимание, что это может конфликтовать с настройками системы, особенно с переключением между рабочими областями в OS X.



6. Простое переключение между кодом и навигатором

Хотите быстро переключиться из редактора в навигатор файлов? Cmd+Shift+J и вы уже там. Хотите обратно в редактор? И чтоб не тянуться к мышке или трекпаду? Пожалуйста: Cmd+J. Бонусом к этому идет быстрый поиск файлов в навигаторе. Просто нажмите Cmd+Option(Alt)+J.

7. Брэйкпоинты на переменных

Поставьте брэйкпоинт на строку с объявлением переменной и Xcode будет там останавливаться каждый раз когда значение переменной изменяется (на самом деле, в данном примере брэйкпоинт срабатывает, потому что в этой же строке описан метод didSet(...) {...}).



8. Быстро перейти к определению

Вы ведь нажимали Cmd и кликали мышкой по названию переменной или метода, чтоб разобраться что это такое? Поставьте курсор в текст и нажмите Cmd+Ctrl+J. Это также работает и для ваших собственных определений.

9. Различия с последнего коммита

Кому нужны сторонние git-инструменты, если можно посмотреть различия прям внутри Xcode? Cmd+Shift+Alt+Enter(Return).



10. Быстрая работа с брэйкпоинтами

Нажмите Cmd+\ чтоб поставить или убрать брэйкпоинт в строке в которой находится курсор. Также можете использовать Cmd+Y чтоб включать-выключать брэйкпоинты во всем проекте.

Эти комбинации клавиш стали частью моей повседневной работы и помогли ускорить написание кода и внесения изменений. Если же какая-то из этих комбинаций конфликтует с другой настройкой, которую вы сделали раньше, вы всегда можете их изменить. Просто нажмите Cmd+,(запятая) и зайдите в «Key Bindings». Удачного вам фаст-программинга!
Поделиться с друзьями
-->

Комментарии (22)


  1. silvansky
    04.08.2016 18:44
    +1

    Кроме Ctrl+1..6 ещё есть:


    Cmd+1..8 для переключения навигаторов
    Cmd+Alt+0 для показа/скрытия инспектора
    Cmd+Enter для показа/скрытия утилит
    Cmd+Alt+Enter для показа ассистента
    Cmd+Enter — скрыть ассистента
    Cmd+Shift+Y — убрать/показать консоль.


    В IB ещё дофига полезных комбинаций.


  1. stepanp
    04.08.2016 20:41
    -4

    Пусть сделают сначала нормальную работу вкладок(когда вкладка переключает содержимое текстового редактора, а не всего окна), а потом уже можно думать про ерунду из этой статьи.

    Статьи в духе «10 прикольных фич %thing_name%» или «Список хоткеев %another_thing_name%» не нужны.


    1. KoCMoHaBT61
      04.08.2016 20:50
      -2

      Пусть сначала нормальную клавиатуру сделают. С кнопочкой NumLock, чтобы Karabiner не ставить.
      И редактор, у которого есть кнопочка «Пойти в конец строки».


      1. dimaleks
        04.08.2016 21:23
        +4

        Пойти в конец строки — это Cmd+right. Или left, если нужно в начало


        1. KoCMoHaBT61
          04.08.2016 22:16
          -1

          Ишь ты…
          А в Preference почему-то не написано…


          1. dimaleks
            04.08.2016 22:23
            +3

            Это работает в большинстве мест в MacOS, где можно редактировать текст.
            Еще полезные комбинации:
            Cmd+delete удаляет до конца строки,
            Opt+left/right перемещает курсор по слову,
            Opt+delete удаляет по слову.


      1. s_suhanov
        04.08.2016 21:45
        +3

        А что не так с "эппловской" проводной клавиатурой? Там и "Home", и "End". И даже "PgUp" с "PgDn". :)


        1. KoCMoHaBT61
          04.08.2016 22:22
          -2

          Например, замечательная кнопка fn на месте Insert. Невыключаемая цифровая клавиатура. '~' хрен знает где.

          Переключение Rus/Lat через Ctrl+Space. Отличный глобальный shortcut Ctrl+Left.


          1. silvansky
            05.08.2016 09:59
            +3

            '~' хрен знает где.

            Как раз там, где ей удобно пользоваться. Ибо Cmd+~ переключает окна в пределах приложения и тянуться никуда не надо — они рядом.


            И кстати, Fn тоже на месте — чаще всего она используется вместе с клавишами громкости, а они тоже там совсем рядом. А F1-F19 в настройках включены без необходимости нажимать Fn.


            1. KoCMoHaBT61
              05.08.2016 11:59
              -1

              Ну, очевидно-же — запустил XCode и давай клавиши громкости нажимать целый рабочий день.


              1. silvansky
                05.08.2016 12:03
                +2

                В Xcode и системе у меня назначены некоторые вещи на клавиши F1-F12, а они и без Fn работают. Клавиша Ins на маке мне пока ни разу не была нужна. Fn используется только для громкости и яркости экрана. В чём проблема? Вы так страдаете без Ins? Конечно, многие привыкли ещё на винде копипаст делать с её помощью, но ведь Cmd+V ближе и удобнее.


  1. IgorFedorchuk
    04.08.2016 21:31
    +4

    Cmd+Alt+C посмотреть различия с поледним коммитом по всем измененным файлам.


  1. andrew8712
    05.08.2016 08:13
    +1

    Ожидал увидеть набор плагинов, которые облегчают работу в Xcode. Оказалось, что здесь просто набор горячих клавиш.
    Понимаю, что статья — это просто перевод, поэтому к опубликовавшему пост никаких претензий.


    1. s_suhanov
      05.08.2016 08:14
      +1

      Согласен с вами. Не всегда реальность соответствует нашим ожиданиям. :)


    1. daspisch
      05.08.2016 10:38

      Плагины умерли — спасибо эплу и новому икскоду.


  1. nepx
    08.08.2016 10:31

    До сих пор плачу после переезда на XCode с Intellij Idea, но мне уже лучше, намного лучше! XCode никогда не будет содержать и 50% возможностей Idea, к большому сожалению. У меня есть мечта — Apple покупает JetBrains и все встает на свои места.

    P.S. Особо люто вымораживает когда выделение по словам через Option пропускает скобки и прочие небуквенные символы. Вместо выделения до конца строки выделяется следующая линия (или более, если есть пустые). Есть ли возможность это исправить?

    P.P.S. Сейчас будете советовать AppCode :)


    1. Woit
      08.08.2016 12:00

      >>Apple покупает JetBrains и все встает на свои места.

      Не приведи господь! Пусть JetBrains сами пилят свои продукты, у них и без посторонней помощи все получается просто превосходно. После AppCode смотрю на XCode как на нечто, совершенно неюзабельное. А, ну IB конечно, да.


      1. nepx
        08.08.2016 12:14

        Я, например, практически не использую IB. Держусь от него подальше.


    1. Shannon
      09.08.2016 17:03

      Особо люто вымораживает когда выделение по словам через Option пропускает скобки и прочие небуквенные символы

      shift + alt + стрелки — выделяет нормально, останавливается на скобках, запятых, двоеточиях и т.д.

      Вместо выделения до конца строки выделяется следующая линия (или более, если есть пустые). Есть ли возможность это исправить?

      shift + cmd + стрелка вправо — выделить до конца строки


      1. nepx
        09.08.2016 17:35

        Это все понятно. Но «shift + alt + стрелки» ведет себя очень странно. Например в Idea с «alt» выделяется по таким скобкам ")))", а в Xcode — нет, выделение переносится до слова на следующей(!) строке. Попробуйте.


        1. Shannon
          09.08.2016 17:59

          Да, теперь понятно. Есть такое, если это конец строки, просто никогда не сталкивался на практике, так как выделяю до конца строки привычным «shift + cmd + стрелка вправо», а когда по словам перемещаюсь, никогда не было ситуации, чтобы нужно было не к параметрам перейти, а к концу скобок (стираются ненужные переднии скобки через fn + <)


          1. KoCMoHaBT61
            10.08.2016 11:12

            Всегда выделение до конца строки Shift+End. Очень удобно на нумпаде:
            1. все кнопки под рукой: Home, End, PgUp, PgDown, Стрелки.
            2. легко попадать не глядя.
            В силу того, что цифры набираются на 100 порядков реже, чем текст (ну, если не бухгалтер, конечно) считаю, что сохранение цифрового нумпада это неправильно. Пару раз в день цифры можно и в верхнем ряду набрать.

            Karabiner спасает.