Как сделать shortcut к файлу

Обновлено: 07.07.2024

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

Вы можете прямо с рабочего стола открывать свои любимые песни, тексты Word, фотографии и другие изображения. Отмечу сразу, эта возможность относится к тем функциям, которые «лежат на поверхности», но используются редко.

Новая удобная возможность для вас

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

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

Последовательность действий

Я рассмотрю последовательность выполняемых шагов на примере хорошо знакомой вам по Windows программы — Total Commander. Зайдите в Play Market и через поиск найдите ее. Вам будет предложено установить приложение или открыть его, если оно ранее уже было инсталлировано.

Нажмите на кнопку в верхней части окна и дождитесь завершения загрузки и установки. Система сообщит вам о готовности программы к использованию. Откройте ее и перейдите к каталогу, содержащему файлы, быстрый доступ к которым с рабочего стола вы хотели бы реализовать.

К примеру, это будут изображения. Формат файла не оказывает влияния на последовательность выполняемых действий. На их месте могут быть созданные офисными программами тесты и электронные таблицы, песни и PDF-файлы.

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

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

Коснувшись его вы вновь выведете на экран диалог создания ярлыка. Единственным отличием станет новая миниатюра значка.

То есть, вы сможете сделать значком к одной картинке совсем другую картинку. Нужно ли это делать, вопрос другой, но такая возможность предусмотрена. Следующим шагом коснитесь надписи, предлагающей применить установку.

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

Существует и третий вариант — коснитесь значка и, удерживая на нем палец, перенесите в нужное место главного экрана.

На рабочем столе, возможно, на втором его экране, появился новый ярлык.

Коснитесь его и вам будет предложено открыть файл одним из совместимых приложений.

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

Но рекомендовать этого я бы не стал, поскольку в другом случае вы предпочтете посмотреть, как картинка выглядит в браузере и вам придется долго возиться с настройками.

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

Мы разобрались, как избежать рутины с помощью шорткатов для навигации, редактирования и отладки, чем могут помочь кастомные сниппеты и как прокачать файловые шаблоны. Описали это в «методичке» по командам в Xcode. Добавляйте в закладки, чтобы посмотреть при случае (а навигация в статье поможет быстро найти то, что нужно).




Оглавление

Шорткат или хоткей?

Шорткат — то, что дает быстрый доступ к пункту меню (копировать/вставить/удалить).

Хоткей — то, у чего нет аналога в пункте меню/интерфейсе взаимодействия (кастомный биндинг).

Строгой разницы между этими терминами нет, можно смело использовать их как взаимозаменяемые. Но я постараюсь придерживаться тех определений, которые описал выше.

Примерно полтора года назад мы стали практиковать изучение шорткатов, хоткеев, сниппетов и файловых шаблонов на уровне iOS-команды, чтобы избавиться от рутины. Например, распечатывали листы с расширенными командами (базовые уже знали) и держали их под рукой, чтобы учить. Это вошло в практику и теперь мы тренируем команды во время онбординга (и порой сами узнаем что-то новое).

Использование шорткатов трудно переоценить: попробуйте вспомнить, когда вы последний раз копировали что-либо через контекстное меню (ПКМ -> Копировать). Эти операции делаются на автомате. Давайте рассмотрим, какие еще операции мы можем довести до автоматизма при работе в Xcode.

Базовые клавиши для активации шорткатов:

  • ⌘ — command;
  • ⌥ — option;
  • ⌃ — control;
  • ⇧ — shift.
  • ⌘ + B — build;
  • ⌘ + R — run;
  • ⌘ + U — run unit tests;
  • ⌘ +. — stop build/run/run unit tests;
  • ⌘ + ⇧ + ⌥ + K — clean build folder.

Навигация

Начнём автоматизацию рутины с шорткатов для навигации:

⌘ + 0 (ноль) — показать/скрыть панель Navigator :

⌘ + цифры — быстрое перемещение по вкладкам панели Navigator :

Повторим трюк с панели навигации для панели Inspectors и научимся скрывать/показывать её. Просто добавляем option: ⌥ + ⌘ + 0 (ноль):

С зажатым option мы также можем пройтись по всем вкладкам панели — ⌥ + ⌘ +цифры:

Assistant Editor скрыть не получиться, зато в нём можно делать много крутых штук.

⌘ + ⇧ + O — быстро найдем и откроем файл. Открыть можно не только файлы проекта, но и файлы с документацией iOS:

Если найденный файл хочется открыть рядом, зажимаем ⌥, перед тем, как нажать Enter :

Либо, можно зажать ⌥ + ⇧ — в этому случае мы сами выбираем, где необходимо расположить радактор:

Перемещаться между редакторами можно с помощью сочетания ⌘ + J + стрелочки для выбора:

  • ⌘ + ⌃ + T — позволяет открыть несколько редакторов (зажмите столько, сколько нужно);
  • ⌘ + ⌃ + ⌥ + T — меняет ориентацию для открываемого редактора (если предыдущий редактор открывался горизонтально, то новый откроется вертикально, и наоборот);
  • ⌘ + ⇧ + J — поможет быстро найти файл в структуре проекта.

Рассмотрим навигацию внутри панели, отображающую путь до файла:


Все взаимодействия с ней происходят путём зажатия ⌃ и цифры.

Для всех сочетаний данной панели (за исключением ⌃ + 1) вы можете использовать поиск: после того как сработал хоткей, начните писать название файла/класса. Так работать с данной панелью гораздо удобнее.

⌃ + 1 — позволяет узнать о суперклассах нашего класса, какие протоколы он поддерживает, кто вызывает его методы, какие экстеншены есть у класса.

  • ⌃ + 2 и ⌃ + 3 — отображает список файлов, по которым мы перемещались. Эти сочетания отлично дополняют два других: ⌃ + ⌘ + стрелочки влево/вправо для непосредственной навигации по истории просмотренных файлов назад и вперёд;
  • ⌃ + 4 — открывает окно для навигации по структуре проекта (мало чем полезно, на мой взгляд, часто проекты имеют большую вложенность);
  • ⌃ + 5 — навигация по файлам внутри директории, в которой открыт текущий файл;
  • ⌃ + 6 — навигация по свойствам и методам класса в текущем файле.
  • ⌘ + L — переход к строке кода;
  • ⌘ + курсор на миникарте — показать структуру файла.


⌃ + ⌥ + ⌘ + Enter — открыть класс для сториборда в отдельном редакторе:

⇧ + ⌃+ ⌥ + ⌘ или ⇧ + ⌥ + ⌘ + ПКМ — контекстное меню иерархии вьюх в сториборде:

Редактирование

  • ⌘ + стрелки влево/вправо — позволяют быстро перейти в начало/конец строки;
  • ⌥ + стрелки влево/вправо — быстрое перемещение между словами без пробелов;
  • Control + стрелки влево/вправо — перемещение между словами в camelCase .
Здесь есть хитрость: изначально эта комбинация в macOS переключает рабочие столы, поэтому для работы хоткея в Xcode, его нужно переопределить, либо изменить в System Preferences.



Вот что мы сможем делать в итоге:

Все эти сочетания отлично работают с зажатым Shift для выделения. А вот что дальше можно делать с этим выделенным блоком:

⌥ + ⌘+ [ или ] — перемещает выделенный блок/строчку вверх/вниз. Самая крутая фича здесь — автоматический заход в скоупы.

  • ⌘ + [ или ] — перемещает выделенный блок (строку) влево/вправо;
  • ⌃ + I — автоматическое выравнивание выделенного блока (согласно настройкам в Xcode -> Preferences -> Text Editing -> Indentations);
  • ⌥ + выделение курсором — такая комбинация создает множественные курсоры. Удобно проставлять атрибут доступа в модельке или добавлять/удалять одинаковые части.
  • ⌘ + F — поиск по файлу;
  • ⌘ + ⇧ + F — поиск по проекту;
  • ⌥ + ⌘ + F — поиск и замена;
  • ⌃ + ⌥ + ⌘ + F — фикс всех ошибок в скоупе (не совсем то, о чем вы подумали, но тоже очень крутая вещь). В данном примере явно указывается модификатор доступа public .


⇧ + ⌘ + A — показать контекстное меню действий. В зависимости от того, для кого мы вызываем это меню, Xcode предложит релевантные действия. В списке также можно использовать поиск:

Отладка

Я заметил, что в нашей команде мало кто пользуется шорткатами для консоли, а ведь это не самое редкое место в работе. Давайте изучать.

  • ⌘ + \ — добавить/удалить брейкпойнт;
  • ⌘ + Y — отключить (disable) брейкпойнт.
  • ⌘ + ⇧ + c — открыть консоль;
  • ⇧ + ⌥ + Y — скрыть консоль.
  • ⌘ + K — очистить содержимое консоли;
  • s — step into (step);
  • n — step over (next);
  • finish — step out;
  • c — continue;
  • breakpoint disable — отключить все брейкпойнты.


Кастомизация

В настройках Xcode можно задать свои биндинги для операций. Например, зададим хоткей для оборачивания строки в NSLocalizedString . Для этого перейдем во вкладку Key Bindings настроек Xcode и найдем интересующую команду:


У себя в команда мы решили что это будет сочетание ^ + ⌘ + L. Можем смело использовать:

Или добавить хоткей для удаления строки целиком — ⌘ + D (⌘ + backspace удаляет только текст):


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

Можно не только задавать, но и изменять существующие биндинги. Например, зачем мне шорткат для печати в Xcode? Удалил его, теперь можно забиндить на него что-то полезное.

Xcode позволяет создать несколько биндинг сетов. Можно создать сет и пошарить его в команде, это позволит более эффективно работать в паре. Файлы биндингов расположены здесь:

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

Воспользуемся другой функциональностью Xcode — Behaviors :

В нашем случае скрипт выглядит так: запускаем терминал (если он не запущен), переходим в папку с проектом и можем указывать нужные команды для работы.


Теперь можно пользоваться терминалом не выходя из Xcode: ⌘ + P запустит скрипт на переустановку. Зажать сочетание — это всё, что от нас нужно.

Какие еще разделы для шорткатов можно прокачать:

  • рефакторинг — extract to function/method/variable, add missing switch case;
  • брейкпойнты — создание Swift Error/Exception/Symbolic/Test Failure;
  • Version Control Source — push/pull/fetch/new branch/checkout;
  • работа с Swift Package Manager — add/reset/resolve/update.

Как изучать шорткаты в программах? Как минимум, все стандартные приложения macOS имеют вкладку Help с возможностью поиска. Поиск в интерактивном режиме не только проведет вас по всем самым потаённым местам, но и подскажет шорткат (сам поиск удобно вызывать хоткеем ⌘ + ⇧ + /).

Сниппеты

Иногда, работая над проектом, я понимал, что раз за разом пишу одно и то же — так называемый бойлерплейт. Этот процесс тоже можно автоматизировать. К счастью, сейчас есть много очень хороших решений и они скорей всего вам знакомы: это и Sourcery для генерации кода по шаблону и библиотеки по типу R.Swift для генерации доступа к ресурсам, и другие фреймворки. Но не всегда есть возможность затащить стороннюю зависимость в проект. К тому же есть бойлерплейт-код, где подобные библиотеки не помогут. Зато поможет стандартный инструмент Xcode — сниппеты.

Сниппеты есть для всех ключевых слов языка Swift (и некоторых других) и стандартных конструкций: циклов, ветвлений, функций. Но часто мне нужен не просто var , а private/public var . Точно также мне не нужен просто @testable , мне нужен @testable import . Другими словами, я бы хотел оперировать уже готовыми конструкциями, а не собирать их по частям.

Изменить стандартные сниппеты нельзя, зато добавить свой совсем просто: выделяем блок кода и в контекстном меню выбираем «Create Code Snippet». Дальше Xcode предложит его настроить: задать имя, добавить описание, платформу, скоуп вызова, и, конечно же, указать комплишн, по которому будет вызываться наш сниппет:

Вот так быстро можно «сгенерировать» код для минимальной работы таблицы (ещё быстрее можно сделать, если сразу в сниппете задать количество строк и возвращать пустую ячейку).

Так выглядит сниппет в библиотеке Xcode (⌘ + ⇧ + L):



А вот как в два тапа можно сделать импорт целой пачки фреймворков для юнит-тестов:

В проекте «Додо Пиццы» мы пишем тесты с помощью Quick/Nimble. Каждый новый спек начинается с импорта 4–6 фреймворков (минимум), и продолжается телом разного уровня вложенности. Импортировать фреймворки мы уже научились, сделаем это и для тела спеки. Всего пара тапов по клавиатуре и сетап для тестов готов:

Еще один кейс: в нашем проекте для логирования ошибки необходимо описать её в специальном виде: создаем энумку, наследуемся от протокола Error , задаем кейсы, устанавливаем код ошибки, описываем различные параметры. Каждый раз по памяти писать неудобно:


Для меня это идеальный кандидат для оптимизации своего времени — пусть сниппет делает все за меня:

А сколько еще таких мест можно улучшить (и всё это бесплатно). Несколько личных примеров кандидатов для сниппета:

  • Делегат и data source для таблицы/коллекции (обязательные методы).
  • При объявлении методов протокола срабатывал стандартный сниппет функции (с открытыми фигурными скобками). Но мне не нужны скобки в протоколе, поэтому я добавил свой сниппет, без скобок. Теперь не нарадуюсь.


Часто типы данных и функции нужно объявлять с явным типом доступа. Это можно можно завернуть в сниппет.

  • weak self для замыканий — guard let weakSelf = self else < return >;
  • локализация — оборачивание в NSLocalizedString (основное отличие от хоткея описанного выше в том, что здесь мы указываем параметр для бандла).

Шаблоны

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

Шаблоны удобны, но Apple не предоставляет инструменты для их разработки и документации. Но можно сделать все ручками, потому что есть доступ к стандартным шаблонам файлов (и проектов) Xcode. Чтобы их найти, перейдём в каталог по этому пути:


Дальше разместим свои темплейты: создаём папку по пути ниже, её имя будет отображаться в окне Xcode. Я назвал папку Helpers:


Шаблон для Xcode — это каталог, куда входят:

  • файл шаблона (например, .swift или .storyboard );
  • .plist файл с настройками;
  • иконки двух размеров для отображения в окне Xcode при создании файла.

Часто нам интересны только пара параметров, но всё остальное мы обязаны прописать (обязанность протокола). Как раз для этого случая я создал шаблон файла, который не только экономит мне время, но и сразу подсказывает где и что дописать.

Вот так может выглядеть .plist файл в нашем случае:


Добавил код в .swift файл (полный пример на GitHub) и обновил иконки. Теперь можно протестировать создание в Xcode (возможно потребуется его перезапуск). Появилась отдельная секция Helpers с моим шаблоном.


А вот такое окно мы увидим после выбора шаблона:


Вводим имя для реквеста. В итоге будет создан вот такой файл:


Только посмотрите сколько работы за меня делают шаблоны!

  • У нас есть правило для именования реквестов — постфикс Request в имени. При создании файла мне не нужно об этом заботиться, я только ввожу имя реквеста, и по шаблону будет создан класс с правильным названием и именем файла. GetMenuRequest и GetMenuRequest.swift в данном случае.
  • Класс имплементирует протокол, но большинство параметров — дефолтные. После создания файла, шаблон мне «подсказывает» места, которые скорее всего я хочу изменить.

В проекте «Додо Пиццы» мы отделяем вью от котроллера. Если это новый контроллер, то создаем под него сториборд/ксиб. Чтобы создать один экран, нужно создать минимум 3 файла: вью, контроллер и сториборд. Помимо этого, контроллер должен быть связан с вью, а сториборд иметь ссылки на вью и контроллер. При этом, мне не всегда нужно создавать файл сториборда (если он уже есть), или файл с вью (если она не нужна). В этой ситуации помогут многофайловые шаблоны с кастомизацией.

В нашем случае нужно будет создать 4 папки для шаблона:

  1. просто контроллер;
  2. контроллер и сториборд;
  3. контроллер и вью;
  4. контроллер, вью и сториборд;


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

Вот так может выглядеть plist:


А вот что получим в итоге:


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


Сила шаблонов в том, что на уровне создания файла можно конфигурировать, что именно нужно создать. Например, можно создать шаблон для VIPER-модуля и при создании указывать только то, что вам нужно (презентер с интерактором или весь модуль целиком).

Бонус секция для шаблонов

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

Фича в том, что в шаблоне мы можем сконфигурировать текстовое поле так, что оно будет выступать в роли превью для вводимого текста. Например, это можно видеть при создании нового проекта — поле Bundle Identifier меняется в зависимости от поля Product Name . В моем примере это выглядит так:

Потрясающе, ведь теперь я знаю, что мне не нужно дописывать бойлерплейт части ViewController и View .

Сделать это просто: в .plist добавим новое текстовое поле, где в default-параметре укажем переменную для интересующего идентификатора.


Выглядит эффектно. Спасибо @ihppie за то, что рассказал про эту фичу.

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

В этой статье не будет «топ сочетаний клавиш, которые должен знать каждый разработчик» или «рейтинг любимых сочетаний клавиш, которые ускорят вас на 124%». Я хочу поделиться опытом, как можно постепенно изучать шорткаты.. Так, чтобы работа с кодовой базой становилась оптимальнее и вы выполняли рутинные действия на автомате вместо того, чтобы искать десятый раз за день один и тот же пункт в меню.


Я очень люблю работать на клавиатуре. Возможно, причина в том, что раньше учился играть на музыкальных инструментах и появилась привычка к отточенным, чётким и быстрым, но плавным движениям пальцев. Поэтому при работе с кодом использование мышки или трекпада кажется мне не очень эффективным, стараюсь по максимуму использовать возможности IDE и делать всё с помощью клавиатуры. Но так было не всегда.

Буквально пару лет назад я знал максимум 10 любимых сочетаний клавиш (в основном это была навигация) и думал, что этого достаточно. По любому поводу тянулся к мышке и искал глазами в меню нужный пункт. Казалось, это вполне нормально, а изучение шорткатов или другого подхода не стоит затраченных усилий и времени.

Всё поменялось после моего прихода в Dodo. Стало сюрпризом, что в ходе онбординга мне настоятельно рекомендовали распечатать список шорткатов IDE, в которой предстоит работать (это были Rider и Android Studio) и время от времени следили за тем, чтобы я выучил хотя бы базовые 10-15 сочетаний. Правда, этим всё и ограничилось, но после того, как я узнал несколько новых для себя и полезных шорткатов, стало интересно, может, есть ещё сочетания клавиш, про которые я не знаю, но которые сильно упростят мне работу? И (кто бы мог подумать) оказалось, что есть!

Если вы решили, что хотите работать с IDE быстрее и эффективнее, то давайте начнём. Практики, описанные ниже, не привязаны к конкретной IDE. Для примера буду описывать свой опыт с Android Studio.

Первые шаги

Сложнее всего заставить себя начать. Потому что сначала нужно убедить себя, что это действительно необходимо. Меня мотивировали коллеги, которые в два быстрых клика по клавиатуре выполняли то, что я привык делать за две-три секунды с помощью трекпада. Также есть несколько исследований, из которых можно сделать вывод: изначально (без тренировки) мышка даёт бОльшую скорость, которая, однако, не сильно растёт с практикой. При использовании же шорткатов начальная скорость довольно низкая, но при совершенствовании навыков она может расти практически сколько угодно. С некоторыми исследованиями можно ознакомиться вот тут.

Распечатайте список шорткатов из IDE

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

Для того чтобы напечатать текущую настройку сочетаний клавиш в Idea, есть удобный плагин Keymap exporter.




Найдите подборки шорткатов для вашей IDE в сети

На Хабре, Медиуме и других источниках можно найти много статей с описанием самых распространённых шорткатов для вашей любимой IDE. Очень удобно, когда в таких статьях есть иллюстрации действий, выполняемых сочетанием клавиш. Например, для Android Studio мне очень нравится статья Android Studio Shortcuts and Tricks to Speed Up Your Productivity. Такие статьи позволят найти самые полезные шорткаты. Я отмечал их в распечатанном списке, чтобы визуально выделить, и применял их в работе в первую очередь. Вы можете поступить так же.

Просмотрите список шорткатов в вашей IDE

Когда вы немного освоились с основными шорткатами, пролистайте список всех сочетаний, настроенных в IDE. В Idea это можно сделать в Preferences -> Keymap.

Зачем, если мы только что распечатали целый список? Во-первых, шорткатов слишком много, и не все из них печатаются. К примеру, отсутствует суперполезное сочетание Control + G (для macOS — найти следующее вхождение выделенного текста и выделить его). Во-вторых, некоторые полезные команды могут не иметь шортката, в таком случае можно назначить свой.

Возможно, вы найдёте несколько полезных сочетаний клавиш и добавите их в свой арсенал. Не нужно пытаться сразу запомнить всё, можно постепенно учить на практике.


Тренируйтесь

Самое Главное Сочетание Клавиш

Вы можете в любой момент забыть любое сочетание клавиш, а может, для нужного действия его нет вообще. И вот рука уже сама потянулась к трекпаду. Без паники останавливаем её, возвращаем на клавиатуру и вспоминаем главное сочетание клавиш: Command + Shift + A (macOS) или Control + Shift + A (Windows). При нажатии увидите меню, которое называется Actions (и сочетание легко запомнить по первой букве этого слова). В появившемся окне начинаете набирать действие, которое хотели выполнить, и IDE сама подскажет вам и само действие, и шорткат для него.

По действиям в списке очень удобно перемещаться стрелками вверх/вниз. Можете нажать просто Enter, чтобы выполнить действие, а можете закрыть это окно и воспользоваться предложенным шорткатом. Вуаля, действие выполнено без единого движения курсора!


В macOS есть ещё одно полезное сочетание клавиш — Command + Shift + /. Это вызов справки. Если ваша IDE основана не на Idea, то оно может очень пригодиться. Всё просто: нажимаете Command + Shift + / и начинаете вводить команду. Причём это будет работать не только в IDE.

Я, к примеру, пишу эту статью в «Заметках» и забыл, как выполняется поиск по документу: вызываю справку с помощью шортката, набираю «Найти», с помощью стрелок нахожу нужную команду. Можно нажать Enter, чтобы команда выполнилась, но это не наш путь — мы же изучаем шорткаты :) Напротив пункта меню обычно можно найти нужное сочетание клавиш — посмотрите его, закройте меню и выполните команду с его помощью. Ничего страшного, если вы не запомните с первого раза — после нескольких повторений всё равно получится.

Пользуйтесь плагинами

Есть плагины, которые облегчают запоминание сочетаний клавиш. Их можно найти, поколдовав разными словосочетаниями со словом «shortcut» в поиске плагинов. Для Idea очень нравится Key promoter X. Каждый раз, когда выполняется действие мышкой, он подсказывает, что то же самое можно сделать с помощью шортката:


Своё дело этот плагин делает хорошо: я узнал и запомнил много полезных сочетаний клавиш с его помощью, лишь бы не выскакивало назойливое окошко внизу экрана. Есть и статистика по действиям, которые можно было бы выполнить с помощью клавиатуры, но они были сделаны мышкой. Вот, например, моя статистика:

Видно, что нужно почаще использовать сочетание Command + B, это ускорило бы навигацию.

Видно, что нужно почаще использовать сочетание Command + B, это ускорило бы навигацию.

Ещё одна полезная фича Key promoter X: если то, что вы делаете мышкой, не имеет сочетания клавиш, плагин предложит добавить его.


Устройте себе день без мышки и трекпада

Когда я попробовал обойтись без трекпада впервые, то испытал раздражение. Честно. Вот они, вкладки файлов в IDE, которые я привык переключать мышкой! Блин, да как между ними переключаться?! Я злился, что трачу на привычное действие так много времени. Первый раз продлился около полутора часов, и я ужасно устал. Но это нормальная реакция мозга на новый вид нагрузки. Уже на второй раз я приспособился и выполнял действия по навигации и рефакторингу значительно быстрее.

Что делать? Договоритесь с собой и своими руками, что при работе в IDE каждую среду до обеда вы не будете трогать мышку. Для начала может быть достаточно даже одного часа. Практически любое действие в IDE можно выполнить без мыши, с помощью шорткатов или Самого Главного Сочетания Клавиш Command + Shift + A. Попробуйте и через некоторое время обнаружите, что руки сами понимают, как выполнить нужное действие максимально быстро.

У меня даже в календаре стоит напоминалка, чтобы точно не забыть.

У меня даже в календаре стоит напоминалка, чтобы точно не забыть.

Если очень хочется соблюдать «безмышинный» режим, но не получается, могу посоветовать ещё один плагин — Force Shortcuts. Если для действия, которое вы совершаете, есть шорткат, плагин блокирует клик и предлагает использовать шорткат:


Тренируйтесь регулярно

Если вы выполняете упражнения вроде TDD Kata, добавьте в них тренировку шорткатов. Если нет — ничего страшного. Выберите один шорткат, который можно использовать при работе с кодом, и старайтесь применять его в ходе упражнений или работы в течение всего дня. Через некоторое время будете применять его, не задумываясь.

Обменивайтесь знаниями

Обращайте внимание на то, как пользуются IDE ваши коллеги

Вы можете работать в паре, просто работать рядом с кем-то или проходить мимо по своим делам — обращайте внимание, как ваши коллеги пользуются IDE. Так можно взять себе на вооружение много интересных приёмов.

Ещё можно посмотреть статистику шорткатов, которые используют коллеги — для этого есть плагин Shortcut Stats. Если видите в топе незнакомый шорткат — берите на заметку. Возможно, именно его вам не хватает в ежедневной работе. Сама статистика выглядит примерно так: указано сочетание клавиш, количество применений, а при выборе строки в списке снизу отображается название действия:


Устраивайте обсуждение любимых шорткатов

Когда общаетесь с коллегами, спросите про их любимое сочетание клавиш в IDE — они могут вас удивить. И сами делитесь, если узнали об интересном шорткате, которым стали пользоваться — возможно, ваш коллега даже не догадывался о нём. Например, недавно на еженедельной встрече Android-гильдии я узнал о том самом сочетании Control + G. Теперь не представляю, как раньше работал без него.

Попробуйте научить шорткатам коллегу, который привык пользоваться мышкой

Если вам понравилось, насколько быстро стали выполняться действия в IDE, и вы видите, как ваш коллега мучительно медленно ведёт курсор из одного угла экрана в другой, подскажите ему удобное сочетание клавиш. Скорее всего, этим сильно облегчите ему жизнь.

Ещё раз коротко перечислю основные мысли:

начните с нескольких основных сочетаний клавиш. Чтобы лучше запомнить их, положите список в распечатанном виде рядом с рабочим местом и просматривайте его время от времени;

выбирайте 1-2 новых для себя сочетаний клавиш и старайтесь постоянно применять в работе;

используйте плагины — они могут упростить изучение шорткатов;

смотрите, как работают в IDE ваши коллеги и обменивайтесь с ними интересными приёмами и шорткатами.

Вместо заключения

Сейчас периодически просматриваю статьи-подборки шорткатов IDE, в которой работаю, пробегаю по списку сочетаний клавиш в настройках и иногда добавляю новые, если каких-то не хватает. Например, на скриншоте выше видно, что я использовал 171 шорткат 58 тысяч раз. К моменту публикации поста (это 2 недели спустя) — уже 187 шорткатов 83 тысяч раз.

Всё, что я написал, помогло мне использовать шорткаты в 80% случаев, а трекпад трогать крайне редко. В голове постоянно мысль, что нужно использовать клавиатуру, даже если я не знаю нужный шорткат. Остались некоторые действия, которые я пока не представляю, как сделать на клавиатуре быстрее, чем с помощью трекпада — тогда пользуюсь им. К примеру, если нужно быстро проскроллить на большое расстояние, выделить огромный кусок кода. Всё, что касается предпросмотра вёрстки, также делаю с помощью трекпада. Ещё есть вещи, которые можно сделать с помощью шортката, но никак не заставлю себя запомнить его — например, терминал в Android Studio я каждый раз открываю с помощью мыши.

I want my .bat script (test.bat) to create a shortcut to itself so that I can copy it to my windows 8 Startup folder.

I have written this line of code to copy the file but I haven't yet found a way to create the said shortcut, as you can see it only copies the script.

Can you help me out?


1,282 2 2 gold badges 16 16 silver badges 41 41 bronze badges

11 Answers 11

You could use a PowerShell command. Stick this in your batch script and it'll create a shortcut to %

f0 in %userprofile%\Start Menu\Programs\Startup :

If you prefer not to use PowerShell, you could use mklink to make a symbolic link. Syntax:

See mklink /? in a console window for full syntax, and this web page for further information.

In your batch script, do:

The shortcut created isn't a traditional .lnk file, but it should work the same nevertheless. Be advised that this will only work if the .bat file is run from the same drive as your startup folder. Also, apparently admin rights are required to create symbolic links.

23k 5 5 gold badges 51 51 silver badges 96 96 bronze badges aah.+1. Forgot about mklink. Though it is supported on vista and above (anyway XP is on the way to the graveyard) and is not so rich on options. Powershell solution is much better :)

With -help you can check the other options (you can set icon , admin permissions and etc.)


51.7k 18 18 gold badges 128 128 silver badges 173 173 bronze badges

Rohit Sahu's answer worked best for me in Windows 10. The PowerShell solution ran, but no shortcut appeared. The JScript solution gave me syntax errors. I didn't try mklink, since I didn't want to mess with permissions.

I wanted the shortcut to appear on the desktop. But I also needed to set the icon, the description, and the working directory. Note that MyApp48.bmp is a 48x48 pixel image. Here's my mod of Rohit's solution:


I wanted a very simple solution to a very simple problem and I have already been given it. I was trying to just use BAT, not visual basic. But thanks for the answer! Might help someone else that comes here looking for solutions. I had problems getting the Desktop path in a Terminal Server where users were using custom Desktop location. To solve this, I had to read the Desktop location from the registry. Set objShell = CreateObject("WScript.Shell") strRegDesktopPath = objShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop") desktopPath = objShell.ExpandEnvironmentStrings(strRegDesktopPath) Set oWS = WScript.CreateObject("WScript.Shell") sLinkFile = desktopPath & "\MyApp.lnk"

The best way is to run this batch file. open notepad and type:-

Save as filename.bat(be careful while saving select all file types) worked well in win XP.

worked for me, although I converted it to the equivalent cygwin shell script first.

Читайте также: