Путь от компьютерной мыши до клавиатурного героя
Сочетания клавиш - это простые команды, позволяющие удерживать пальцы на клавиатуре, а не прыгать вперед и назад к мыши. Вы, вероятно, уже знаете такие распространенные сочетания клавиш, как CTRL + C для копирования и CTRL + V для вставки, но есть множество других сочетаний клавиш, которые позволяют делать что угодно на вашем компьютере или в конкретной программе. Говорят, что знание только основных сочетаний экономит вам 8 рабочих дней каждый год. Цель этой статьи - сэкономить вам в два раза больше.
К сожалению, для многих знание «контрол-цэ» и «контрол-вэ» становится верхней границей в использовании комбинаций. Именно для них были написаны первые главы этой статьи, где мы разберем основные сочетания клавиш и советы по эффективному использованию клавиатуры, которые прогонят из вас компьютерную мышь.
Для тех, кто осилил начало статьи, дальше начнется самое интересное. Я расскажу о таком инструменте, как AutoHotkey, использование которого сделает из вас настоящего печатающего ниндзю.
В конце вы увидите, как все эти знания можно использовать при работе с самым популярным на данный момент текстовым редактором Visual Studio Code.
Не пытайтесь просто запомнить все, что написано в статье. Обязательно попробуйте понажимать все сочетания клавиш, о которых вы не знали! А потом возвращайтесь время от времени, чтобы освежить память.
Эта статья больше актуальна для владельцев системы Windows.
Поехали.
Содержание
Базовые сочетания
Базовыми сочетаниями я буду называть те, которые выполняют похожие функции в разных операционных системах и приложениях, как например Ctrl+C и Ctrl+V, о которых в этой статье говориться не будет :).
Esc — aka Escape или Эскейп или Эскейт или... ладно, ладно. Тут все просто, она в основном используется для выхода из чего-либо или отмены чего-либо. Если все пошло наперекосяк и «Я что-то нажала и все уронилось», то скорее всего вам нужно будет обратиться к этой клавише.
Tab — Таб это не только символ табуляции, но еще и полезнейший инструмент смены фокуса. Фокус здесь означает то место, на которое будут направлены действия пользователя в системе. Так, например, если у нас в приложении стоит фокус на текстовом поле, то все, что мы печатаем, будет вноситься именно в это поле. Если фокус на кнопке - то Space или в худшем случае Enter нажмут на эту кнопку. Так что совет тут такой. Когда заполняем формы, переключаемся между полями через Tab, отмечаем галочки через Space, решили вернуться - Shift+Tab.
Shift — позволяет выделять последовательности символов или других объектов в зависимости от программы. Например, в проводнике, если выбрать файл, зажать шифт и выбрать другой файл, то все, что находилось между этими двумя файлами будет выделено.
Ctrl — работает похожим образом, но позволяет точечно выбирать, что именно вам нужно.
Shift+/<key/> — так исторически сложилось, что Shift часто используется для инвертирования действия, выполненного сочетанием клавиш без Shift. Например, Shift+Tab совершает действие, противоположное Tab. Keep in mind!
F1 — вызов справки. Не знаю, почему так.
Ctrl+W — закрыть окно, вкладку. Почти всегда работает в приложениях, где есть вкладки.
Ctrl+F — поиск. F - Find.
Ctrl+P — в большинстве программ вызывает меню печати.
Ctrl+D — создать копию объекта. От слова Duplicate.
Ctrl+S — сохранить. Что тут еще говорить.
Ctrl+Z — отменить действие. В терминалах часто используется для остановки процесса и перевода его в фон.
Ctrl+Y/Ctrl+Shift+Z — повторить отмененное действие.
Ctrl+N — открыть новое окно.
Ctrl+(+) — приблизить / увеличить масштаб.
Ctrl+(-) — отдалить / уменьшить масштаб.
Хотя использование мыши - дело, недостойное настоящего погромиста, но иногда без нее никуда.
Эти сочетания мыши критичны для тех, кто работает с графическими элементами.
Ctrl+MouseScroll — увеличить / уменьшить масштаб.
Shift+MouseScroll — переместиться по горизонтали. Иногда весь контент не помещается в окне, и появляется горизонтальная полоса прокрутки. Данное сочетание позволяет перемещаться вправо или влево в таких ситуациях.
Shift+Click — выбрать группу элементов, если возможно.
Ctrl+Click — выбрать элементы, точечно.
Ctrl+(Dragging) — копировать элемент или группу элементов и переместить на позицию курсора. Работает не везде, но полезно помнить.
Windows
Уже давно прошло время, когда работать на Windows программисту было неудобно. Сейчас это современная система, предоставляющая пользователю множество возможностей.
Парочка полезностей:
Поиск через «Start» в Windows работает так, что он быстро находит файлы, находящиеся в системных папках. Поэтому, если вам лень ходить по файловой системе, нажимаем Win и вводим имя файла — система быстро нам его найдет.
Если открыть контекстное меню файла с зажатым Shift, то появятся дополнительные опции. Одной из них будет «Скопировать как путь», очень удобно.
Сочетания
Win+D — скрыть все окна.
Win+M — свернуть все окна.
Win+P — открыть меню проекции на дополнительные дисплеи.
Win+Left/Right — переместить окно влево/вправо.
Win+Up — развернуть окно на весь экран.
Win+Down — открепить окно / свернуть.
Win+L — заблокировать систему.
Win+B — фокус на панель инструментов.
Win+Ctrl+Left/Right — переключиться между рабочими столами.
Win+(.) — открыть меню стикеров. 😀
Alt+Tab — вы и так знаете. Переключаемся между активными окнами. Зажатый Shift двигает нас назад.
Win+{1, 2, 3, ...} — открыть n-ное окно прикрепленное к панели задач. Обязательно к использованию!
Win+Shift+{1, 2, 3, ...} — открыть n-ное окно от имени администратора.
Win+Shift+S — сделать скриншот части экрана.
Ctrl+Shift+Esc — открыть диспетчер задач.
Alt+\<key\> — активирует навигацию в окнах многих программ.
Win+Shift+M — развернуть все окна.
PrintScreen или PrtScn — сделать снимок экрана. Вроде бы вещь банальная, но, как показывает практика, все еще есть люди, которые фотографируют экран. Скриншот сохраняется в буфер обмена, поэтому, чтобы просмотреть картинку, вам нужно будет ее вставить в соответствующую программу, например Paint.
Alt+PrintScreen — сделать скриншот окна.
Win+PrintScreen — сделать скриншот экрана и сохранить в папку «Изображения».
Проводник
Win+E — открыть проводник.
Alt+Enter — открыть свойства файла.
Ctrl+Enter — открыть папку в новом окне.
Ctrl+Shift+N — создать новую папку в текущей директории в проводнике.
Alt+Left / Alt+Right — предыдущая папка / следующая папка в истории.
Alt+Up — переместиться на уровень вверх.
Alt+V+H+H — показать/скрыть скрытые файлы в проводнике.
Утилиты
Magnifier
Win+(+) — увеличить часть экрана.
Win+(-) — уменьшить часть экрана.
Win+Esc — закрыть Magnifier.
Xbox Game Bar
Win+G — открыть игровое меню XBox.
Win+Alt+R — начать/остановить запись текущего окна. R - Record.
Chrome
В хроме исправно работают многие из сочетаний, которые описаны в Базовых сочетаниях.
Ctrl+Shift+W - брат Ctrl+W. Позволяет закрыть все вкладки сразу.
Ctrl+Shift+N — открыть новое окно в режиме инкогнито. Если вам часто нужно открыть «чистое» окно браузера, то запомните это сочетание.
Ctrl+T — открыть новую вкладку и перейти к ней.
Ctrl+Shift+T — открыть ранее закрытую вкладку. В некоторых случаях это поможет восстановить историю вкладок, если браузер был принудительно закрыт.
Ctrl+Tab — перейти к следующей вкладке на панели.
Ctrl+Shift+Tab — перейти к следующей вкладке на панели.
Ctrl+{1, 2, ..., 8} — перейти к n-ной вкладке.
Ctrl+9 — перейти к последней вкладке.
Ctrl+R — перезагрузить страницу.
Ctrl+Shift+R — перезагрузить страницу, без использования данных в кэше.
Ctrl+D — сохранить текущую страницу в закладках.
Ctrl+Shift+D — сохранить все открытые вкладки в закладках. Поосторожнее с этим!
Ctrl+L — фокус на адресную строку.
Сочетания мыши
MiddleMouseButton — открыть страницу по ссылке в новой вкладке.
Ctrl+Click — открыть страницу по ссылке в новой вкладке.
Ctrl+Shift+Click — открыть ссылку в новой вкладке и перейти к ней. Обычно это именно то, что нужно, если вы хотите быстро просмотреть информацию по другой ссылке.
Shift+Click — открыть ссылку в новом окне.
Меню
Ctrl+H — открыть историю браузера.
Ctrl+J — открыть страницу загрузок.
Shift+Esc — открыть диспетчер задач Chrome. Если вы не понимаете, какая страница сильно нагружает ваши ресурсы, то стоит сюда заглянуть.
Ctrl+Shift+O - открыть страницу закладок.
Developer tools
Developer tools — один из самых полезных инструментов в арсенале Web-разработчика. Посмотрим, как можно немного ускорить работу с ним в браузере Chrome.
Ctrl+Shift+J / F12 — открыть вкладку Console в инструментах разработчика
Ctrl+(backtick) — фокус на консоли. При открытом меню инструментов разработчика.
Ctrl+Shift+I — открыть последнюю использованную вкладку в инструментах разработчика.
Ctrl+Shift+C — открыть панель элементов страницы.
Этого немного, но достаточно, чтобы пользоваться и не перегружать мозг. Больше сочетаний здесь.
Базовые сочетания плюс те, которые используются в Chrome, составляют большую часть наиболее распространенных сочетаний. Это значит, что, подобные сочетания вы сможете применить в большинстве программ, с которыми работаете. Поэтому многие «интуитивные» сочетания я буду опускать.
Vimium
Vimium - расширение для браузера, которое предоставляет сочетания клавиш для навигации и управления в духе редактора Vim.
Для работы с русской раскладкой нужно будет добавить «мэпы» в настройки вимиума.
Вот что это нам дает.
Переход по ссылкам через F+<key>. Больше не нужно тянуться за мышкой, чтобы кликнуть по ссылке. Это сделает за вас Vimium. Нажмите клавишу F и на странице к каждой ссылке прикрепится название клавиши, которую нужно нажать далее, чтобы перейти по ней.
Перемещение через сочетания как в виме.
Используйте привычные клавиши hjkl для движения по странице.
Панель поиска
— Ищем везде через o
— Ищем в закладках через b
— Ищем в открытых вкладках через T
Я не буду раскрывать все сочетания, для этого есть вот такая хорошая памятка:
AutoHotkey
Хакерский редактор
Когда я писал свой скрипт для AHK, я вдохновлялся идеями, которые заложены в основу редактора мозга кода Vim.
Vim - это такая прикольная штуковина, которую очень любят олды и которому поклоняются, как в карго-культе, все новички, которые слышат о его возможностях.
— Vim (сокр. от Vi Improved, произносится «вим») — кошмар для случайного пользователя. Если его удаётся в конце концов закрыть, то вздыхаешь с облегчением и твёрдой уверенностью, что больше не будешь запускать эту программу ни разу в жизни.
(c) Материал из Викиучебника
Так что же в нем особенного?
На Хекслете есть неплохая статья, рассказывающая о том, почему Vim - это хорошо.
Я тоже думаю, что вим - это хорошо и знать основные его команды очень пригодится. Так, например, упоминание этого редактора при разговоре с разработчиками даст вам +1 к крутости. А на многих сайтах (например YouTube) используются сочетания именно из этого редактора. Однако это все напускное, реальность такова, что Vim - не современный инструмент, а популярность его поддерживается лишь благодаря старичкам и тем, кто любит выпендриваться.
О самом популярном в мире редакторе кода я расскажу чуть позже.
Главный аргумент в пользу вима - Vim позволяет писать эффективно.
Вим спроектирован так, чтобы минимизировать перемещения ваших запястий во время набора текста. Все его горячие клавиши находятся в прямой доступности ваших рук.
Этой же цели цели хочу добиться я. Но без привязки к Виму, с его недружелюбными режимами.
Используем AHK
— AutoHotkey — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows. AutoHotkey является языком программирования сценариев, приспособленным к лёгкому назначению и переназначению горячих клавиш, включая кнопки мыши и джойстика.
Короче говоря, AHK позволяет нам автоматизировать рутинные задачи, создавать программы с графическим интерфейсом или просто автоматически писать Sincerely Yours в конце электронного письма. Чтобы профессионально лениться с помощью AHK нужно существенно поработать головой перед этим.
На обычной клавиатуре зачастую есть такая замечательная, очень бесполезная клавиша, как CapsLock. Почему бесполезная? Да потому что единственная ее функция - зажимать вместо вас клавишу Shift. Ее любят в основном тролли в интернете и те, кто часто пишут SQL запросы. Зато неудобств от нее куча. Сколько раз вы проверяли, включен ли у вас CapsLock перед вводом пароля? Как минимум раз так точно, а этого уже достаточно, чтобы ночью видеть кошмары.
Вердикт — «капсу» можно найти лучшее применение.
Итак, мы хотим иметь возможность не отрывать руку от фыва олдж позиций ни на клавишу. Мы хотим писать эффективно, да так, чтобы не уступать прославленным вимерам. И мы хотим, чтобы было несложно. А еще у нас есть программа, с помощью которой можно программировать сочетания клавиш и одна лишняя клавиша на клавиатуре. Пазл сошелся? Запоминаем и идем писать программу.
Вот как выглядит часть моего скрипта для AutoHotkey:
А вот что он делает
Если в Vim сочетания клавиш опираются на семантику, то в этом скрипте я опирался на удобство.
Чтобы попробовать, вы можете:
— Скачать .exe файл
— Запустить
или
— Установить AutoHotkey
— Загрузить исходники скрипта
— Запустить через AutoHotkey
Если еще не поняли, то рассказываю в чем суть: когда этот скрипт работает, ничего не меняется до тех пор, пока вы не зажмете клавишу CapsLock. С этого момента начинается магия. Какая? Рассказываю.
Особенности
Никакого больше переключения регистра. Строчные буквы по умолчанию! Это которые маленькие.
Кнопки перемещения находятся в области правой руки. Мы привыкли, что стрелочки справа, поэтому и кнопки навигации - справа.
Caps+J — влево
Caps+i — вверх
Caps+L — вправо
Caps+K — вниз
Caps+U — вверх пять раз
Caps+N — вниз пять раз
Caps+Y — страница вверх (PgUp)
Caps+B — Страница вниз (PgDn)
Зажатый капс работает как Ctrl в случае с символами X, C, V. Так просто удобнее!
Вызов контекстного меню. Caps + P - позволяет вызвать контекстное меню. Очень полезная комбинация.
Перемещаемся по словам. Через Caps+LeftAlt и Caps+Space. Одно из самых часто используемых мной сочетаний, особенно вместе с зажатым Shift. Однако здесь есть недостаток. Так как мы затрагиваем функциональную клавишу, это меняет поведение Alt. Например, мы хотим использовать сочетание Alt+Up в VSCode и делаем это конечно же через AHK. То есть Caps+Alt+Up, но вот проблема, как только мы зажимаем первые две клавиши, все идет к чертям. Что делать? Тут есть два варианта. Можно использовать правый Alt то есть Caps+RightAlt+Up или сначала нажимать Alt, а потом остальную часть сочетания.
Удаляем эффективно. Вы не знали, что сочетание Ctrl+Backspace, Ctrl+Delete удаляет целые слова вместо символов? Я тоже, до недавнего времени. В скрипте есть целая линия клавиш выделенная для удаления.
Caps+Q — удалить все символы слева от курсора
Caps+W — удалить слово слева от курсора
Caps+E — удалить слово справа от курсора
Caps+R — удалить все символы справа от курсора
Фишки
Caps+A — Скопировать текущую строку и вставить снизу
Caps+S — Выделить слово на позиции курсора
Caps+D — Скопировать строку и удалить. Украдено прямиком из вима.
Работает везде. Работает как в вашем редакторе кода, так и в любом другом редакторе, да и в целом любом другом текстовом поле. Запомнил один раз - пользуйся везде.
Прежде чем основательно начать пользоваться этим скриптом, убедитесь, что вы владеете хотя-бы слепой восьмипальцевой печатью. В противном случае вы рискуете получить вредные привычки, которые будут замедлять вашу скорость набора текста. Советую режим «фразы» в этом замечательном бесплатном тренажере.
VSCode
Когда дело доходит до выбора редактора кода, то тут все решают личные предпочтения. Однако есть редактор, который придется по вкусу практически каждому, и это Visual Studio Code.
VSCode — опенсорсное творение Microsoft, написанное при помощи фреймворков для JavaScript/TypeScript. Из коробки это простенький красивый редактор кода, который позволит вам в считанные секунды начать писать что вздумается. А если прикрутить к нему расширения, которые регулярно пишутся и поддерживаются огромным сообществом, то то эта малышка даст жару любой профессиональной IDE.
Простые сочетания
F1 — открыть окошко команд. Наше все для пользователя VSCode. Почти любое действие можно выполнить с помощью этого окна.
F2 — переименовать определение / переменную / функцию синхронно. Одна из самых приятных возможностей в VSCode. Если вы передумали с названием переменной, это позволит изменить все места где используется эта переменная, учитывая контекст.
F8 — переместиться к следующему проблемному месту в коде.
Ctrl+. — быстрое исправление ошибки. Если вы допустили какую-то распространенную ошибку, VSCode может исправить ее за вас. Очень удобно использовать в сочетании с F8.
F9 — поставить точку остановки для дебаггера.
Ctrl+P — перейти к файлу.
Ctrl+R — открыть недавний проект / файл.
Ctrl+(,) — открыть настройки редактора.
Ctrl+Q — перейти в другую панель.
Ctrl+/ — закомментировать строку.
Ctrl+T — переместиться к функции или переменной во всех файлах.
Ctrl+Shift+O — переместиться к функции или переменной в текущем файле.
Ctrl+Home — переместиться к началу файла.
Ctrl+End — переместиться к концу файла.
Ctrl+Shift+\ — переместиться к соответствующей скобке.
Ctrl+Shift+N — открыть новое окно VSCode.
Alt+Left / Alt+Right — переместиться к предыдущей / следующей активной строке. Когда вы скачете со строки на строку, VSCode запоминает это в своей истории, и вы можете быстро переключаться между самыми горячими местами в коде.
Alt+Up/Down — переместить строку вверх/вниз. Must have!
Alt — ускорить прокрутку страницы. Если начать прокручивать страницу и зажать Alt, то процесс пойдет немного быстрее.
Alt+Z — переключить режим переноса строк.
Ctrl+Alt+F — автоматическое форматирование текста. VSCode поддерживает автоматическое форматирование для большинства языков. Нажатие этой клавиши подгонит ваш код под стандарты, принятые в Code style вашего языка.
Shift+Alt+O — упорядочить импорты в соответствии со стандартами вашего языка.
Ctrl+C — скопировать текущую строку, если нет выделения, иначе работает как обычное копирование.
Ctrl+X — вырезать строку, если нет выделения, иначе работает как обычная операция Cut.
Ctrl+Shift+Up/Down — скопировать выделенные строки вверх/вниз. Полезно, если вам нужно повторить какой-то блок кода несколько раз.
Ctrl+Alt+Right — переместить активный файл в соседнюю группу редактирования. Это позволит вам параллельно просматривать два или более файлов. Ctrl+Alt+Left двигает его обратно.
Ctrl+0 — фокус на боковую панель.
Ctrl+{1, 2, 3, ..} — фокус на первую/вторую/третью группу редакторов. Если вы параллельно просматриваете два или больше файлов, это сочетание поможет вам переключаться между ними. Однако по своему опыту скажу, что больше двух редакторов никто обычно не открывает. Поэтому у себя я поменял сочетание для работы с двумя окнами редактирования и двумя терминалами.
Alt+{1, 2,..., 8} — переключиться между активными вкладками в окне редактирования. Обязательно к запоминанию! Alt+0 открывает последнюю вкладку.
Ctrl+Space — активировать автоподстановку.
Shift+Ctrl+Space — открыть подсказку для параметров функции.
Посложнее
Alt+Ctrl+Up/Down — добавить курсор на верхнюю/нижнюю строку. Одна из особенностей современных редакторов. Позволяет редактировать текст одновременно в нескольких местах. Суперфича!
Ctrl+D — добавить курсор в конец следующего вхождения данного слова.
Alt+Click — добавить курсор в позицию указателя мыши.
Shift+Alt+(Dragging) — добавлять курсоры по пути следования указателя мыши.
Shift+Alt+Right — выделение с учетом контекста. Например, у нас есть длинное выражение внутри скобок, данное сочетание позволит нам выбрать все, что находится внутри них. Последовательные нажатия расширяют область выделения.
Shift+Alt+Left — действие, противоположное Shift+Alt+Right.
Ctrl+Shift+[ — свернуть блок кода. Если файл стал слишком большим, и перемещаться стало слишком сложно, то данное сочетание позволит свернуть блоки текста, которые вам сейчас не нужны.
Ctrl+Shift+] — развернуть блок кода. Противоположно Ctrl+Shift+[.
Следующее сочетание отсутствует в сборке для Windows, но я рекомендую установить его вручную. У меня это Ctrl+Shift+J.
Нет(Win) / Ctrl+J(Mac) — присоединить следующую строку к текущей. По сути, все, что делает данная команда, так это удаляет символ переноса с текущей строки. Очень удобно, если нужно сжать html-файл.
Ctrl+Shift+L — выделить все одинаковые слова и переместить курсор к концу каждого. Сильная штука, позволяет редактировать все вхождения определенного слова. Но стоит быть аккуратнее, если это слово встречается в качестве подстроки, то оно тоже будет изменено.
Ctrl+K Z — Включить Zen Mode. Для настоящих гуру.
Навигация
Ctrl+B — открыть / закрыть боковую панель.
Ctrl+Shift+E — открыть меню навигации.
Ctrl+Shift+D — открыть меню запуска. Используется во время дебаггинга.
Ctrl+Shift+F — меню поиска. Позволяет искать текст по всем файлам.
Ctrl+Shift+H — открыть меню замены. Брат Ctrl+Shift+F, но с функцией замены.
Ctrl+Shift+G — открыть меню контроля версий. Если у вас установлено расширение GitLens, то оно может изменить это сочетание.
Ctrl+J — открыть/закрыть панель.
Ctrl+Shift+X — открыть меню расширений.
Ctrl+(backtick) — открыть терминал.
Ctrl+Shift+M — открыть панель ошибок.
Ctrl+Shift+U — открыть консоль вывода.
Ctrl+Shift+Y — открыть консоль отладки.
Демонстрация
Ну и на десерт, небольшое видео, где я наглядно показываю, как можно совместить использование скрипта capsKeys и возможности редактора VSCode. Чудес не обещаю, но суть должна быть понятна 😉. https://www.youtube.com/watch?v=QxLp-4aMAp0
Заключение
В этой статье я рассмотрел способы увеличения продуктивности при написании кода или любого текста посредством использования сочетания клавиш и кое-чего еще. Мы начали с самых простых сочетаний и дошли до продвинутых вариантов использования клавиатуры. Я надеюсь эти знания не раз пригодятся вам в вашей профессиональной карьере.
Не старайтесь запомнить все сразу. Я тоже не все из этого хорошо помню и даже не пытаюсь применять постоянно. Для первого раза достаточно знать, какие вообще комбинации существуют. К тому же, многие сочетания вполне интуитивны. Зная базовые и несколько дополнительных, вы начнете догадываться, куда можно нажать, чтобы получить то, что вам нужно.
Пишите в комментариях, если у вас есть свои любимые сочетания, не описанные в статье.
Изначально идею скрипта я позаимствовал из этой замечательной статьи в блоге Никиты Прокопова.
Полезные ссылки
— Сайт для тренировки сочетаний клавиш и основных команд
— Сочетания для инструментов разработчика в Chrome
— Документация AutoHotkey по горячим клавишам
— AutoHotkey для Linux
— Тренажер для тренировки слепой десятипальцевой печати
— Про настройку сочетаний клавиш в VSCode
— Продвинутое использование VSCode
— Неочевидные возможности VSCode
— Мои кастомные сочетания клавиш в VSCode
— Памятка по сочетаниям в VSCode
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 23:04:33 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="dgLHxZexPew90YS56OesVbzz65W9hJ-0a9rHHavKXaGZ0wzyZc-QjIuSoCHk6FwifPrGP7WzYRbWOl1J-c26zw";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Кунг-фу на клавиатуре. Искусство сочетать клавиши (Дневник студента) | Блог Хекслета</title>
<meta name="description" content="Информационный материал в блоге Хекслета: Кунг-фу на клавиатуре. Искусство сочетать клавиши (категория: Дневник студента). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в школе Хекслет.">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/klaviaturnyy-geroy-kak-sochetayutsya-klavishi">
<meta property="og:title" content="Кунг-фу на клавиатуре. Искусство сочетать клавиши (Дневник студента) | Блог Хекслета">
<meta property="og:description" content="Информационный материал в блоге Хекслета: Кунг-фу на клавиатуре. Искусство сочетать клавиши (категория: Дневник студента). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в школе Хекслет.">
<meta property="og:image" content="https://ru.hexlet.io/vite/assets/blog_post-7eTyeLLt.webp">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="MSC5JiXaHH8T5-vX4ZP8pP82skE_wXjrzyJI0SimDuHe8XIR16SxH6Wkz0_tnAzTPz-f6zf2hklywtKFeqHpjw" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="/vite/assets/blog_post-7eTyeLLt.webp"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--126b25f39a57b0fdbd31895236a8d1da05b80ac4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server-amico.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzMiwicHVyIjoiYmxvYl9pZCJ9fQ==--7e1956d5683226b3f32f57abb931d34a6639970b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/QA%20engineers-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk0MSwicHVyIjoiYmxvYl9pZCJ9fQ==--9a9cd0863661374e7c92ea27b1270ac3299c0979/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Usability%20testing-pana.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkyMCwicHVyIjoiYmxvYl9pZCJ9fQ==--71cd9d863b21d7bfbd927cf623a7a2baaf4530ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Bug%20fixing-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T23:04:33.629Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"2ycoT7kBzza3j1Y7nrQh5d3tzUQnsGceckye35FBclc09uN4S39iVgHMcqOSu9GSHeTg7i-HmbzPrASLw0aVOQ","post":{"model_name":"BlogPost","category":{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},"creator":{"public_name":"Арслан Худайкулиев","id":259317,"is_tutor":false},"tags":[],"id":1212,"title":"Кунг-фу на клавиатуре. Искусство сочетать клавиши","slug":"klaviaturnyy-geroy-kak-sochetayutsya-klavishi","state":"published","summary":"О том, как из компьютерной мыши превратиться в клавиатурного героя","votes_count":9,"created_at":"2021-01-04T12:02:55.457Z","published_at":"2021-01-14T07:36:44.930Z","body":"**Путь от компьютерной мыши до клавиатурного героя**\n\n\nСочетания клавиш - это простые команды, позволяющие удерживать пальцы на клавиатуре, а не прыгать вперед и назад к мыши. Вы, вероятно, уже знаете такие распространенные сочетания клавиш, как CTRL + C для копирования и CTRL + V для вставки, но есть множество других сочетаний клавиш, которые позволяют делать что угодно на вашем компьютере или в конкретной программе. Говорят, что знание только основных сочетаний экономит вам 8 рабочих дней каждый год. Цель этой статьи - сэкономить вам в два раза больше.\n\nК сожалению, для многих знание «контрол-цэ» и «контрол-вэ» становится верхней границей в использовании комбинаций. Именно для них были написаны первые главы этой статьи, где мы разберем основные сочетания клавиш и советы по эффективному использованию клавиатуры, которые прогонят из вас компьютерную мышь.\n\nДля тех, кто осилил начало статьи, дальше начнется самое интересное. Я расскажу о таком инструменте, как AutoHotkey, использование которого сделает из вас настоящего печатающего ниндзю.\n\nВ конце вы увидите, как все эти знания можно использовать при работе с самым популярным на данный момент текстовым редактором Visual Studio Code.\n\n_Не пытайтесь просто запомнить все, что написано в статье. Обязательно попробуйте понажимать все сочетания клавиш, о которых вы не знали! А потом возвращайтесь время от времени, чтобы освежить память._\n\n_Эта статья больше актуальна для владельцев системы Windows._\n\n**Поехали.**\n\n::programs\n\n## Содержание\n\n## Базовые сочетания\n\nБазовыми сочетаниями я буду называть те, которые выполняют похожие функции в разных операционных системах и приложениях, как например ```Ctrl+C``` и ```Ctrl+V```, о которых в этой статье говориться не будет :).\n\n```Esc``` — aka Escape или Эскейп или Эскейт или... ладно, ладно. Тут все просто, она в основном используется для выхода из чего-либо или отмены чего-либо. Если все пошло наперекосяк и «Я что-то нажала и все уронилось», то скорее всего вам нужно будет обратиться к этой клавише.\n\n```Tab``` — Таб это не только символ табуляции, но еще и полезнейший инструмент смены фокуса. Фокус здесь означает то место, на которое будут направлены действия пользователя в системе. Так, например, если у нас в приложении стоит фокус на текстовом поле, то все, что мы печатаем, будет вноситься именно в это поле. Если фокус на кнопке - то ```Space``` или в худшем случае ```Enter``` нажмут на эту кнопку. Так что совет тут такой. Когда заполняем формы, переключаемся между полями через ```Tab```, отмечаем галочки через ```Space```, решили вернуться - ```Shift+Tab```.\n\n```Shift``` — позволяет выделять последовательности символов или других объектов в зависимости от программы. Например, в проводнике, если выбрать файл, зажать шифт и выбрать другой файл, то все, что находилось между этими двумя файлами будет выделено.\n\n```Ctrl``` — работает похожим образом, но позволяет точечно выбирать, что именно вам нужно.\n\n```Shift+/<key/>``` — так исторически сложилось, что ```Shift``` часто используется для инвертирования действия, выполненного сочетанием клавиш без ```Shift```. Например, ```Shift+Tab``` совершает действие, противоположное ```Tab```. Keep in mind!\n\n```F1``` — вызов справки. Не знаю, почему так.\n\n```Ctrl+W``` — закрыть окно, вкладку. Почти всегда работает в приложениях, где есть вкладки.\n\n```Ctrl+F``` — поиск. F - Find.\n\n```Ctrl+P``` — в большинстве программ вызывает меню печати.\n\n```Ctrl+D``` — создать копию объекта. От слова Duplicate.\n\n```Ctrl+S``` — сохранить. Что тут еще говорить.\n\n```Ctrl+Z``` — отменить действие. В терминалах часто используется для остановки процесса и перевода его в фон.\n\n```Ctrl+Y/Ctrl+Shift+Z``` — повторить отмененное действие.\n\n```Ctrl+N``` — открыть новое окно.\n\n```Ctrl+(+)``` — приблизить / увеличить масштаб.\n\n```Ctrl+(-)``` — отдалить / уменьшить масштаб.\n\nХотя использование мыши - дело, недостойное настоящего погромиста, но иногда без нее никуда.\n\nЭти сочетания мыши критичны для тех, кто работает с графическими элементами.\n\n```Ctrl+MouseScroll``` — увеличить / уменьшить масштаб.\n\n```Shift+MouseScroll``` — переместиться по горизонтали. Иногда весь контент не помещается в окне, и появляется горизонтальная полоса прокрутки. Данное сочетание позволяет перемещаться вправо или влево в таких ситуациях.\n\n```Shift+Click``` — выбрать группу элементов, если возможно.\n\n```Ctrl+Click``` — выбрать элементы, точечно.\n\n```Ctrl+(Dragging)``` — копировать элемент или группу элементов и переместить на позицию курсора. Работает не везде, но полезно помнить.\n\n## Windows\n\nУже давно прошло время, когда работать на Windows программисту было неудобно. Сейчас это современная система, предоставляющая пользователю множество возможностей.\n\nПарочка полезностей:\n\nПоиск через «Start» в Windows работает так, что он быстро находит файлы, находящиеся в системных папках. Поэтому, если вам лень ходить по файловой системе, нажимаем ```Win``` и вводим имя файла — система быстро нам его найдет.\n\nЕсли открыть контекстное меню файла с зажатым ```Shift```, то появятся дополнительные опции. Одной из них будет «Скопировать как путь», очень удобно.\n\n**Сочетания**\n\n```Win+D``` — скрыть все окна.\n\n```Win+M``` — свернуть все окна.\n\n```Win+P``` — открыть меню проекции на дополнительные дисплеи.\n\n```Win+Left/Right``` — переместить окно влево/вправо.\n\n```Win+Up``` — развернуть окно на весь экран.\n\n```Win+Down``` — открепить окно / свернуть.\n\n```Win+L``` — заблокировать систему.\n\n```Win+B``` — фокус на панель инструментов.\n\n```Win+Ctrl+Left/Right``` — переключиться между рабочими столами.\n\n```Win+(.)``` — открыть меню стикеров. 😀\n\n```Alt+Tab``` — вы и так знаете. Переключаемся между активными окнами. Зажатый ```Shift``` двигает нас назад.\n\n```Win+{1, 2, 3, ...}``` — открыть n-ное окно прикрепленное к панели задач. Обязательно к использованию!\n\n```Win+Shift+{1, 2, 3, ...}``` — открыть n-ное окно от имени администратора.\n\n```Win+Shift+S``` — сделать скриншот части экрана.\n\n```Ctrl+Shift+Esc``` — открыть диспетчер задач.\n\n```Alt+\\<key\\>``` — активирует навигацию в окнах многих программ.\n\n```Win+Shift+M``` — развернуть все окна.\n\n```PrintScreen``` или ```PrtScn``` — сделать снимок экрана. Вроде бы вещь банальная, но, как показывает практика, все еще есть люди, которые фотографируют экран. Скриншот сохраняется в буфер обмена, поэтому, чтобы просмотреть картинку, вам нужно будет ее вставить в соответствующую программу, например Paint.\n\n```Alt+PrintScreen``` — сделать скриншот окна.\n\n```Win+PrintScreen``` — сделать скриншот экрана и сохранить в папку «Изображения».\n\n## Проводник\n\n```Win+E``` — открыть проводник.\n\n```Alt+Enter``` — открыть свойства файла.\n\n```Ctrl+Enter``` — открыть папку в новом окне.\n\n```Ctrl+Shift+N``` — создать новую папку в текущей директории в проводнике.\n\n```Alt+Left / Alt+Right``` — предыдущая папка / следующая папка в истории.\n\n```Alt+Up``` — переместиться на уровень вверх.\n\n```Alt+V+H+H``` — показать/скрыть скрытые файлы в проводнике.\n\n## Утилиты\n\n_Magnifier_\n\n```Win+(+)``` — увеличить часть экрана.\n\n```Win+(-)``` — уменьшить часть экрана.\n\n```Win+Esc``` — закрыть Magnifier.\n\n_Xbox Game Bar_\n\n```Win+G``` — открыть игровое меню XBox.\n\n```Win+Alt+R``` — начать/остановить запись текущего окна. R - Record.\n\n## Chrome\n\nВ хроме исправно работают многие из сочетаний, которые описаны в Базовых сочетаниях.\n\n```Ctrl+Shift+W``` - брат ```Ctrl+W```. Позволяет закрыть все вкладки сразу.\n\n```Ctrl+Shift+N``` — открыть новое окно в режиме инкогнито. Если вам часто нужно открыть «чистое» окно браузера, то запомните это сочетание.\n\n```Ctrl+T``` — открыть новую вкладку и перейти к ней.\n\n```Ctrl+Shift+T``` — открыть ранее закрытую вкладку. В некоторых случаях это поможет восстановить историю вкладок, если браузер был принудительно закрыт.\n\n```Ctrl+Tab``` — перейти к следующей вкладке на панели.\n\n```Ctrl+Shift+Tab``` — перейти к следующей вкладке на панели.\n\n```Ctrl+{1, 2, ..., 8}``` — перейти к n-ной вкладке.\n\n```Ctrl+9``` — перейти к последней вкладке.\n\n```Ctrl+R``` — перезагрузить страницу.\n\n```Ctrl+Shift+R``` — перезагрузить страницу, без использования данных в кэше.\n\n```Ctrl+D``` — сохранить текущую страницу в закладках.\n\n```Ctrl+Shift+D``` — сохранить все открытые вкладки в закладках. Поосторожнее с этим!\n\n```Ctrl+L``` — фокус на адресную строку.\n\n**Сочетания мыши**\n\n```MiddleMouseButton``` — открыть страницу по ссылке в новой вкладке.\n\n```Ctrl+Click``` — открыть страницу по ссылке в новой вкладке.\n\n```Ctrl+Shift+Click``` — открыть ссылку в новой вкладке и перейти к ней. Обычно это именно то, что нужно, если вы хотите быстро просмотреть информацию по другой ссылке.\n\n```Shift+Click``` — открыть ссылку в новом окне.\n\n**Меню**\n\n```Ctrl+H``` — открыть историю браузера.\n\n```Ctrl+J``` — открыть страницу загрузок.\n\n```Shift+Esc``` — открыть диспетчер задач Chrome. Если вы не понимаете, какая страница сильно нагружает ваши ресурсы, то стоит сюда заглянуть.\n\n```Ctrl+Shift+O``` - открыть страницу закладок.\n\n**Developer tools**\n\nDeveloper tools — один из самых полезных инструментов в арсенале Web-разработчика. Посмотрим, как можно немного ускорить работу с ним в браузере Chrome.\n\n```Ctrl+Shift+J / F12``` — открыть вкладку Console в инструментах разработчика\n\n```Ctrl+(backtick)``` — фокус на консоли. При открытом меню инструментов разработчика.\n\n```Ctrl+Shift+I``` — открыть последнюю использованную вкладку в инструментах разработчика.\n\n```Ctrl+Shift+C``` — открыть панель элементов страницы.\n\nЭтого немного, но достаточно, чтобы пользоваться и не перегружать мозг. Больше сочетаний [здесь](https://developers.google.com/web/tools/chrome-devtools/shortcuts).\n\nБазовые сочетания плюс те, которые используются в Chrome, составляют большую часть наиболее распространенных сочетаний. Это значит, что, подобные сочетания вы сможете применить в большинстве программ, с которыми работаете. Поэтому многие «интуитивные» сочетания я буду опускать.\n\n## Vimium\n\n\n\n[Vimium](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb) - расширение для браузера, которое предоставляет сочетания клавиш для навигации и управления в духе редактора Vim.\n\n[Для работы с русской раскладкой](https://github.com/philc/vimium/wiki/Key-Mappings#russian-language-keyboards) нужно будет добавить «мэпы» в настройки вимиума.\n\n**Вот что это нам дает.**\n\nПереход по ссылкам через ```F+<key>```. Больше не нужно тянуться за мышкой, чтобы кликнуть по ссылке. Это сделает за вас Vimium. Нажмите клавишу ```F``` и на странице к каждой ссылке прикрепится название клавиши, которую нужно нажать далее, чтобы перейти по ней.\n\n**Перемещение через сочетания как в виме.**\n\nИспользуйте привычные клавиши hjkl для движения по странице.\n\n**Панель поиска**\n\n— Ищем везде через ```o```\n\n— Ищем в закладках через ```b```\n\n— Ищем в открытых вкладках через ```T```\n\nЯ не буду раскрывать все сочетания, для этого есть вот такая хорошая памятка:\n\n\n\n## AutoHotkey\n\n**Хакерский редактор**\n\nКогда я писал свой скрипт для AHK, я вдохновлялся идеями, которые заложены в основу редактора ~~мозга~~ кода Vim.\nVim - это такая прикольная штуковина, которую очень любят олды и которому поклоняются, как в карго-культе, все новички, которые слышат о его возможностях.\n\n— Vim (сокр. от Vi Improved, произносится «вим») — кошмар для случайного пользователя. Если его удаётся в конце концов закрыть, то вздыхаешь с облегчением и твёрдой уверенностью, что больше не будешь запускать эту программу ни разу в жизни.\n(c) Материал из Викиучебника\n\nТак что же в нем особенного?\nНа Хекслете есть неплохая [статья](https://guides.hexlet.io/vim/), рассказывающая о том, почему Vim - это хорошо.\n\nЯ тоже думаю, что вим - это хорошо и знать основные его команды очень пригодится. Так, например, упоминание этого редактора при разговоре с разработчиками даст вам +1 к крутости. А на многих сайтах (например YouTube) используются сочетания именно из этого редактора. Однако это все напускное, реальность такова, что Vim - не современный инструмент, а популярность его поддерживается лишь благодаря старичкам и тем, кто любит выпендриваться.\n\nО самом популярном в мире редакторе кода я расскажу чуть позже.\n\n**Главный аргумент в пользу вима - Vim позволяет писать эффективно.**\n\nВим спроектирован так, чтобы минимизировать перемещения ваших запястий во время набора текста. Все его горячие клавиши находятся в прямой доступности ваших рук.\n\nЭтой же цели цели хочу добиться я. Но без привязки к Виму, с его недружелюбными режимами.\n\n**Используем AHK**\n\n— AutoHotkey — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows. AutoHotkey является языком программирования сценариев, приспособленным к лёгкому назначению и переназначению горячих клавиш, включая кнопки мыши и джойстика.\n\nКороче говоря, AHK позволяет нам автоматизировать рутинные задачи, создавать программы с графическим интерфейсом или просто автоматически писать Sincerely Yours в конце электронного письма. Чтобы профессионально лениться с помощью AHK нужно существенно поработать головой перед этим.\n\nНа обычной клавиатуре зачастую есть такая замечательная, очень бесполезная клавиша, как CapsLock. Почему бесполезная? Да потому что единственная ее функция - зажимать вместо вас клавишу Shift. Ее любят в основном тролли в интернете и те, кто часто пишут SQL запросы. Зато неудобств от нее куча. Сколько раз вы проверяли, включен ли у вас CapsLock перед вводом пароля? Как минимум раз так точно, а этого уже достаточно, чтобы ночью видеть кошмары.\n\nВердикт — «капсу» можно найти лучшее применение.\n\nИтак, мы хотим иметь возможность не отрывать руку от фыва олдж позиций ни на клавишу. Мы хотим писать эффективно, да так, чтобы не уступать прославленным вимерам. И мы хотим, чтобы было несложно. А еще у нас есть программа, с помощью которой можно программировать сочетания клавиш и одна лишняя клавиша на клавиатуре. Пазл сошелся? Запоминаем и идем писать программу.\n\nВот как выглядит часть моего [скрипта](https://gist.github.com/kotano/e561f3317cc4c867eb367205aa0fa210) для AutoHotkey:\n\n```bash\nSetCapsLockState AlwaysOff\n\nBasic movement\nCapsLock & j::Send {blind}{Left}\nCapsLock & l::Send {blind}{Right}\nCapsLock & i::Send {blind}{Up}\nCapsLock & k::Send {blind}{Down}\n\nFast move\nCapsLock & u::Send {blind}{Up 5}\nCapsLock & n::Send {blind}{Down 5}\n\nFast delete\nCapsLock & Backspace::Send {blind}{Backspace 5}\nCapsLock & Delete::Send {blind}{Delete 5}\n\nDelete words\nCapsLock & w::Send {blind}^{Backspace}\nCapsLock & e::Send {blind}^{Delete}\n\n```\n\nА вот что он делает\n\n\nЕсли в Vim сочетания клавиш опираются на семантику, то в этом скрипте я опирался на удобство.\n\nЧтобы попробовать, вы можете:\n\n— Скачать .exe файл\n— Запустить\n\nили\n\n— Установить AutoHotkey\n— [Загрузить исходники скрипта](https://github.com/kotano/capsKeys/)\n— Запустить через AutoHotkey\n\nЕсли еще не поняли, то рассказываю в чем суть: когда этот скрипт работает, ничего не меняется до тех пор, пока вы не зажмете клавишу CapsLock. С этого момента начинается магия. Какая? Рассказываю.\n\n#### Особенности\n\n**Никакого больше переключения регистра.** Строчные буквы по умолчанию! Это которые маленькие.\n\n**Кнопки перемещения находятся в области правой руки.** Мы привыкли, что стрелочки справа, поэтому и кнопки навигации - справа.\n\n```Caps+J``` — влево\n```Caps+i``` — вверх\n```Caps+L``` — вправо\n```Caps+K``` — вниз\n```Caps+U``` — вверх пять раз\n```Caps+N``` — вниз пять раз\n```Caps+Y``` — страница вверх (PgUp)\n```Caps+B``` — Страница вниз (PgDn)\n\n**Зажатый капс работает как Ctrl в случае с символами X, C, V.** Так просто удобнее!\n\n**Вызов контекстного меню.** Caps + P - позволяет вызвать контекстное меню. Очень полезная комбинация.\n\n**Перемещаемся по словам.** Через ```Caps+LeftAlt``` и ```Caps+Space```. Одно из самых часто используемых мной сочетаний, особенно вместе с зажатым ```Shift```. Однако здесь есть недостаток. Так как мы затрагиваем функциональную клавишу, это меняет поведение ```Alt```. Например, мы хотим использовать сочетание ```Alt+Up``` в VSCode и делаем это конечно же через AHK. То есть ```Caps+Alt+Up```, но вот проблема, как только мы зажимаем первые две клавиши, все идет к чертям. Что делать? Тут есть два варианта. Можно использовать правый ```Alt``` то есть ```Caps+RightAlt+Up``` или сначала нажимать ```Alt```, а потом остальную часть сочетания.\n\n**Удаляем эффективно.** Вы не знали, что сочетание ```Ctrl+Backspace```, ```Ctrl+Delete``` удаляет целые слова вместо символов? Я тоже, до недавнего времени. В скрипте есть целая линия клавиш выделенная для удаления.\n\n```Caps+Q``` — удалить все символы слева от курсора\n```Caps+W``` — удалить слово слева от курсора\n```Caps+E``` — удалить слово справа от курсора\n```Caps+R``` — удалить все символы справа от курсора\n\n**Фишки**\n\n```Caps+A``` — Скопировать текущую строку и вставить снизу\n```Caps+S``` — Выделить слово на позиции курсора\n```Caps+D``` — Скопировать строку и удалить. Украдено прямиком из вима.\n\n**Работает везде.** Работает как в вашем редакторе кода, так и в любом другом редакторе, да и в целом любом другом текстовом поле. Запомнил один раз - пользуйся везде.\n\nПрежде чем основательно начать пользоваться этим скриптом, убедитесь, что вы владеете хотя-бы слепой восьмипальцевой печатью. В противном случае вы рискуете получить вредные привычки, которые будут замедлять вашу скорость набора текста. Советую режим «фразы» в этом замечательном [бесплатном](https://stamina.ru/keyboard_trainer/download) тренажере.\n\n## VSCode\n\nКогда дело доходит до выбора редактора кода, то тут все решают личные предпочтения. Однако есть редактор, который придется по вкусу практически каждому, и это Visual Studio Code.\n\nVSCode — опенсорсное творение Microsoft, написанное при помощи фреймворков для JavaScript/TypeScript. Из коробки это простенький красивый редактор кода, который позволит вам в считанные секунды начать писать что вздумается. А если прикрутить к нему расширения, которые регулярно пишутся и поддерживаются огромным сообществом, то то эта малышка даст жару любой профессиональной IDE.\n\n**Простые сочетания**\n\n```F1``` — открыть окошко команд. Наше все для пользователя VSCode. Почти любое действие можно выполнить с помощью этого окна.\n\n```F2``` — переименовать определение / переменную / функцию синхронно. Одна из самых приятных возможностей в VSCode. Если вы передумали с названием переменной, это позволит изменить все места где используется эта переменная, учитывая контекст.\n\n```F8``` — переместиться к следующему проблемному месту в коде.\n\n```Ctrl+.``` — быстрое исправление ошибки. Если вы допустили какую-то распространенную ошибку, VSCode может исправить ее за вас. Очень удобно использовать в сочетании с F8.\n\n```F9``` — поставить точку остановки для дебаггера.\n\n```Ctrl+P``` — перейти к файлу.\n\n```Ctrl+R``` — открыть недавний проект / файл.\n\n```Ctrl+(,)``` — открыть настройки редактора.\n\n```Ctrl+Q``` — перейти в другую панель.\n\n```Ctrl+/``` — закомментировать строку.\n\n```Ctrl+T``` — переместиться к функции или переменной во всех файлах.\n\n```Ctrl+Shift+O``` — переместиться к функции или переменной в текущем файле.\n\n```Ctrl+Home``` — переместиться к началу файла.\n\n```Ctrl+End``` — переместиться к концу файла.\n\n```Ctrl+Shift+\\``` — переместиться к соответствующей скобке.\n\n```Ctrl+Shift+N``` — открыть новое окно VSCode.\n\n```Alt+Left / Alt+Right``` — переместиться к предыдущей / следующей активной строке. Когда вы скачете со строки на строку, VSCode запоминает это в своей истории, и вы можете быстро переключаться между самыми горячими местами в коде.\n\n```Alt+Up/Down``` — переместить строку вверх/вниз. Must have!\n\n```Alt``` — ускорить прокрутку страницы. Если начать прокручивать страницу и зажать ```Alt```, то процесс пойдет немного быстрее.\n\n```Alt+Z``` — переключить режим переноса строк.\n\n```Ctrl+Alt+F``` — автоматическое форматирование текста. VSCode поддерживает автоматическое форматирование для большинства языков. Нажатие этой клавиши подгонит ваш код под стандарты, принятые в Code style вашего языка.\n\n```Shift+Alt+O``` — упорядочить импорты в соответствии со стандартами вашего языка.\n\n```Ctrl+C``` — скопировать текущую строку, если нет выделения, иначе работает как обычное копирование.\n\n```Ctrl+X``` — вырезать строку, если нет выделения, иначе работает как обычная операция Cut.\n\n```Ctrl+Shift+Up/Down``` — скопировать выделенные строки вверх/вниз. Полезно, если вам нужно повторить какой-то блок кода несколько раз.\n\n```Ctrl+Alt+Right``` — переместить активный файл в соседнюю группу редактирования. Это позволит вам параллельно просматривать два или более файлов. ```Ctrl+Alt+Left``` двигает его обратно.\n\n```Ctrl+0``` — фокус на боковую панель.\n\n```Ctrl+{1, 2, 3, ..}``` — фокус на первую/вторую/третью группу редакторов. Если вы параллельно просматриваете два или больше файлов, это сочетание поможет вам переключаться между ними. Однако по своему опыту скажу, что больше двух редакторов никто обычно не открывает. Поэтому у себя я поменял сочетание для работы с двумя окнами редактирования и двумя терминалами.\n\n```Alt+{1, 2,..., 8}``` — переключиться между активными вкладками в окне редактирования. **Обязательно к запоминанию!** Alt+0 открывает последнюю вкладку.\n\n```Ctrl+Space``` — активировать автоподстановку.\n\n```Shift+Ctrl+Space``` — открыть подсказку для параметров функции.\n\n**Посложнее**\n\n```Alt+Ctrl+Up/Down``` — добавить курсор на верхнюю/нижнюю строку. Одна из особенностей современных редакторов. Позволяет редактировать текст одновременно в нескольких местах. **Суперфича!**\n\n```Ctrl+D``` — добавить курсор в конец следующего вхождения данного слова.\n\n```Alt+Click``` — добавить курсор в позицию указателя мыши.\n\n```Shift+Alt+(Dragging)``` — добавлять курсоры по пути следования указателя мыши.\n\n```Shift+Alt+Right``` — выделение с учетом контекста. Например, у нас есть длинное выражение внутри скобок, данное сочетание позволит нам выбрать все, что находится внутри них. Последовательные нажатия расширяют область выделения.\n\n```Shift+Alt+Left``` — действие, противоположное ```Shift+Alt+Right```.\n\n```Ctrl+Shift+[``` — свернуть блок кода. Если файл стал слишком большим, и перемещаться стало слишком сложно, то данное сочетание позволит свернуть блоки текста, которые вам сейчас не нужны.\n\n```Ctrl+Shift+]``` — развернуть блок кода. Противоположно ```Ctrl+Shift+[```.\n\nСледующее сочетание отсутствует в сборке для Windows, но я рекомендую установить его вручную. У меня это ```Ctrl+Shift+J```.\n\n```Нет(Win) / Ctrl+J(Mac)``` — присоединить следующую строку к текущей. По сути, все, что делает данная команда, так это удаляет символ переноса с текущей строки. Очень удобно, если нужно сжать html-файл.\n\n```Ctrl+Shift+L``` — выделить все одинаковые слова и переместить курсор к концу каждого. Сильная штука, позволяет редактировать все вхождения определенного слова. Но стоит быть аккуратнее, если это слово встречается в качестве подстроки, то оно тоже будет изменено.\n\n```Ctrl+K Z``` — Включить Zen Mode. Для настоящих гуру.\n\n**Навигация**\n\n```Ctrl+B``` — открыть / закрыть боковую панель.\n\n```Ctrl+Shift+E``` — открыть меню навигации.\n\n```Ctrl+Shift+D``` — открыть меню запуска. Используется во время дебаггинга.\n\n```Ctrl+Shift+F``` — меню поиска. Позволяет искать текст по всем файлам.\n\n```Ctrl+Shift+H``` — открыть меню замены. Брат ```Ctrl+Shift+F```, но с функцией замены.\n\n```Ctrl+Shift+G``` — открыть меню контроля версий. Если у вас установлено расширение GitLens, то оно может изменить это сочетание.\n\n```Ctrl+J``` — открыть/закрыть панель.\n\n```Ctrl+Shift+X``` — открыть меню расширений.\n\n```Ctrl+(backtick)``` — открыть терминал.\n\n```Ctrl+Shift+M``` — открыть панель ошибок.\n\n```Ctrl+Shift+U``` — открыть консоль вывода.\n\n```Ctrl+Shift+Y``` — открыть консоль отладки.\n\n## Демонстрация\n\nНу и на десерт, небольшое видео, где я наглядно показываю, как можно совместить использование скрипта capsKeys и возможности редактора VSCode. Чудес не обещаю, но суть должна быть понятна 😉. https://www.youtube.com/watch?v=QxLp-4aMAp0\n\n::posts\n\n## Заключение\n\nВ этой статье я рассмотрел способы увеличения продуктивности при написании кода или любого текста посредством использования сочетания клавиш и кое-чего еще. Мы начали с самых простых сочетаний и дошли до продвинутых вариантов использования клавиатуры. Я надеюсь эти знания не раз пригодятся вам в вашей профессиональной карьере.\n\nНе старайтесь запомнить все сразу. Я тоже не все из этого хорошо помню и даже не пытаюсь применять постоянно. Для первого раза достаточно знать, какие вообще комбинации существуют. К тому же, многие сочетания вполне интуитивны. Зная базовые и несколько дополнительных, вы начнете догадываться, куда можно нажать, чтобы получить то, что вам нужно.\n\nПишите в комментариях, если у вас есть свои любимые сочетания, не описанные в статье.\n\nИзначально идею скрипта я позаимствовал из [этой замечательной статьи](https://tonsky.me/blog/cursor-keys/) в блоге Никиты Прокопова.\n\n## Полезные ссылки\n\n— [Сайт для тренировки сочетаний клавиш и основных команд](https://www.shortcutfoo.com/)\n\n— [Сочетания для инструментов разработчика в Chrome](https://developers.google.com/web/tools/chrome-devtools/shortcuts)\n\n— [Документация AutoHotkey по горячим клавишам](https://www.autohotkey.com/docs/Hotkeys.htm)\n\n— [AutoHotkey для Linux](https://appdb.winehq.org/objectManager.php?sClass=version&iId=17738)\n\n— [Тренажер для тренировки слепой десятипальцевой печати](https://stamina.ru/keyboard_trainer/download)\n\n— [Про настройку сочетаний клавиш в VSCode](https://code.visualstudio.com/docs/getstarted/keybindings)\n\n— [Продвинутое использование VSCode](https://code.visualstudio.com/docs/editor/editingevolved)\n\n— [Неочевидные возможности VSCode](https://www.vscodecandothat.com/)\n\n— [Мои кастомные сочетания клавиш в VSCode](https://gist.github.com/kotano/3c150d020a03709b15c31ea8b91658e6)\n\n— [Памятка по сочетаниям в VSCode](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf)\n","reading_time":12,"url":"https://ru.hexlet.io/blog/posts/klaviaturnyy-geroy-kak-sochetayutsya-klavishi","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":1211,"title":"Первая задача на работе","slug":"pervaya-zadacha-na-rabote","summary":"Что делает на работе в первые дни PHP-Junior","created_at":"2021-01-04T08:00:48.653Z","published_at":"2021-03-12T15:19:47.210Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1146,"title":"Мое трудоустройство","slug":"trudoustroystvo","summary":"Первый рабочий день","created_at":"2020-12-04T16:15:03.239Z","published_at":"2021-03-02T13:50:02.839Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1193,"title":"Новогодняя неделя - 10 неделя моего обучения на Хекслет","slug":"novogodnyaya-nedelya-10-nedelya-moego-obucheniya-na-hekslet","summary":"10 неделя обучения на Хекслете.","created_at":"2020-12-28T15:35:14.109Z","published_at":"2021-02-03T16:52:10.632Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"}],"category":{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},"mainStackCategory":{"id":7,"name":"Курсы по DevOps","slug":"devops","short_name":"DevOps","order":4,"state":"published","category_slug":"courses_devops"},"categories":[{"id":6,"name":"Мотивация","slug":"motivation","state":"published","created_at":"2016-10-06T18:31:38.903Z"},{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"}],"relatedLandings":[{"stack":{"id":46,"slug":"local-environment-automation","title":"Автоматизация локального окружения","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1800,"duration_in_months":1},"id":80,"slug":"local-environment-automation","title":"Автоматизация локального окружения","subtitle":"Навык настраивать локальное окружение с помощью специализированных инструментов для удобной и эффективной разработки","subtitle_for_lists":"Освоите настройку окружения с dev-инструментами","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"local-environment-automation","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--126b25f39a57b0fdbd31895236a8d1da05b80ac4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server-amico.png"},{"stack":{"id":31,"slug":"frontend-testing-react","title":"Автоматизация тестирования фронтенда","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1600,"duration_in_months":2},"id":50,"slug":"frontend-testing-react","title":"Автоматизация тестирования фронтенда","subtitle":"Навык автоматизированного тестирования JavaScript в браузере, открывающий доступ к новым карьерным возможностям","subtitle_for_lists":"Освоите автотесты на JavaScript для браузерных приложений","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"frontend-testing-react","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzMiwicHVyIjoiYmxvYl9pZCJ9fQ==--7e1956d5683226b3f32f57abb931d34a6639970b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/QA%20engineers-rafiki.png"},{"stack":{"id":47,"slug":"qa-auto-engineer-javascript","title":"Автоматизатор тестирования на JavaScript","audience":"for_programmers","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":90,"duration_in_months":6},"id":82,"slug":"qa-auto-engineer-javascript","title":"Автоматизатор тестирования на JavaScript","subtitle":"Изучите: Git, JavaScript, Playwright, юнит-, API- и UI-тесты, Docker и SQL","subtitle_for_lists":"Изучите: Git, JavaScript, Playwright, юнит-, API- и UI-тесты, Docker и SQL","locale":"ru","current":true,"duration_in_months_text":"6 месяцев","stack_slug":"qa-auto-engineer-javascript","price_text":"от 4 281 ₽","duration_text":"6 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk0MSwicHVyIjoiYmxvYl9pZCJ9fQ==--9a9cd0863661374e7c92ea27b1270ac3299c0979/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Usability%20testing-pana.png"},{"stack":{"id":220,"slug":"qa-auto-engineer-python","title":"Автоматизатор тестирования на Python","audience":"for_programmers","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":100,"duration_in_months":6},"id":331,"slug":"qa-auto-engineer-python","title":"Автоматизатор тестирования на Python","subtitle":"Изучите Python, фреймворки для тестирования, автоматизация UI и API","subtitle_for_lists":"Изучите Python, фреймворки для тестирования, автоматизация UI и API","locale":"ru","current":true,"duration_in_months_text":"6 месяцев","stack_slug":"qa-auto-engineer-python","price_text":"от 4 281 ₽","duration_text":"6 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkyMCwicHVyIjoiYmxvYl9pZCJ9fQ==--71cd9d863b21d7bfbd927cf623a7a2baaf4530ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Bug%20fixing-cuate.png"},{"stack":{"id":12,"slug":"frontend","title":"Фронтенд-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":20,"duration_in_months":10},"id":17,"slug":"frontend","title":"Фронтенд-разработчик","subtitle":"Изучите HTML, CSS, JavaScript и React","subtitle_for_lists":"Изучите HTML, CSS, JavaScript и React","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"frontend","price_text":"от 6 792 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"}]},"url":"/blog/posts/klaviaturnyy-geroy-kak-sochetayutsya-klavishi","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Арслан Худайкулиев","name":"Кунг-фу на клавиатуре. Искусство сочетать клавиши","datePublished":"2021-01-14T07:36:44.930Z","headline":"О том, как из компьютерной мыши превратиться в клавиатурного героя","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":9}]}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/blog","name":"Блог Хекслета"}},{"position":2,"@type":"ListItem","item":{"@id":"/blog/categories/student-diary","name":"Дневник студента"}},{"position":3,"@type":"ListItem","item":{"@id":"/blog/posts/klaviaturnyy-geroy-kak-sochetayutsya-klavishi","name":"Кунг-фу на клавиатуре. Искусство сочетать клавиши"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/student-diary">Дневник студента</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Кунг-фу на клавиатуре. Искусство сочетать клавиши</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Кунг-фу на клавиатуре. Искусство сочетать клавиши</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">14 января 2021 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>12 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>9</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" alt="Кунг-фу на клавиатуре. Искусство сочетать клавиши"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p><strong>Путь от компьютерной мыши до клавиатурного героя</strong></p>
<p>Сочетания клавиш - это простые команды, позволяющие удерживать пальцы на клавиатуре, а не прыгать вперед и назад к мыши. Вы, вероятно, уже знаете такие распространенные сочетания клавиш, как CTRL + C для копирования и CTRL + V для вставки, но есть множество других сочетаний клавиш, которые позволяют делать что угодно на вашем компьютере или в конкретной программе. Говорят, что знание только основных сочетаний экономит вам 8 рабочих дней каждый год. Цель этой статьи - сэкономить вам в два раза больше.</p>
<p>К сожалению, для многих знание «контрол-цэ» и «контрол-вэ» становится верхней границей в использовании комбинаций. Именно для них были написаны первые главы этой статьи, где мы разберем основные сочетания клавиш и советы по эффективному использованию клавиатуры, которые прогонят из вас компьютерную мышь.</p>
<p>Для тех, кто осилил начало статьи, дальше начнется самое интересное. Я расскажу о таком инструменте, как AutoHotkey, использование которого сделает из вас настоящего печатающего ниндзю.</p>
<p>В конце вы увидите, как все эти знания можно использовать при работе с самым популярным на данный момент текстовым редактором Visual Studio Code.</p>
<p><em>Не пытайтесь просто запомнить все, что написано в статье. Обязательно попробуйте понажимать все сочетания клавиш, о которых вы не знали! А потом возвращайтесь время от времени, чтобы освежить память.</em></p>
<p><em>Эта статья больше актуальна для владельцев системы Windows.</em></p>
<p><strong>Поехали.</strong></p>
<style data-mantine-styles="inline">.__m__-_R_hderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_hderddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_hderddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/local-environment-automation?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация локального окружения</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите настройку окружения с dev-инструментами</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--126b25f39a57b0fdbd31895236a8d1da05b80ac4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Server-amico.png" alt="Автоматизация локального окружения" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/frontend-testing-react?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизация тестирования фронтенда</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите автотесты на JavaScript для браузерных приложений</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkzMiwicHVyIjoiYmxvYl9pZCJ9fQ==--7e1956d5683226b3f32f57abb931d34a6639970b/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/QA%20engineers-rafiki.png" alt="Автоматизация тестирования фронтенда" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/qa-auto-engineer-javascript?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">6 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизатор тестирования на JavaScript</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите: Git, JavaScript, Playwright, юнит-, API- и UI-тесты, Docker и SQL</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk0MSwicHVyIjoiYmxvYl9pZCJ9fQ==--9a9cd0863661374e7c92ea27b1270ac3299c0979/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Usability%20testing-pana.png" alt="Автоматизатор тестирования на JavaScript" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 4 281 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/qa-auto-engineer-python?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">6 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Автоматизатор тестирования на Python</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите Python, фреймворки для тестирования, автоматизация UI и API</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzkyMCwicHVyIjoiYmxvYl9pZCJ9fQ==--71cd9d863b21d7bfbd927cf623a7a2baaf4530ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Bug%20fixing-cuate.png" alt="Автоматизатор тестирования на Python" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 4 281 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/frontend?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Фронтенд-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите HTML, CSS, JavaScript и React</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Фронтенд-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 6 792 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">Базовые сочетания</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-3">Windows</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Проводник</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">Утилиты</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-6">Chrome</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Vimium</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-8">AutoHotkey</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-10">VSCode</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-11">Демонстрация</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-12">Заключение</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-13">Полезные ссылки</a></li>
</ul>
<h2 id="heading-2-2">Базовые сочетания</h2>
<p>Базовыми сочетаниями я буду называть те, которые выполняют похожие функции в разных операционных системах и приложениях, как например <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+C</code> и <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+V</code>, о которых в этой статье говориться не будет :).</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Esc</code> — aka Escape или Эскейп или Эскейт или... ладно, ладно. Тут все просто, она в основном используется для выхода из чего-либо или отмены чего-либо. Если все пошло наперекосяк и «Я что-то нажала и все уронилось», то скорее всего вам нужно будет обратиться к этой клавише.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Tab</code> — Таб это не только символ табуляции, но еще и полезнейший инструмент смены фокуса. Фокус здесь означает то место, на которое будут направлены действия пользователя в системе. Так, например, если у нас в приложении стоит фокус на текстовом поле, то все, что мы печатаем, будет вноситься именно в это поле. Если фокус на кнопке - то <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Space</code> или в худшем случае <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Enter</code> нажмут на эту кнопку. Так что совет тут такой. Когда заполняем формы, переключаемся между полями через <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Tab</code>, отмечаем галочки через <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Space</code>, решили вернуться - <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Tab</code>.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift</code> — позволяет выделять последовательности символов или других объектов в зависимости от программы. Например, в проводнике, если выбрать файл, зажать шифт и выбрать другой файл, то все, что находилось между этими двумя файлами будет выделено.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl</code> — работает похожим образом, но позволяет точечно выбирать, что именно вам нужно.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+/<key/></code> — так исторически сложилось, что <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift</code> часто используется для инвертирования действия, выполненного сочетанием клавиш без <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift</code>. Например, <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Tab</code> совершает действие, противоположное <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Tab</code>. Keep in mind!</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">F1</code> — вызов справки. Не знаю, почему так.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+W</code> — закрыть окно, вкладку. Почти всегда работает в приложениях, где есть вкладки.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+F</code> — поиск. F - Find.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+P</code> — в большинстве программ вызывает меню печати.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+D</code> — создать копию объекта. От слова Duplicate.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+S</code> — сохранить. Что тут еще говорить.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Z</code> — отменить действие. В терминалах часто используется для остановки процесса и перевода его в фон.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Y/Ctrl+Shift+Z</code> — повторить отмененное действие.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+N</code> — открыть новое окно.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+(+)</code> — приблизить / увеличить масштаб.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+(-)</code> — отдалить / уменьшить масштаб.</p>
<p>Хотя использование мыши - дело, недостойное настоящего погромиста, но иногда без нее никуда.</p>
<p>Эти сочетания мыши критичны для тех, кто работает с графическими элементами.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+MouseScroll</code> — увеличить / уменьшить масштаб.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+MouseScroll</code> — переместиться по горизонтали. Иногда весь контент не помещается в окне, и появляется горизонтальная полоса прокрутки. Данное сочетание позволяет перемещаться вправо или влево в таких ситуациях.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Click</code> — выбрать группу элементов, если возможно.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Click</code> — выбрать элементы, точечно.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+(Dragging)</code> — копировать элемент или группу элементов и переместить на позицию курсора. Работает не везде, но полезно помнить.</p>
<h2 id="heading-2-3">Windows</h2>
<p>Уже давно прошло время, когда работать на Windows программисту было неудобно. Сейчас это современная система, предоставляющая пользователю множество возможностей.</p>
<p>Парочка полезностей:</p>
<p>Поиск через «Start» в Windows работает так, что он быстро находит файлы, находящиеся в системных папках. Поэтому, если вам лень ходить по файловой системе, нажимаем <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win</code> и вводим имя файла — система быстро нам его найдет.</p>
<p>Если открыть контекстное меню файла с зажатым <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift</code>, то появятся дополнительные опции. Одной из них будет «Скопировать как путь», очень удобно.</p>
<p><strong>Сочетания</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+D</code> — скрыть все окна.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+M</code> — свернуть все окна.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+P</code> — открыть меню проекции на дополнительные дисплеи.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Left/Right</code> — переместить окно влево/вправо.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Up</code> — развернуть окно на весь экран.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Down</code> — открепить окно / свернуть.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+L</code> — заблокировать систему.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+B</code> — фокус на панель инструментов.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Ctrl+Left/Right</code> — переключиться между рабочими столами.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+(.)</code> — открыть меню стикеров. 😀</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Tab</code> — вы и так знаете. Переключаемся между активными окнами. Зажатый <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift</code> двигает нас назад.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+{1, 2, 3, ...}</code> — открыть n-ное окно прикрепленное к панели задач. Обязательно к использованию!</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Shift+{1, 2, 3, ...}</code> — открыть n-ное окно от имени администратора.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Shift+S</code> — сделать скриншот части экрана.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+Esc</code> — открыть диспетчер задач.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+\<key\></code> — активирует навигацию в окнах многих программ.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Shift+M</code> — развернуть все окна.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">PrintScreen</code> или <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">PrtScn</code> — сделать снимок экрана. Вроде бы вещь банальная, но, как показывает практика, все еще есть люди, которые фотографируют экран. Скриншот сохраняется в буфер обмена, поэтому, чтобы просмотреть картинку, вам нужно будет ее вставить в соответствующую программу, например Paint.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+PrintScreen</code> — сделать скриншот окна.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+PrintScreen</code> — сделать скриншот экрана и сохранить в папку «Изображения».</p>
<h2 id="heading-2-4">Проводник</h2>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+E</code> — открыть проводник.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Enter</code> — открыть свойства файла.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Enter</code> — открыть папку в новом окне.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+N</code> — создать новую папку в текущей директории в проводнике.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Left / Alt+Right</code> — предыдущая папка / следующая папка в истории.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Up</code> — переместиться на уровень вверх.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+V+H+H</code> — показать/скрыть скрытые файлы в проводнике.</p>
<h2 id="heading-2-5">Утилиты</h2>
<p><em>Magnifier</em></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+(+)</code> — увеличить часть экрана.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+(-)</code> — уменьшить часть экрана.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Esc</code> — закрыть Magnifier.</p>
<p><em>Xbox Game Bar</em></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+G</code> — открыть игровое меню XBox.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Win+Alt+R</code> — начать/остановить запись текущего окна. R - Record.</p>
<h2 id="heading-2-6">Chrome</h2>
<p>В хроме исправно работают многие из сочетаний, которые описаны в Базовых сочетаниях.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+W</code> - брат <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+W</code>. Позволяет закрыть все вкладки сразу.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+N</code> — открыть новое окно в режиме инкогнито. Если вам часто нужно открыть «чистое» окно браузера, то запомните это сочетание.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+T</code> — открыть новую вкладку и перейти к ней.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+T</code> — открыть ранее закрытую вкладку. В некоторых случаях это поможет восстановить историю вкладок, если браузер был принудительно закрыт.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Tab</code> — перейти к следующей вкладке на панели.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+Tab</code> — перейти к следующей вкладке на панели.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+{1, 2, ..., 8}</code> — перейти к n-ной вкладке.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+9</code> — перейти к последней вкладке.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+R</code> — перезагрузить страницу.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+R</code> — перезагрузить страницу, без использования данных в кэше.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+D</code> — сохранить текущую страницу в закладках.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+D</code> — сохранить все открытые вкладки в закладках. Поосторожнее с этим!</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+L</code> — фокус на адресную строку.</p>
<p><strong>Сочетания мыши</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">MiddleMouseButton</code> — открыть страницу по ссылке в новой вкладке.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Click</code> — открыть страницу по ссылке в новой вкладке.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+Click</code> — открыть ссылку в новой вкладке и перейти к ней. Обычно это именно то, что нужно, если вы хотите быстро просмотреть информацию по другой ссылке.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Click</code> — открыть ссылку в новом окне.</p>
<p><strong>Меню</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+H</code> — открыть историю браузера.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+J</code> — открыть страницу загрузок.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Esc</code> — открыть диспетчер задач Chrome. Если вы не понимаете, какая страница сильно нагружает ваши ресурсы, то стоит сюда заглянуть.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+O</code> - открыть страницу закладок.</p>
<p><strong>Developer tools</strong></p>
<p>Developer tools — один из самых полезных инструментов в арсенале Web-разработчика. Посмотрим, как можно немного ускорить работу с ним в браузере Chrome.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+J / F12</code> — открыть вкладку Console в инструментах разработчика</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+(backtick)</code> — фокус на консоли. При открытом меню инструментов разработчика.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+I</code> — открыть последнюю использованную вкладку в инструментах разработчика.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+C</code> — открыть панель элементов страницы.</p>
<p>Этого немного, но достаточно, чтобы пользоваться и не перегружать мозг. Больше сочетаний <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://developers.google.com/web/tools/chrome-devtools/shortcuts" rel="noopener noreferrer" target="_blank">здесь</a>.</p>
<p>Базовые сочетания плюс те, которые используются в Chrome, составляют большую часть наиболее распространенных сочетаний. Это значит, что, подобные сочетания вы сможете применить в большинстве программ, с которыми работаете. Поэтому многие «интуитивные» сочетания я буду опускать.</p>
<h2 id="heading-2-7">Vimium</h2>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://i.ibb.co/wWBN5Zw/wewantvim.jpg," alt="We want Vim keybindings!" title="Чего мы хотим?" loading="lazy"/></p>
<p><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb" rel="noopener noreferrer" target="_blank">Vimium</a> - расширение для браузера, которое предоставляет сочетания клавиш для навигации и управления в духе редактора Vim.</p>
<p><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://github.com/philc/vimium/wiki/Key-Mappings#russian-language-keyboards" rel="noopener noreferrer" target="_blank">Для работы с русской раскладкой</a> нужно будет добавить «мэпы» в настройки вимиума.</p>
<p><strong>Вот что это нам дает.</strong></p>
<p>Переход по ссылкам через <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">F+<key></code>. Больше не нужно тянуться за мышкой, чтобы кликнуть по ссылке. Это сделает за вас Vimium. Нажмите клавишу <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">F</code> и на странице к каждой ссылке прикрепится название клавиши, которую нужно нажать далее, чтобы перейти по ней.</p>
<p><strong>Перемещение через сочетания как в виме.</strong></p>
<p>Используйте привычные клавиши hjkl для движения по странице.</p>
<p><strong>Панель поиска</strong></p>
<p>— Ищем везде через <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">o</code></p>
<p>— Ищем в закладках через <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">b</code></p>
<p>— Ищем в открытых вкладках через <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">T</code></p>
<p>Я не буду раскрывать все сочетания, для этого есть вот такая хорошая памятка:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://i.ibb.co/NTPN0W7/vimium-Keybindings.png," alt="Сочетания клавиш Vimium" title="Vimium hotkeys" loading="lazy"/></p>
<h2 id="heading-2-8">AutoHotkey</h2>
<p><strong>Хакерский редактор</strong></p>
<p>Когда я писал свой скрипт для AHK, я вдохновлялся идеями, которые заложены в основу редактора <del>мозга</del> кода Vim.
Vim - это такая прикольная штуковина, которую очень любят олды и которому поклоняются, как в карго-культе, все новички, которые слышат о его возможностях.</p>
<p>— Vim (сокр. от Vi Improved, произносится «вим») — кошмар для случайного пользователя. Если его удаётся в конце концов закрыть, то вздыхаешь с облегчением и твёрдой уверенностью, что больше не будешь запускать эту программу ни разу в жизни.
(c) Материал из Викиучебника</p>
<p>Так что же в нем особенного?
На Хекслете есть неплохая <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://guides.hexlet.io/vim/" rel="noopener noreferrer" target="_blank">статья</a>, рассказывающая о том, почему Vim - это хорошо.</p>
<p>Я тоже думаю, что вим - это хорошо и знать основные его команды очень пригодится. Так, например, упоминание этого редактора при разговоре с разработчиками даст вам +1 к крутости. А на многих сайтах (например YouTube) используются сочетания именно из этого редактора. Однако это все напускное, реальность такова, что Vim - не современный инструмент, а популярность его поддерживается лишь благодаря старичкам и тем, кто любит выпендриваться.</p>
<p>О самом популярном в мире редакторе кода я расскажу чуть позже.</p>
<p><strong>Главный аргумент в пользу вима - Vim позволяет писать эффективно.</strong></p>
<p>Вим спроектирован так, чтобы минимизировать перемещения ваших запястий во время набора текста. Все его горячие клавиши находятся в прямой доступности ваших рук.</p>
<p>Этой же цели цели хочу добиться я. Но без привязки к Виму, с его недружелюбными режимами.</p>
<p><strong>Используем AHK</strong></p>
<p>— AutoHotkey — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows. AutoHotkey является языком программирования сценариев, приспособленным к лёгкому назначению и переназначению горячих клавиш, включая кнопки мыши и джойстика.</p>
<p>Короче говоря, AHK позволяет нам автоматизировать рутинные задачи, создавать программы с графическим интерфейсом или просто автоматически писать Sincerely Yours в конце электронного письма. Чтобы профессионально лениться с помощью AHK нужно существенно поработать головой перед этим.</p>
<p>На обычной клавиатуре зачастую есть такая замечательная, очень бесполезная клавиша, как CapsLock. Почему бесполезная? Да потому что единственная ее функция - зажимать вместо вас клавишу Shift. Ее любят в основном тролли в интернете и те, кто часто пишут SQL запросы. Зато неудобств от нее куча. Сколько раз вы проверяли, включен ли у вас CapsLock перед вводом пароля? Как минимум раз так точно, а этого уже достаточно, чтобы ночью видеть кошмары.</p>
<p>Вердикт — «капсу» можно найти лучшее применение.</p>
<p>Итак, мы хотим иметь возможность не отрывать руку от фыва олдж позиций ни на клавишу. Мы хотим писать эффективно, да так, чтобы не уступать прославленным вимерам. И мы хотим, чтобы было несложно. А еще у нас есть программа, с помощью которой можно программировать сочетания клавиш и одна лишняя клавиша на клавиатуре. Пазл сошелся? Запоминаем и идем писать программу.</p>
<p>Вот как выглядит часть моего <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://gist.github.com/kotano/e561f3317cc4c867eb367205aa0fa210" rel="noopener noreferrer" target="_blank">скрипта</a> для AutoHotkey:</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">SetCapsLockState AlwaysOff
Basic movement
CapsLock & j::Send {blind}{Left}
CapsLock & l::Send {blind}{Right}
CapsLock & i::Send {blind}{Up}
CapsLock & k::Send {blind}{Down}
Fast move
CapsLock & u::Send {blind}{Up 5}
CapsLock & n::Send {blind}{Down 5}
Fast delete
CapsLock & Backspace::Send {blind}{Backspace 5}
CapsLock & Delete::Send {blind}{Delete 5}
Delete words
CapsLock & w::Send {blind}^{Backspace}
CapsLock & e::Send {blind}^{Delete}</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p>А вот что он делает
<img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://i.ibb.co/GFcNnk5/Caps-Keyboard.png" alt="Функции клавиш с включенным скриптом" title="capsKeys keyboard layout" loading="lazy"/></p>
<p>Если в Vim сочетания клавиш опираются на семантику, то в этом скрипте я опирался на удобство.</p>
<p>Чтобы попробовать, вы можете:</p>
<p>— Скачать .exe файл
— Запустить</p>
<p>или</p>
<p>— Установить AutoHotkey
— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://github.com/kotano/capsKeys/" rel="noopener noreferrer" target="_blank">Загрузить исходники скрипта</a>
— Запустить через AutoHotkey</p>
<p>Если еще не поняли, то рассказываю в чем суть: когда этот скрипт работает, ничего не меняется до тех пор, пока вы не зажмете клавишу CapsLock. С этого момента начинается магия. Какая? Рассказываю.</p>
<h4 id="heading-4-9">Особенности</h4>
<p><strong>Никакого больше переключения регистра.</strong> Строчные буквы по умолчанию! Это которые маленькие.</p>
<p><strong>Кнопки перемещения находятся в области правой руки.</strong> Мы привыкли, что стрелочки справа, поэтому и кнопки навигации - справа.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+J</code> — влево
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+i</code> — вверх
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+L</code> — вправо
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+K</code> — вниз
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+U</code> — вверх пять раз
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+N</code> — вниз пять раз
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+Y</code> — страница вверх (PgUp)
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+B</code> — Страница вниз (PgDn)</p>
<p><strong>Зажатый капс работает как Ctrl в случае с символами X, C, V.</strong> Так просто удобнее!</p>
<p><strong>Вызов контекстного меню.</strong> Caps + P - позволяет вызвать контекстное меню. Очень полезная комбинация.</p>
<p><strong>Перемещаемся по словам.</strong> Через <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+LeftAlt</code> и <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+Space</code>. Одно из самых часто используемых мной сочетаний, особенно вместе с зажатым <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift</code>. Однако здесь есть недостаток. Так как мы затрагиваем функциональную клавишу, это меняет поведение <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt</code>. Например, мы хотим использовать сочетание <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Up</code> в VSCode и делаем это конечно же через AHK. То есть <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+Alt+Up</code>, но вот проблема, как только мы зажимаем первые две клавиши, все идет к чертям. Что делать? Тут есть два варианта. Можно использовать правый <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt</code> то есть <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+RightAlt+Up</code> или сначала нажимать <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt</code>, а потом остальную часть сочетания.</p>
<p><strong>Удаляем эффективно.</strong> Вы не знали, что сочетание <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Backspace</code>, <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Delete</code> удаляет целые слова вместо символов? Я тоже, до недавнего времени. В скрипте есть целая линия клавиш выделенная для удаления.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+Q</code> — удалить все символы слева от курсора
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+W</code> — удалить слово слева от курсора
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+E</code> — удалить слово справа от курсора
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+R</code> — удалить все символы справа от курсора</p>
<p><strong>Фишки</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+A</code> — Скопировать текущую строку и вставить снизу
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+S</code> — Выделить слово на позиции курсора
<code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Caps+D</code> — Скопировать строку и удалить. Украдено прямиком из вима.</p>
<p><strong>Работает везде.</strong> Работает как в вашем редакторе кода, так и в любом другом редакторе, да и в целом любом другом текстовом поле. Запомнил один раз - пользуйся везде.</p>
<p>Прежде чем основательно начать пользоваться этим скриптом, убедитесь, что вы владеете хотя-бы слепой восьмипальцевой печатью. В противном случае вы рискуете получить вредные привычки, которые будут замедлять вашу скорость набора текста. Советую режим «фразы» в этом замечательном <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://stamina.ru/keyboard_trainer/download" rel="noopener noreferrer" target="_blank">бесплатном</a> тренажере.</p>
<h2 id="heading-2-10">VSCode</h2>
<p>Когда дело доходит до выбора редактора кода, то тут все решают личные предпочтения. Однако есть редактор, который придется по вкусу практически каждому, и это Visual Studio Code.</p>
<p>VSCode — опенсорсное творение Microsoft, написанное при помощи фреймворков для JavaScript/TypeScript. Из коробки это простенький красивый редактор кода, который позволит вам в считанные секунды начать писать что вздумается. А если прикрутить к нему расширения, которые регулярно пишутся и поддерживаются огромным сообществом, то то эта малышка даст жару любой профессиональной IDE.</p>
<p><strong>Простые сочетания</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">F1</code> — открыть окошко команд. Наше все для пользователя VSCode. Почти любое действие можно выполнить с помощью этого окна.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">F2</code> — переименовать определение / переменную / функцию синхронно. Одна из самых приятных возможностей в VSCode. Если вы передумали с названием переменной, это позволит изменить все места где используется эта переменная, учитывая контекст.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">F8</code> — переместиться к следующему проблемному месту в коде.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+.</code> — быстрое исправление ошибки. Если вы допустили какую-то распространенную ошибку, VSCode может исправить ее за вас. Очень удобно использовать в сочетании с F8.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">F9</code> — поставить точку остановки для дебаггера.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+P</code> — перейти к файлу.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+R</code> — открыть недавний проект / файл.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+(,)</code> — открыть настройки редактора.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Q</code> — перейти в другую панель.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+/</code> — закомментировать строку.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+T</code> — переместиться к функции или переменной во всех файлах.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+O</code> — переместиться к функции или переменной в текущем файле.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Home</code> — переместиться к началу файла.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+End</code> — переместиться к концу файла.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+\</code> — переместиться к соответствующей скобке.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+N</code> — открыть новое окно VSCode.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Left / Alt+Right</code> — переместиться к предыдущей / следующей активной строке. Когда вы скачете со строки на строку, VSCode запоминает это в своей истории, и вы можете быстро переключаться между самыми горячими местами в коде.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Up/Down</code> — переместить строку вверх/вниз. Must have!</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt</code> — ускорить прокрутку страницы. Если начать прокручивать страницу и зажать <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt</code>, то процесс пойдет немного быстрее.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Z</code> — переключить режим переноса строк.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Alt+F</code> — автоматическое форматирование текста. VSCode поддерживает автоматическое форматирование для большинства языков. Нажатие этой клавиши подгонит ваш код под стандарты, принятые в Code style вашего языка.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Alt+O</code> — упорядочить импорты в соответствии со стандартами вашего языка.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+C</code> — скопировать текущую строку, если нет выделения, иначе работает как обычное копирование.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+X</code> — вырезать строку, если нет выделения, иначе работает как обычная операция Cut.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+Up/Down</code> — скопировать выделенные строки вверх/вниз. Полезно, если вам нужно повторить какой-то блок кода несколько раз.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Alt+Right</code> — переместить активный файл в соседнюю группу редактирования. Это позволит вам параллельно просматривать два или более файлов. <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Alt+Left</code> двигает его обратно.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+0</code> — фокус на боковую панель.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+{1, 2, 3, ..}</code> — фокус на первую/вторую/третью группу редакторов. Если вы параллельно просматриваете два или больше файлов, это сочетание поможет вам переключаться между ними. Однако по своему опыту скажу, что больше двух редакторов никто обычно не открывает. Поэтому у себя я поменял сочетание для работы с двумя окнами редактирования и двумя терминалами.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+{1, 2,..., 8}</code> — переключиться между активными вкладками в окне редактирования. <strong>Обязательно к запоминанию!</strong> Alt+0 открывает последнюю вкладку.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Space</code> — активировать автоподстановку.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Ctrl+Space</code> — открыть подсказку для параметров функции.</p>
<p><strong>Посложнее</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Ctrl+Up/Down</code> — добавить курсор на верхнюю/нижнюю строку. Одна из особенностей современных редакторов. Позволяет редактировать текст одновременно в нескольких местах. <strong>Суперфича!</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+D</code> — добавить курсор в конец следующего вхождения данного слова.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Alt+Click</code> — добавить курсор в позицию указателя мыши.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Alt+(Dragging)</code> — добавлять курсоры по пути следования указателя мыши.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Alt+Right</code> — выделение с учетом контекста. Например, у нас есть длинное выражение внутри скобок, данное сочетание позволит нам выбрать все, что находится внутри них. Последовательные нажатия расширяют область выделения.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Alt+Left</code> — действие, противоположное <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Shift+Alt+Right</code>.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+[</code> — свернуть блок кода. Если файл стал слишком большим, и перемещаться стало слишком сложно, то данное сочетание позволит свернуть блоки текста, которые вам сейчас не нужны.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+]</code> — развернуть блок кода. Противоположно <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+[</code>.</p>
<p>Следующее сочетание отсутствует в сборке для Windows, но я рекомендую установить его вручную. У меня это <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+J</code>.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Нет(Win) / Ctrl+J(Mac)</code> — присоединить следующую строку к текущей. По сути, все, что делает данная команда, так это удаляет символ переноса с текущей строки. Очень удобно, если нужно сжать html-файл.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+L</code> — выделить все одинаковые слова и переместить курсор к концу каждого. Сильная штука, позволяет редактировать все вхождения определенного слова. Но стоит быть аккуратнее, если это слово встречается в качестве подстроки, то оно тоже будет изменено.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+K Z</code> — Включить Zen Mode. Для настоящих гуру.</p>
<p><strong>Навигация</strong></p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+B</code> — открыть / закрыть боковую панель.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+E</code> — открыть меню навигации.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+D</code> — открыть меню запуска. Используется во время дебаггинга.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+F</code> — меню поиска. Позволяет искать текст по всем файлам.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+H</code> — открыть меню замены. Брат <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+F</code>, но с функцией замены.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+G</code> — открыть меню контроля версий. Если у вас установлено расширение GitLens, то оно может изменить это сочетание.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+J</code> — открыть/закрыть панель.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+X</code> — открыть меню расширений.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+(backtick)</code> — открыть терминал.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+M</code> — открыть панель ошибок.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+U</code> — открыть консоль вывода.</p>
<p><code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">Ctrl+Shift+Y</code> — открыть консоль отладки.</p>
<h2 id="heading-2-11">Демонстрация</h2>
<p>Ну и на десерт, небольшое видео, где я наглядно показываю, как можно совместить использование скрипта capsKeys и возможности редактора VSCode. Чудес не обещаю, но суть должна быть понятна 😉. <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.youtube.com/watch?v=QxLp-4aMAp0" rel="noopener noreferrer" target="_blank">https://www.youtube.com/watch?v=QxLp-4aMAp0</a></p>
<style data-mantine-styles="inline">.__m__-_R_e5derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_e5derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_e5derddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/pervaya-zadacha-na-rabote"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Первая задача на работе"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Первая задача на работе</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Что делает на работе в первые дни PHP-Junior</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">12 марта 2021 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/trudoustroystvo"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Мое трудоустройство"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Мое трудоустройство</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Первый рабочий день</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">2 марта 2021 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/novogodnyaya-nedelya-10-nedelya-moego-obucheniya-na-hekslet"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Новогодняя неделя - 10 неделя моего обучения на Хекслет"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Новогодняя неделя - 10 неделя моего обучения на Хекслет</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 неделя обучения на Хекслете.</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">3 февраля 2021 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h2 id="heading-2-12">Заключение</h2>
<p>В этой статье я рассмотрел способы увеличения продуктивности при написании кода или любого текста посредством использования сочетания клавиш и кое-чего еще. Мы начали с самых простых сочетаний и дошли до продвинутых вариантов использования клавиатуры. Я надеюсь эти знания не раз пригодятся вам в вашей профессиональной карьере.</p>
<p>Не старайтесь запомнить все сразу. Я тоже не все из этого хорошо помню и даже не пытаюсь применять постоянно. Для первого раза достаточно знать, какие вообще комбинации существуют. К тому же, многие сочетания вполне интуитивны. Зная базовые и несколько дополнительных, вы начнете догадываться, куда можно нажать, чтобы получить то, что вам нужно.</p>
<p>Пишите в комментариях, если у вас есть свои любимые сочетания, не описанные в статье.</p>
<p>Изначально идею скрипта я позаимствовал из <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://tonsky.me/blog/cursor-keys/" rel="noopener noreferrer" target="_blank">этой замечательной статьи</a> в блоге Никиты Прокопова.</p>
<h2 id="heading-2-13">Полезные ссылки</h2>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.shortcutfoo.com/" rel="noopener noreferrer" target="_blank">Сайт для тренировки сочетаний клавиш и основных команд</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://developers.google.com/web/tools/chrome-devtools/shortcuts" rel="noopener noreferrer" target="_blank">Сочетания для инструментов разработчика в Chrome</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.autohotkey.com/docs/Hotkeys.htm" rel="noopener noreferrer" target="_blank">Документация AutoHotkey по горячим клавишам</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://appdb.winehq.org/objectManager.php?sClass=version&iId=17738" rel="noopener noreferrer" target="_blank">AutoHotkey для Linux</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://stamina.ru/keyboard_trainer/download" rel="noopener noreferrer" target="_blank">Тренажер для тренировки слепой десятипальцевой печати</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://code.visualstudio.com/docs/getstarted/keybindings" rel="noopener noreferrer" target="_blank">Про настройку сочетаний клавиш в VSCode</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://code.visualstudio.com/docs/editor/editingevolved" rel="noopener noreferrer" target="_blank">Продвинутое использование VSCode</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.vscodecandothat.com/" rel="noopener noreferrer" target="_blank">Неочевидные возможности VSCode</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://gist.github.com/kotano/3c150d020a03709b15c31ea8b91658e6" rel="noopener noreferrer" target="_blank">Мои кастомные сочетания клавиш в VSCode</a></p>
<p>— <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf" rel="noopener noreferrer" target="_blank">Памятка по сочетаниям в VSCode</a></p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Арслан Худайкулиев</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">5 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/klaviaturnyy-geroy-kak-sochetayutsya-klavishi/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">9</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/pervaya-zadacha-na-rabote">Первая задача на работе</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/trudoustroystvo">Мое трудоустройство</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/novogodnyaya-nedelya-10-nedelya-moego-obucheniya-na-hekslet">Новогодняя неделя - 10 неделя моего обучения на Хекслет</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_devops?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по DevOps</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>