Этот пост является вольным переводом статьи 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)
stepanp
04.08.2016 20:41-4Пусть сделают сначала нормальную работу вкладок(когда вкладка переключает содержимое текстового редактора, а не всего окна), а потом уже можно думать про ерунду из этой статьи.
Статьи в духе «10 прикольных фич %thing_name%» или «Список хоткеев %another_thing_name%» не нужны.KoCMoHaBT61
04.08.2016 20:50-2Пусть сначала нормальную клавиатуру сделают. С кнопочкой NumLock, чтобы Karabiner не ставить.
И редактор, у которого есть кнопочка «Пойти в конец строки».dimaleks
04.08.2016 21:23+4Пойти в конец строки — это Cmd+right. Или left, если нужно в начало
KoCMoHaBT61
04.08.2016 22:16-1Ишь ты…
А в Preference почему-то не написано…dimaleks
04.08.2016 22:23+3Это работает в большинстве мест в MacOS, где можно редактировать текст.
Еще полезные комбинации:
Cmd+delete удаляет до конца строки,
Opt+left/right перемещает курсор по слову,
Opt+delete удаляет по слову.
s_suhanov
04.08.2016 21:45+3А что не так с "эппловской" проводной клавиатурой? Там и "Home", и "End". И даже "PgUp" с "PgDn". :)
KoCMoHaBT61
04.08.2016 22:22-2Например, замечательная кнопка fn на месте Insert. Невыключаемая цифровая клавиатура. '~' хрен знает где.
Переключение Rus/Lat через Ctrl+Space. Отличный глобальный shortcut Ctrl+Left.silvansky
05.08.2016 09:59+3'~' хрен знает где.
Как раз там, где ей удобно пользоваться. Ибо
Cmd+~
переключает окна в пределах приложения и тянуться никуда не надо — они рядом.
И кстати,
Fn
тоже на месте — чаще всего она используется вместе с клавишами громкости, а они тоже там совсем рядом. АF1-F19
в настройках включены без необходимости нажиматьFn
.KoCMoHaBT61
05.08.2016 11:59-1Ну, очевидно-же — запустил XCode и давай клавиши громкости нажимать целый рабочий день.
silvansky
05.08.2016 12:03+2В Xcode и системе у меня назначены некоторые вещи на клавиши
F1-F12
, а они и безFn
работают. КлавишаIns
на маке мне пока ни разу не была нужна.Fn
используется только для громкости и яркости экрана. В чём проблема? Вы так страдаете безIns
? Конечно, многие привыкли ещё на винде копипаст делать с её помощью, но ведьCmd+V
ближе и удобнее.
IgorFedorchuk
04.08.2016 21:31+4Cmd+Alt+C посмотреть различия с поледним коммитом по всем измененным файлам.
andrew8712
05.08.2016 08:13+1Ожидал увидеть набор плагинов, которые облегчают работу в Xcode. Оказалось, что здесь просто набор горячих клавиш.
Понимаю, что статья — это просто перевод, поэтому к опубликовавшему пост никаких претензий.
nepx
08.08.2016 10:31До сих пор плачу после переезда на XCode с Intellij Idea, но мне уже лучше, намного лучше! XCode никогда не будет содержать и 50% возможностей Idea, к большому сожалению. У меня есть мечта — Apple покупает JetBrains и все встает на свои места.
P.S. Особо люто вымораживает когда выделение по словам через Option пропускает скобки и прочие небуквенные символы. Вместо выделения до конца строки выделяется следующая линия (или более, если есть пустые). Есть ли возможность это исправить?
P.P.S. Сейчас будете советовать AppCode :)Woit
08.08.2016 12:00>>Apple покупает JetBrains и все встает на свои места.
Не приведи господь! Пусть JetBrains сами пилят свои продукты, у них и без посторонней помощи все получается просто превосходно. После AppCode смотрю на XCode как на нечто, совершенно неюзабельное. А, ну IB конечно, да.
Shannon
09.08.2016 17:03Особо люто вымораживает когда выделение по словам через Option пропускает скобки и прочие небуквенные символы
shift + alt + стрелки — выделяет нормально, останавливается на скобках, запятых, двоеточиях и т.д.
Вместо выделения до конца строки выделяется следующая линия (или более, если есть пустые). Есть ли возможность это исправить?
shift + cmd + стрелка вправо — выделить до конца строкиnepx
09.08.2016 17:35Это все понятно. Но «shift + alt + стрелки» ведет себя очень странно. Например в Idea с «alt» выделяется по таким скобкам ")))", а в Xcode — нет, выделение переносится до слова на следующей(!) строке. Попробуйте.
Shannon
09.08.2016 17:59Да, теперь понятно. Есть такое, если это конец строки, просто никогда не сталкивался на практике, так как выделяю до конца строки привычным «shift + cmd + стрелка вправо», а когда по словам перемещаюсь, никогда не было ситуации, чтобы нужно было не к параметрам перейти, а к концу скобок (стираются ненужные переднии скобки через fn + <)
KoCMoHaBT61
10.08.2016 11:12Всегда выделение до конца строки Shift+End. Очень удобно на нумпаде:
1. все кнопки под рукой: Home, End, PgUp, PgDown, Стрелки.
2. легко попадать не глядя.
В силу того, что цифры набираются на 100 порядков реже, чем текст (ну, если не бухгалтер, конечно) считаю, что сохранение цифрового нумпада это неправильно. Пару раз в день цифры можно и в верхнем ряду набрать.
Karabiner спасает.
silvansky
Кроме
Ctrl+1..6
ещё есть:•
Cmd+1..8
для переключения навигаторов•
Cmd+Alt+0
для показа/скрытия инспектора•
Cmd+Enter
для показа/скрытия утилит•
Cmd+Alt+Enter
для показа ассистента•
Cmd+Enter
— скрыть ассистента•
Cmd+Shift+Y
— убрать/показать консоль.В IB ещё дофига полезных комбинаций.