CTRL + G — хоткей, полностью изменивший принцип моей работы

05a02d09c7464911b652fc5a5cbf57ed.jpeg

В этой статье я расскажу об одном из очень важных и нужных хоткеев в Android Studio, который позволит вам значительно повысить вашу производительность. Кейсы, описанные здесь, встречаются наиболее часто при рефакторинге уже готового кода, поэтому рекомендую досконально изучить статью и выучить описанные хоткеи.

Внимание: Данный пост является очень вольным переводом этой статьи. Целью ставилось донести смысл текста, поэтому в некоторых местах текст может не совпадать с оригиналом.

Также советую посмотреть:

» Правильная настройка Android Studio
» Группирующий плагин для Android Studio

Мультикурсор. Что вы должны знать, чтобы понять, что это действительно мощно?
CTRL+G (Alt + J для Windows). Выделите текст и нажмите CTRL + G. Таким образом вы выделите вхождение выделенного текста далее в коде (таким образом создав новый курсор):

2878a022703d46a6f91a516f0957f9ab.gif

CTRL + G

Важной особенностью является то, что функция мультикурсор воспринимает код как обычный текст, так что вы можете также выбрать ключевое слово Java, и создать мультикурсор на его основе.

8710d84de329c6b060a1d4ae0e870356.gif

Комбинации клавиш для выделения
Изучите эти три комбинации клавиш:

64a21aca9659b506b1e8c7dc391a92f9.gif
2afd0687fd6e6b97c114ab1ccdc8d355.png

Я мог бы попытаться объяснить что они делают, но лучше попробовать самому.

Важно: комбинации можно использовать без зажатой клавиши Shift для простого перемещения коду.

Примеры реального использования
Я использую мультикурсор постоянно. Иногда для больших задач, иногда для маленьких. Ниже приведены некоторые примеры использования данного сочетания клавиш.

@IntDef


Я очень люблю Support Annotations. Я использую их постоянно. @IntDef позволяет отказаться от использования перечислений, и просто создать кучу int«ов вместо enum. Посмотрите как мультикурсор может помочь мне с этим.

Вот что мне нужно:

cc4681915e417b9ce9714360e8b10a31.png

Вот как я могу получить это:

Стандартный способ

27b4744da301252bee232721a4653e10.gif

Простое копирование-вставка

8267aa183783b971a504fc1213630a3d.gif

И переименование

Мультикурсор

a12741e805982a86e07fd09b801f6ce3.gif

CTRL + G

Я мог бы использовал его для выделения других вещей (»=»,»1»,»;» и т. д.), для примера я выбрал «int».

Создание последовательности


Если вы не хотите использовать плагин String Manipulation вы можете сделать это вручную. Вот как это выглядит с использованием плагина:

50fda420d87cad36d09f83a70e7c8310.gif

Последнее, возможно, было сделать при помощи SHIFT + ←

25784c59215cc3c293ffa787513abc6a.gif

(Я обычно использую комбинацию клавиш C + 5, но здесь сделал это с помощью мыши для наглядности)
Копирование модифицированной версии строк

А вот, где действительно происходят «чудеса»:

99cb78c36842224e40532e8538b286f9.gif

Готово.

Извлечение стилей из xml-макета
Мультикурсор может легко работать в XML-макета, а также. В моем конкретном случае было немного сложнее — мне нужно было извлечь стили из нескольких View.

В этом примере я использовал мультикурсор дважды. Двумя различными способами.

Предположим, есть такой макет:

f801cb017ab6fe8c7eeca32567c38b45.png

Вот как мультикурсор можете помочь мне с процессом извлечения:

14c59f60f8bd288ada9a03da590fa9aa.gif

И вот как я применяю извлеченные стиль к XML (также с мультикурсором):

08107a511480bdf4c599de92f6a9a82a.gif

OnClick в Butterknife
Это пример того, что произошло со мной несколько дней назад.

У было 5 кнопок в виде сложной View я использовал плагин Android Studio для генерации переменных с Bind. Но позже я понял, что мне не нужно хранить ссылки на эти кнопки. Мне просто нужно обработать клик на кнопки. Вот как я справился с этим с помощью мультикурсора:

a6964a5f960332f5d0288c022b0ad887.gif

Легко и быстро

И многое другое…
Для меня это началось как небольшой трюк, который я использую один или два раза. Но, как это бывает с новыми вещами, во время работы я находил все больше и больше применений для него, и вдруг я поймал себя на мысли: «Как я мог жить без него раньше?».

Если вы еще не используете его, я настоятельно рекомендую вам попробовать!

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

  • 19 сентября 2016 в 18:25

    +3

    При всём том качестве гифок и объёме проделанной работе, пост про один хоткей? Вы серьёзно? При том что фича весьма известная и обычный мультикрусор по альту умеет множество редакторов. Вимеры вообще тихо хихикают от подобных «фич».
    • 19 сентября 2016 в 18:39

      0

      Статья не совсем про хоткий, а скорее про саму идею мультиселекта. Из коллег-разработчиков, я замечал что от силы 20% используют эту «фичу», и ещё меньше делают это наполную.
      Важное отличие приведенных примеров от мультикурсора по альту это именно выделение шаблонов. Из своего опыта, в 90% использовании мультиселекта одним альтом не обойдешься.
      Вимеры могут хихикать, но тут вопрос не холивара, а повышения производительности тех, кто уже выбрал темную сторону IDE. Вимеры могут игнорировать посты про Android studio.


      пс я работаю с основном с идеей, и там хоткий другой по умолчанию (alt+j). И мне кажется в студии вряд ли он ctrl+g (ибо это стандартный переход на строку).
      Кстати, если вдруг кто будет читать, альтернатива для alt+select на клавиатуре (без мыши) ctrl+ctrl и стрелки. По крайней мере в идее именно так

    • 19 сентября 2016 в 18:41

      0

      »хихи»…
      Самое детальное описание одного хоткея, что я видел…
  • 19 сентября 2016 в 19:06

    0

    Спасибо, что вставили гифки.так гораздо проще усваивается статья, чем если бы была полностью описана текстом. Плюс время секономили
  • 19 сентября 2016 в 19:10

    0

    В примерах «обычных», без хоткея, я вижу как вы выделяете, и правите текст.
    Все примеры с мультикурсором — только выделение, никаких исправлений. Как-то непонятно, зачем выделять? Я что-то пропустил?

    Чем плоха обычная автозамена текста в выделенном блоке?

© Habrahabr.ru