Transcription
Здравствуйте, друзья. Знаете, я периодически созваниваюсь с самыми разными людьми, самого разного уровня профессиональной подготовки. Люди расшаривают мне экран, и мы вместе занимаемся решением какой-нибудь проблемы. Такой сеанс парного программирования, парного дизайна, может быть, надо сказать, достаточно эффективный метод обучения, но невероятно энергозатратный.
Ну так вот, люди расшаривают мне экран, и я всякий раз ловлю себя на мысли, что мне как-то больно, неловко наблюдать за тем, как люди пользуются своими профессиональными инструментами. Причём, что характерно, неважно, что это за инструмент. Это может быть редактор, это может быть Фигма, это может быть браузер, везде всё одинаковое. Меня всегда удивляет, насколько неэффективно можно этим инструментом пользоваться. И ещё больше меня удивляет, когда люди уже имеющие, ну, достаточно большой опыт в разработке могут не знать о существовании, ну, каких-то совершенно банальных вещей, вроде того, что существует мультикурсор.
Для того, чтобы открыть в проекте файл, название которого тебе известно, тебе не нужно елозить мышкой по всему файловому дереву. Недолго и мучительно его искать. Можно просто нажать две кнопки и открыть этот файл. Таких вещей очень много. Мне за этим неловко наблюдать. И давайте я попробую сегодня что-то с этим сделать и расскажу о том, как пользоваться редактором эффективно. Рассказывать буду преимущественно про клавиатурные сокращения. Они же биндинги, они же хоткеи, они же горячие кнопки, жареные кнопки, но зацеплю и вопросы грамотного обращения с мышью.
Убеждён в двух вещах. Во-первых, вы найдёте в этом видео что-то интересное, вне зависимости от уровня вашей профессиональной подготовки. Вторая вещь, в которой я убеждён, что эта информация на длительной дистанции сэкономит вам недели, месяцы, возможно, даже годы времени.
Важная сноска номер один. Это не видео с перечислением всех доступных клавиатурных сокращений. Их очень много, и как минимум половина из них совершенно не стоит того, чтобы тратить на них своё внимание.
Важная сноска номер два. Несмотря на то, что это сильно урезанный список, он всё равно большой. И во время просмотра, особенно если вы не так давно этим всем заинтересовались, у вас может возникать ощущение, что а я ничего не успеваю, можно, пожалуйста, как-то помедленнее. Это нормально. Важно расслабиться и отдавать себе отчёт в том, что во время просмотра этого видео, да и вообще любого видео про разработку, вы на самом деле не занимаетесь обучением. Вы занимаетесь сбором и накоплением информации. Обучением вы будете заниматься в момент, когда вы будете своими руками, на своей клавиатуре, на своей мыши применять полученные знания.
Для того, чтобы вы ничего не забыли, в конце видео я обязательно сделаю краткое резюме всего полезного, что я рассказал, и вы не забудете эту информацию. Скорее всего, сделаю какую-нибудь шпаргалку, в которую можно будет подглядывать. А во время просмотра вы просто ознакамливаетесь с доступными опциями. Как там? Ты не сможешь это загуглить, если не знаешь о том, что оно существует. Вот во время просмотра этого видео вы узнаёте то, что это существует. Так что расслабьтесь и смотрите с удовольствием.
И да, если вы пользователь Вима, тем более продвинутый пользователь Вима, пожалуйста, не смотрите это видео, вы умрёте со смеху, а мне такой грех на душу не нужен. Это видео для простых людей, которые пользуются обычными клавиатурными сокращениями, обычными клавиатурами. В общем, для простых людей. Вам это не надо, я предупредил. Поехали.
Я начну с универсальных клавиатурных сокращений, которые работают не только в VS-коде, но и в любом другом текстовом редакторе. Да и в большинстве других приложений тоже будут работать, но у некоторых из этих сокращений есть специальные возможности непосредственно в VS-коде, поэтому не спешите проматывать, если вам кажется, что про Ctrl+C невозможно узнать ничего нового. С этого, в общем-то, и начнём.
Любимые сокращения всех программистов, да? Ctrl+C — копировать, Ctrl+V — вставить. В VS-коде есть дополнительная фишка. Для того, чтобы скопировать строку целиком, не обязательно её выделять. Можно просто поставить курсор в любое место строки, нажать Ctrl+C, и всё содержание строки попадёт целиком в буфер обмена. Это прикольный факт, но обычно в жизни применимо мало. А вот что применимо часто — это комбинация клавиш Ctrl+X — вырезать, то есть буквально удалить отсюда и поместить в буфер обмена. Формально для того, чтобы удалить строку, есть комбинация клавиш Ctrl+Shift+K, либо можно нажать Shift+Delete. Но эти клавиши друг от друга достаточно далеко стоят, за ними обычно не охота тянуться, а Ctrl+X всегда под рукой. А что находится в буфере обмена, мне обычно до этого дела нет. Ну, в крайнем случае, есть история по буферу обмена. В общем, если мне нужно удалить одну строку, я поставлю курсор в любое место этой строки, нажму Ctrl+X и достигну желаемого оптимальным способом, что рекомендую делать и вам.
Следующий шорткат, который мы посмотрим — это Ctrl+Z — отменить. Про него, пожалуй, знают все, но я был удивлён тому, что не только лишь все знают о том, что у него есть противоположный шорткат. Ctrl+Y — повторить. Таким образом, Ctrl+Z — это отменить операцию, а Ctrl+Y — это повторить операцию. Здесь дополнительно стоит сказать только то, что в VS-коде эти операции относятся не только к содержимому текстового редактора, но и относятся к любым другим операциям в целом. Вы можете что-то сделать с файлом, потом переименовать его, потом переместить, потом удалить, и Ctrl+Z и Ctrl+Y будут перемещаться по всей этой истории. Это безопасно.
Клавиши модификаторы Ctrl и Shift имеют большое значение не только потому, что являются составной частью большинства клавиатурных сокращений. У них есть ещё и самостоятельный смысл. Вот, например, клавиша Ctrl. Если мы переходим в режим редактирования текста и нажимаем стрелочки на клавиатуре, то мы перемещаемся по одному символу. Это логично, так должно быть. Но иногда гораздо удобнее иметь больший шаг. Если мы зажимаем Ctrl и нажимаем стрелочки, то мы перемещаемся целыми словами, что очень помогает при работе с документацией и при работе с кодом.
При сочетании с клавишей Shift, которая в самостоятельном исполнении отвечает по большей части за механизм выделения, можно делать следующие вещи. Например, вот вы в какой-то момент поняли, что вам нужен здесь тип не string, а, скажем, number, и курсор у вас располагается вот как раз там, где нужно. Мы нажимаем Ctrl+Shift+влево, у нас выделяется всё слово целиком, и мы сразу туда вписываем то, что нам нужно. Да, да, это всё можно сделать и мышкой. Можно взять мышь, два раза нажать на слово, оно выделится, после чего мы сделаем всё то же самое. А если мышь сейчас не в руках или если мыши нет вообще и вместо неё какой-нибудь неудобный тачпад либо трекбол какой-нибудь, в котором точность клика в принципе страдает, то-то и оно.
Здесь очень важно не попасть в такую ловушку, что вот если вы научитесь делать это с помощью клавиатуры, это не означает то, что это всегда нужно делать именно с клавиатуры. Я говорю только о том, что нужно знать несколько способов сделать одну и ту же операцию и выбирать оптимальный. То есть, если мышь у меня в руке и курсор у меня располагается над этим словом, я не буду тянуться к клавиатуре для того, чтобы выделить это слово. Я точно так же, как и вы, два раза клацну мышкой, потому что это будет оптимально. Но если две руки у меня на клавиатуре, я работаю с документацией, я работаю с кодом, и мне нужно выделить слово, вот в этот момент я не буду тянуться за мышкой. Я сделаю это с помощью клавиатуры. Это, безусловно, микрооптимизация, но, пожалуйста, не надо думать о секундах свысока. Если я сэкономил 2 секунды и сделал это 30 раз за день, то за день я сэкономил 1 минуту. 1 минута в день. Господи, что это такое? 1 минута в день — это 6 часов в год. Это же очень простой концепт. Вот возьмите и начните каждый день откладывать по 100 руб. Я не думаю, что, ну, для кого-то 100 руб. в день — это прямо такие деньги, которые сделают дыру в бюджете. 100 руб. в день, господи, какая мелочь. За год получится 36.500, что уже достаточно существенно и можно найти этим деньгам применение, например, купить себе хорошее кресло. Скоро будет выпуск о том, как выбрать кресло, и в целом расскажу о своём рабочем месте. Подписывайтесь, чтобы не пропустить. Это интересный контент. Ну, это так.
В общем, я призываю не думать о секундах свысока. Вот здесь 2 секунды сэкономил, тут 2 секунды, тут, тут, тут. И что самое важное, мы же экономим не только время, мы экономим концентрацию. Если ты хочешь что-то сделать, ты держишь эту мысль в голове. И удержание какой-то мысли в голове — это тоже не бесплатная операция. Чем быстрее намерение находит выход в реальном действии, тем быстрее освобождается голова и тем больше полезного и интересного можно в эту голову поместить. Вот всем всегда хочется какой-то большой и красивый секретный секрет, чтобы вот жизнь разделилась на до и после. А по факту весь профессионализм он вот в таких вот мелочах и заключается. В общем, подумайте об этом.
Возвращаясь к теме перемещения курсора с помощью зажатой клавиши Ctrl либо выделению слова с помощью двойного клика, вас может раздражать. Меня, по крайней мере, в своё время раздражало. Это было очень давно, ещё во времена, когда jQuery не умер. И в моём коде много переменных, э-э, в названии которых был символ доллара. Меня очень раздражало, что выделение такого слова выделяет всё, кроме, собственно, значка доллара, потому что знак доллара считается разделителем между словами. И меня это раздражало, мне хотелось это как-то исправить. Так вот, в VS-коде есть замечательная опция, которая называется `Editor.wordSeparators`, в которой есть уже предустановленный список символов, которые считаются разделителями. И если вам нужно, чтобы при выделении либо при перемещении курсора доллар не считался таким разделителем, его можно просто оттуда убрать, и всё будет работать правильно. Ну, вернее, не правильно, а то, как вы того хотите. Более того, эту настройку можно применить даже к отдельным типам файлов. Скажем, вы хотите, чтобы везде доллар был разделителем, а в scss-файлах, в которых доллар — это управляющая конструкция для создания переменных, чтобы там этого не было, можно установить одну настройку исключительно для scss-файлов. Можно даже дальше пойти и в папочку `.vscode` в корне проекта положить файл `settings.json`, в который прописать эту настройку. И эта настройка будет автоматически применяться ко всем людям, которые пользуются VS-кодом, которые в репозитории работают. Но с этим лучше не заигрываться. Если вы работаете не один, то уточните у всех причастных к проекту людей, как они бы к этому отнеслись. Не стоит ломать людям привычный опыт — это болезненно. А переменные со знаком доллара, кстати, по-прежнему могут использоваться и в JS, и в TS-коде. Об этом рассказывал вот в этом видео.
Ещё одна важная вещь, которую можно делать с помощью клавиши Ctrl, это, наверное, одна из самых важных вещей, которые с помощью этой кнопки делаются, это переход в режим мультикурсора. Курсоров одновременно может быть больше одного, и это просто невероятно полезно и удобно в ситуациях, когда нужно провести какие-то однотипные операции сразу в нескольких местах, но при этом эти операции, ну, скажем так, недостаточно существенные для того, чтобы пользоваться более продвинутыми инструментами. Поэтому мы можем зажать Ctrl и сколько угодно раз клацнуть куда угодно, и курсоров у нас станет бесчисленное множество. Кстати, если вы вдруг нажали не туда, то с зажатым же Ctrl можно снова клацнуть на курсор, который вы поставили неправильно, и он исчезнет. Когда-то я об этом не знал, и если ставил сразу 10 курсоров, а в одиннадцатом ошибался вместе, я говорил: "Бля". Говорил то, что говорил, после чего сбрасывал всю операцию и начинал её заново. Можно просто ещё раз клацнуть по курсору, он исчезнет.
Я пользуюсь этим регулярно, постоянно. Это настолько привычное, понятное и интуитивное действие, что я как-то даже не фиксирую моменты, когда я это делаю. Из последнего, что объяснял и поэтому запомнил, это очень может пригодиться при, например, каком-то массовом переименовании файлов. Есть такое расширение `batch rename` называется, которое позволяет переименовать сразу несколько файлов. И вот реальная ситуация. Мы создали какой-то компонент, что-то с ним поделали, и в какой-то момент мы понимаем, что мы этот компонент недооценили, и нам нужно его переместить и переименовать, сделать его более общим. В этот момент мы делаем следующее. Мы делаем раз, вызываем `batch rename`, дальше делаем два. С помощью зажатой клавиши Ctrl выделяем сразу несколько слов, меняем название. Нажимаем Enter. И мы великолепны. Без множественного курсора эту операцию провернуть было бы значительно дольше. А про структуру компонентов, кстати, рассказывал вот в этом крайне недооценённом почему-то с точки зрения Ютуба ролике. Посмотрите его, он по-прежнему актуальный, там всё хорошо.
У клавиши модификатора Alt в обычном текстовом редакторе не очень много опций. Это просто системная кнопка для доступа к элементам навигации, то есть просто системная кнопка для обеспечения доступности. Но в редакторах кода, таких как VS-код, у Alt в сочетании со стрелками есть дополнительные опции. Если стрелками вверх-вниз пользуются многие, то о стрелках влево-вправо не знает практически никто. А это тоже вещь, которая может сэкономить огромное количество времени и внимания.
С помощью клавиши Alt и стрелок вверх-вниз мы можем перемещать строки либо целые группы строк, если у нас выделено больше одной строки. Где это может пригодиться, да, решительно где угодно, всегда нужно что-то передвинуть. Некоторые вещи, такие как, например, порядок импортов, порядок экспортов, не знаю, порядок свойств в CSS-декларациях, в нормально спроектированных системах сортируется всегда автоматически, строго определённым образом. Это делается с помощью линтеров, с помощью форматоров. Я оставлю ссылки на свои конфиги Stylelint и ESLint. Если интересно, можно посмотреть, как это можно обеспечить. Либо берите просто эти конфигурации и пользуйтесь ими. Они хорошие и проверенные временем. Однако некоторые вещи, такие как, например, порядок пропсов в компонентах, сортировать автоматически. Идея сомнительная. Не обязательно прямо плохая. Там по-разному можно решить в зависимости от того, какие идеи мы в голове держим. Я большой сторонник того, что пропсы должны сортироваться. Ну, они имеют смысловую нагрузку, поэтому они должны сортироваться скорее по смыслу, а не по алфавиту или там длине строки. Ну ладно, это дискуссионный момент, я сейчас не об этом. Всегда нужно что-то передвинуть. И гораздо удобнее это делать с помощью Alt+вверх, Alt+вниз, чем пользоваться какими-то механиками в духе вырезать строчку, переместить курсор, вставить строчку. Просто Alt+вверх-вниз. Замечательно работает. Комбинация очень полезная. Пользуюсь этим постоянно. Рекомендую это делать и вам.
Если зажать при этом Shift, то строка будет не перемещаться, а копироваться. И это хороший способ для того, чтобы создать себе болванку объекта, которую в дальнейшем можно будет заполнить какими-то другими данными. Я обычно пользуюсь другим шорткатом. По умолчанию на него нет горячей клавиши. Называется `Duplicate Selection`. И я его назначил на Ctrl+D, потому что таково было умолчание в программке Notepad++, с которой я начинал лет 15 назад. Там это было так, это было удобно, я к этому привык, и поэтому здесь назначил так же. Но суть ровно та же самая. У нас просто дублируется то, что сейчас находится в выделении, либо дублируется строка, если никакого выделения нет. Это общая механика, как для Ctrl+C, так и для всех остальных таких шорткатов. Этим пользуюсь регулярно, рекомендую. Это вещи, про которые опытные разработчики знают и которыми обычно пользуются.
Поговорим же о вещах, которые по какой-то непонятной причине пользуются гораздо меньшей популярностью. Хотя при этом их полезность, ну, ну не знаю, как насчёт больше или меньше, но как минимум такая же. Поговорим о перемещении по истории курсора с помощью клавиш Alt+влево и Alt+вправо. Вот смотрите, у нас есть какой-то код, мы его читаем, разбираемся. В какой-то момент мы натыкаемся на определение функции, и нам оно, допустим, не очевидно. Мы хотим поближе познакомиться с её реализацией, чтобы что-то там понять. Мы зажимаем Alt и кликаем на название функции для того, чтобы это сделать. Ну либо нажимаем F12, если мы пользуемся клавиатурой, но я так редко делаю. Мы переходим к функции, ознакамливаемся с её реализацией, что-то там понимаем и можем возвращаться обратно. И вот в этот момент я постоянно наблюдаю, как люди начинают пользоваться колесом мыши либо пользоваться мини-картой. Ну мини-карту многие скрывают, потому что экран маленький. Если у вас большой экран, нет никакого смысла вообще в том, чтобы выключать мини-карту. Но если экран маленький, я могу это понять. В общем, люди начинают скролить обратно к тому месту, с которого они начали. И, ну, на это столько времени уходит. Вы вы не никогда не попадёте строго на то место, с которого вы начали. Это всё размывает фокус. Вы забываете, что вы вообще делали. А как нужно сделать? Нужно перейти к определению, ознакомиться с ним, после чего нажать Alt+влево, и вас автоматически перенесёт к тому месту, где в прошлый раз был ваш курсор. А в прошлый раз ваш курсор был ровно, в общем-то, на том месте, на которое вы кликнули. Всё. Вот как есть история открытых файлов. Вот точно такая же есть история по перемещению курсора. Это как кнопка назад в браузере. Она же вас тоже переносит на предыдущую открытую страницу ровно в то же самое место, с которого вы с неё ушли. Ну, если всё настроено правильно.
Причём инструмент этот в VS-коде работает не в лоб. Он достаточно умный для того, чтобы ну так сказать, не раздражать, потому что довольно редко после перехода к определению функции вам сразу всё станет понятно. Обычно что-то нужно потыкать, может быть, даже какой-нибудь лог записать или дебаггер. Прости, господи. После чего уже возвращаться обратно. И в этот момент инструмент поймёт, что вы от него хотели, и вам не придётся миллион раз тыкать вот по этой истории назад. Там есть какой-то трешхолд строк на 10 для того, чтобы не раздражать. В общем, попробуйте и пользуйтесь вот этой механикой. Это это просто невероятно удобно. И ещё, кстати, если у вас есть мышь с дополнительными кнопками, то лучшие операции, которые вы можете назначить на дополнительные кнопки — это не копировать и вставить, а перемещение по истории курсора вперёд и назад. И это невероятно удобно. Это вот просто одна из лучших, наверное, вещей, которые я могу рекомендовать.
Дальше поговорим о двух очень недооценённых клавишах, потому что располагаются они где-то на отшибе. Это клавиши Home и End. Home переносит нас в начало строки. Причём, что интересно, она переносит нас в смысловое начало строки. То есть, если у нас впереди есть индентация, то нас перенесёт именно к началу смысловой части. Но если нам зачем-то всё-таки нужно перейти в физическое начало строки, можно нажать Home ещё раз, и тогда курсор установится на физическое начало строки. Но нам это это обычно не очень нужно. End, соответственно, переносит в конец строки.
Если совместить эти клавиши с клавишей модификатором Ctrl, то Ctrl+Home перенесёт нас в начало документа, а Ctrl+End перенесёт в конец документа. Здесь же, наверное, стоит сказать, что это не единственные способы оказаться вверху либо внизу документа. Можно воспользоваться мини-картой, что по времени выйдет примерно так же, либо это не так давно добавили, можно зажать среднее колесо. Среднее колесо мыши, да, можно нажать среднюю кнопку мыши либо зажать колесо и двигать мышь вверх-вниз. Если сделать это резко, то мы практически мгновенно окажемся либо в начале, либо в конце документа. Эта же самая механика, кстати, работает в браузере, и я практически всегда страницы скролю именно так. Я зажимаю среднее колесо мыши и просто немножко сдвигаю мышь вниз. И это позволяет с комфортной скоростью читать, сканировать глазами документ.
Где это можно применять? Да, опять-таки, решительно, где угодно. Это очень интуитивное и такое действие где-то на подкорке. Ну вот, допустим, пишешь код и где-то в процессе печатаешь, окидываешь взглядом и думаешь: "А какого хрена я вообще назвал этот ключ `title`, а не, например, `label`?" И что вот можно сделать? Можно тянуться к мышке, чтобы дважды нажать и переименовать. Ну, так себе опция, долго. Можно с зажатой клавишей Ctrl вернуться в начало. Это уже побыстрее, получше, но тоже долго. А можно нажать Home, Ctrl+Shift+вправо, выделить, изменить, после чего нажать End, Enter. И продолжать свою работу. Это оптимальный способ это делать. Опять-таки 2 секунды сэкономил, но я не устану об этом повторять.
Берём двух совершенно одинаковых разработчиков. Один пишет что-то там медленно, одним пальцем натыкивает, другой пользуется всеми этими инструментами. Между ними за день разница выйдет, ну, в полчаса. Полчаса экономии в день — это 180 часов экономии в год. Вот в одном рабочем месяце по трудовому кодексу 160 рабочих часов. Мы можем экономить 180. Ну, think about it.
Ctrl+Home и Ctrl+End — это просто удобные шорткаты для того, чтобы быстро перепрыгнуть в начало либо в конец документа. Ну мало ли, зачем это может понадобиться, можно писать здоровенный Docker файл и в каком-то моменте засомневаться, от какой ноды ты там взял базовый образ, нажал Ctrl+Home, посмотрел, Alt+влево, продолжил работу. Либо, скажем, вот ещё один такой пример есть. Вот, например, есть какой-то компонент, и у него не было необходимости в своём файле с локализацией. Мы его доработали, и такая необходимость появилась. Ну, классно. Жмакаем Ctrl+End, попадаем сразу в конец файла, дописываем то, что нам нужно. Нажимаем Alt+влево и продолжаем работу. Ну, кайф же.
Очень важно кайфовать от того, что ты делаешь. Вот музыкант, когда играет на своём на своей гитаре либо на любом другом инструменте, он же кайфует от процесса, он кайфует от владения инструментом. И почему программист не должен кайфовать от владения своими инструментами? Если тебе нравится чем-то заниматься, ты будешь стремиться, ты будешь находить время для того, чтобы этот навык ещё больше углубить, что на длительной дистанции даёт большое преимущество. Очень важно получать удовольствие от процесса, и оно вот в том числе в таких вот мелочах. Ладно, понесло меня опять на философию, что-то часто меня заносят. Я обычно такие вещи пишу у себя в Telegram-канале, не так давно его создал. Я вас призываю туда подписаться. Мне будет очень приятно. Вам, скорее всего, будет интересно. Я там стараюсь вот поднимать какие-то такие околофилософские темы. Стараюсь не сильно шуметь. Стараюсь сделать так, чтобы у каждого поста был какой-то смысл, чтобы он приносил пользу. Ссылка есть в описании. Куда-нибудь сюда выведу. В общем, welcome. Буду рад.
Ну и напоследок самое тривиальное. Клавиша Backspace удаляет символ, который стоит перед курсором. Клавиша Delete удаляет символ, который стоит за курсором. Иной, раз это бывает удобно, это следует знать. Клавиша Tab вставляет символ табуляции, либо два-четыре пробела, если вы по какой-то неведомой причине пользуетесь пробелами для индентации в языках, которые этого не требуют. Вообще не надо так скоро. Ну или не знаю, насколько скоро, но в общем, будет видео про про белые табы. Подпишитесь, это интересная тема будет.
Про Tab знают, наверное, все, но я встречал людей, которые не знают о том, что Shift+Tab убирает один уровень индентации. Это обычно пригождается при работе со спецификациями в формате OpenAPI, например, при работе с документацией. Да и в тестах иногда бывает нужно вытащить блоки из `describe` на верхний уровень, либо либо наоборот. Ну, в общем, в общем, бывает нужно. Tab добавляет уровень, а Shift+Tab убирает уровень. При этом, если у нас что-то выделено, то это повлияет исключительно на выделение. Если ничего не выделено, повлияет только на конкретную строку.
Относительно базовых кнопок и универсальных шорткатов мы закончили. Если вы освоите хотя бы это, то вы уже сэкономите себе огромное количество времени и концентрации. Причём эти знания останутся с вами навсегда. Сегодня вы пользуетесь VS-кодом, завтра будете пользоваться WebStorm каким-нибудь, послезавтра будете пользоваться каким-то редактором, который придёт на смену и тому, и другому. Но эти знания всегда останутся с вами. Они универсальные, они просто везде работают одинаково. Что в Word вы будете работать, что в Блокноте, что, ну, где угодно. Пользуйтесь.
И напоминаю, что в конце будет обязательно краткая версия всего того полезного содержания, которое я сказал, без примеров, без моих вот этих вот всех пространных рассуждений. Так что полезное содержание вы не потеряете. Плюс в конце обязательно дам графическую шпаргалку для того, чтобы ничего не забыть. Напоминаю, что сейчас вы просто ознакамливаетесь со всеми доступными опциями, которые, ну, можно рассмотреть для того, чтобы применять в своей работе. Запоминать сейчас ничего не надо, просто накапливайте.
Давайте переходить к шорткатам, которые уже, э-э, относятся непосредственно к VS-коду. Первый шорткат, про который я расскажу — это шорткат для переключения между проектами. Скорее всего, вы работаете над несколькими проектами сразу, и между ними необходимо переключаться. Раньше для того, чтобы это делать, я пользовался расширением Project Manager. Ссылку на него оставлю в описании, но потом как-то узнал про комбинацию клавиш Ctrl+R — Open Recent. И с тех пор я забыл, когда последний раз пользовался расширением, потому что эта панелька очень удобная. Вот мы нажимаем Ctrl+R, всплывает вот такая вот менюшечка, в которой отображены все последние проекты, над которыми вы работали. И можно с помощью стрелок либо с помощью мыши, а, переключаться между проектами, либо пользоваться поиском. А если зажать
Ctrl при этом, то проект откроется в новом окне. Я так часто делаю, когда нужно что-то где-то подсмотреть, где-то помню что-то делал. А подсмотрел, закрыл новое окно и продолжил работать. В общем, Ctrl R - это оптимальный способ переключения между проектами. Рекомендую так делать и вам.
Вообще, чаще всего код мы не пишем, а ищем и изменяем. Поэтому чем эффективнее мы это делаем, тем больше времени экономим. Один из самых частых ходкеев: Ctrl F. Поиск по текущему документу. Причём это довольно универсальный шорткат. Он работает везде: в браузере, в Фигме, в обсидиане, да, в принципе, где угодно. В Ворде работает, в блокноте работает. Очень универсальная штука. Применение миллион.
Давайте расскажу про тот, который первым вспоминается. Вот у нас есть вьюшный компонент, который использует мою библиотечку VBM transформе, ссылку на которую я оставлю в описании. Как-нибудь про неё расскажу подробнее. Она невероятно удобная. И для того, чтобы назначать элементом классы в соответствии с БМдологией, мы пользуемся директивой VBм, после которой идёт название БЕМ-лемента. Давайте представим, что нам нужно внести изменения в стиле элементафтер. Открываем стилевой файл компонента и вызываем поиск по документу с помощью Ctrl F. Вбиваем туда название интересующего нас элемента и вуаля мы попадаем к его определению. Если бы мы таким шорткатом не пользовались, то нам пришлось бы долго и мучительно скролить этот документ для того, чтобы найти искомы.
Примеров на самом деле миллион - это просто первый, который вспомнился. Другой похожий шортcut Ctrl H - это поиск и замена по текущему документу. Применение у него скорее ситуативное и подходит больше для работы с текстовыми форматами JSON Yamlные в виде JS-объекта. Ctrl H - это больше про работу со статикой, чем про работу с кодом. Для переименования вещей в коде есть клавиша F2, про которую расскажу немножко попозже.
Ну вот, например, есть у нас спецификация в формате Open API, описанная в Yama формате. И тут мы понимаем, что какой-то на какое-то название переиспользуемой схемы выбрали неудачно, и мы хотим его изменить, а оно уже по документу в куче мест используется. Ну, выделяем название, жмакаем Ctrl H, вбиваем то название, которое мы хотим. Жмакаем Enter. И вуаля, у нас всё получилось, всё замечательно работает, везде всё заменилось. Или вот, например, у нас есть статические данные в виде простого JS-объекта, и мы понимаем, что хотим мы изменить какой-то ключ, переименовать. То же самое выделяем, вбиваем то, что нам нужно, жмакаем Enter. Всё у нас заменилось. Всё у нас замечательно работает.
Вообще ловлю себя на мысли, что чаще всего я этой функциональностью пользуюсь тогда, когда мне нужно заменить по регулярке что-то. Но конкретный пример как-то затрудняюсь вспомнить. И зачем я тогда это впихнул? Ну, в общем, ладно, пусть будет. Если что, здесь есть дополнительные настроечки для того, чтобы включить регистр независимый поиск либо поиск по регулярному выражению относительно замены одного на другого здесь можно ещё раз вспомнить мультикурсор. Иной раз гораздо проще с помощью нескольких курсоров просто поставить несколько разных курсоров и сделать однотипную операцию, чем пользоваться этим инструментом.
Ну и воспользуясь случаем, в очередной раз замечу, что очень важно не запоминать конкретные какие-то паттерны, типа, если я вижу что-то вот такое, то я при тою вот этот паттерн. Нет, важно знать наибольшее количество способов сделать одно и то же и тренировать свою неросетку на то, чтобы как можно быстрее выбирать оптимальный в каждой ситуации способ сделать что-либо. Это очень важно.
Поиск и замена - это замечательный инструмент для работы с текстовыми данными. Но для работы с кодом лучше всё-таки пользоваться специализированными инструментами, такими как, например, клавиша F2, Rename Sym, которая переименовывает некоторые сущности в документе с учётом их контекста, умеет переименовывать импорты, экспорты и даже вносить изменения в соседние файлы. Впрочем, это довольно нестабильно работает. Я этой функциональности не доверяю, но как минимум для внесения изменений в один файл с учётом контекста определённо следует пользоваться именно этой клавишей.
Вот пример. У нас есть какая-то переменная, и мы вдруг понимаем, что мы как-то неправильно её назвали, и мы хотим её переименовать. Супер. Выделяем, а, нажимаем на переменную, нажимаем F2, вбиваем новое название, которое мы хотим ей дать. И можно заметить, что во всём файле название переменной изменилось с учётом контекста. Если такая, э, переменная с таким же названием будет объявлена где-то в другом контексте, она не будет затронута. Иной раз название может встретиться в другом контексте, иной раз какое-то, э, какая-то сущность, которую необходимо переименовать, может встретиться где-то в комментариях, и её там не нужно переименовывать. Поиск замена - это очень глупый инструмент, а вот rename symbol - это инструмент умный, с головой. Для переименования вещей в коде следует пользоваться именно этим инструментом F2, Rename symbol.
Давайте пристально посмотрим на сайдбар. Здесь у нас прячутся интересные опции, такие как дерево файлов проекта, он же проводник, инструмент поиска и замены по всему проекту сразу, а не только в рамках одного документа, и вкладка source Control для управления изменениями в счки зрения системы контроля версий Git. В нашем случае можно заметить, что здесь есть ещё и другие иконки, но это достаточно специфичные функции и иконки расширений, которые мы сегодня рассматривать не будем как-нибудь в другой раз.
Во-первых, сам сайдбар. Его можно свернуть нажатием комбинации клавиш Ctrl B. А, забавно, но даже мне с моим здоровенным 2К монитором, вернее, у меня даже три таких, этой функциональностью я иногда пользуюсь. В основном в презентационных целях, когда мне не когда я расшариваю экран и когда мне необходимо показать одновременно там, не знаю, что-то в коде и в браузере или в Фигме. Во всём остальном мне как будто бы не нужно. На самом деле у меня даже сейчас установлено увеличение в презентационных целях. Обычно я работаю вот примерно вот так. У меня всё это выглядит. И сайдбар мне никак не мешает. Но я знаю, что ребята с экранами поменьше постоянно прячут сайдбар для того, чтобы иметь возможность хоть как-то работать с кодом, увеличить размер рабочей области. Ctrl B сворачивает и разворачивает сайбар.
Но нас здесь интересуют три кнопки: проводник, поиск и замена и source control. Начнём с поиска и замены. И открывается эта панелька практически так же, как и поиск по конкретному документу. Ctrl F открывает поиск по текущему документу, а Ctrl Shift F переводит нас в режим поиска по всему проекту сразу и автоматически фокусируется на поле ввода, чтобы мы сразу могли набирать, что мы хотим найти. Применений миллион. Ну, например, внесли изменения в какой-то компонент, вроде смотрим, вроде всё хорошо, но тут у нас зарождается какой-то червячок сомнения, а точно ли всё хорошо. Ну и, скажем, по пути импорта можно сделать а поиск по проекту и проверить все места, где этот компонент действительно используется. Иной раз даже в совершенно незнакомом проекте можно угадать какую-то функциональность. Ну, например, вот нужно вывести отформатированную цену так, чтобы пробельчик стоял между тысячами. Ну, наверняка в большом готовом проекте такая функция уже есть. И почти наверняка она называется как-то в духе формат прайс. Ну, можно воспользоваться проектным поиском. Ctrl Shift F. Вбиваем формат Price. И если такая функция есть, то мы её найдём и переиспользуем. Не будем а изобретать велосипед, будем пользоваться тем, что есть. В общем, Ctrl, Shift F - это переход к проектному поиску. Комбинация используется достаточно часто, и хорошо бы делать это быстро. Ctrl F, поиск по текущему документу. Ctrl Shift F- поиск по всему проекту сразу. Ctrl H- поиск и замена по текущему документу. Ctrl Shift H, поиск и замена по всему проекту сразу, но с осторожностью.
После того, как мы воспользовались этой панелькой, обычно удобно перевести э сайдбар обратно в режим файлового дерева. Это можно сделать с помощью комбинации клавиш Ctrl Shift E. Это переводит сайбар в режим проводника.
Последняя важная кнопка в этой панельке Source Control. Она отображает изменения файловом дереве с точки зрения системы контроля версий Git. Этой штукой я пользуюсь постоянно. Всегда при работе над какой-нибудь задачей встаёт необходимость оценить объём изменений, оценить сами изменения, э если мы работаем над какой-то большой составной задачей. И оптимальный способ это делать - это пользоваться вот этой панелькой. И переходить к ней быстро - это очень удобно. Кроме того, я верю, что если переход к этой панельке становится вот такой вот вот моментально, если это происходит, то это стимулирует к тому, чтобы делать атомарные комиты. То есть, если объём изменений становится достаточно большим, то в этот момент уже нужно задуматься о том, чтобы выделить как какие-то изменения в самостоятельный комит, который делает что-то завершённое. Это помогает как и вам, так и тому, кто делает ревью кода. Он может просто следить за вашей мыслью и быть уверенным, что она там хотя бы была. Ctrl Shift G переводит нас в режим Source Control.
Вот, посмотрите, как приятно и быстро можно переключаться между всеми этими вкладочками. Практически моментально это происходит. И это хорошо. Вот надо научиться получать от этого удовольствие. Всегда же приятно посмотреть на то, как кто-то технично и грамотно что-то делает. Ну вот, станьте человеком, который технично и грамотно делает то, что он делает.
Зацепили мы файловое дерево проекта и поиск по файлам. Давайте теперь поговорим про навигацию между файлами и открытыми вкладками. И начну я с вещи, которая меня убивает. Тут прямо больше всего. Вот на созвони говоришь: "Открой файл pageindex.view и начинаешь наблюдать, как человек долго и мучительно начинает возюкать мышкой по файловому дереву, искать этот файл, сворачивать, разворачивать какие-то директории. На это уходит просто бесконечное количество времени. Так вот, пожалуйста, вот не надо так".
Если вам нужно открыть в проекте файл, название которого вам известно, не нужно лезть в файловое дерево. Оно, по большому счёту, нужно только для верхнеуровневой оценки структуры проекта, либо как входная точка для начала работы с кодом. Для того, чтобы открыть файл, название которого вы знаете, нажмите Ctrl P, вбейте туда название этого файла и нажмите Enter. Всё, вы великолепны. Это оптимальный способ это делать. Вот это действие способно сэкономить вам, ну, я не знаю, по ощущениям, годы времени, наверное.
Смотрите, как это работает. Вот, допустим, мы хотим открыть файл, который называется Resolve Selector Notes. Мы знаем это название. Нажимаем Ctrl P. Всплывает вот такая вот менюшечка. И здесь мы можем набрать название файла. Причём здесь работает нечёткий поиск. Можно набирать название в любом регистре абсолютно. можно пропустить какие-то буквы, можно пропустить целые слова, и вы найдёте искомое. Пожалуйста, делайте так. Это оптимальный способ это делать. Я вот прямо очень надеюсь дожить до каких-то мысленных интерфейсов, чтобы можно было подумать, что, ну, вот там вот тот файл, вот, вот он называется примерно там лежит где-то там, вот открой его. Вот это подобно тому, как наши воспоминания работают. Если вам нужно вспомнить, не знаю, ваш первый поцелуй, вы же не начинаете перебирать все доступные воспоминания. Вы просто знаете, что это воспоминание у вас есть, и вы его достаёте оттуда. Надеюсь, дожить до такого момента, когда мысленные интерфейсы вот такие вот появятся. Ну а пока они не появились, приходится пользоваться такими костылями в виде вот такой вот панельки Ctrlp P. Но даже это гораздо гораздо лучше, чем просто брутфорсом по файловому дереву искать необходимый файл. Пожалуйста, делайте так. Ctrl P, быстрый переход по файлам проекта.
После того, как файлы открыты, в них нужно ориентироваться и по открытым вкладкам необходимо перемещаться. Я довольно часто слышу идею о том, что иметь много открытых файлов людям кажется сложной идеей. Убеждён в том, что всё это исключительно из-за того, что люди не умеют с ними комфортно работать. Попробую научить.
Во-первых, когда у вас открыто много вкладок, по ним гораздо проще ориентироваться в вертикальном, а не в горизонтальном виде. Для того, чтобы посмотреть список вкладок в вертикальном виде, нужно нажать Ctrl Tab. И вот они у нас появляются. С помощью повторных нажатий Tab Shift Tab можно по этому списку перемещаться. Но я обычно так не делаю. Я обычно зажимаю Ctrl Tab, нахожу необходимый файл и просто клацаю по нему мышкой, потому что мне так проще. Но иной раз можно и просто табом дойти, если файл где-то рядом. Это подобно тому, почему, например, селекторы в CSS записываются друг под другом, а не в одну строку. Ну, у адептов телвин, конечно, свой взгляд на эти вещи. Надеюсь, что вы не один из них. Вертикальный текст гораздо проще и естественнее сканируется глазами, и там гораздо проще найти искомое. В общем, пользуйтесь Ctrl Tab для навигации по открытым вкладкам, если их открыто много. Не нужно стремиться к тому, чтобы файлов было мало. Файлы бесплатные. Нужно научиться с ними работать и прокачивать навык, удерживать в голове большой контекст. Это в достаточной степени тренируемый навык и один из основных навыков, который отличает лучших разработчиков от посредственных.
После того, как файл открыт, его необходимо закрыть, когда он больше не нужен. Для того, чтобы это сделать, можно нажать комбинацию клавиш Ctrl W. Это закроет текущую вкладку. А ещё можно щёлкнуть средней кнопкой мыши. Оно же колесо по названию вкладки. Причём не обязательно целиться в крестик. Можно клацнуть колесо мыши в любое место вкладки, и она закроется. Причём эта механика работает и в браузере. Попробуйте. А ещё колесо мыши можно щёлкнуть на ссылке для того, чтобы открывать их в новой вкладке. Не надо вот это вот правой кнопкой открыть в новой вкладке. Просто колесом мыши щёлкнуть и она откроется. Пользуйтесь. В браузере открытые вкладки точно также закрываются колесом мыши.
Иной раз после того, как вкладка закрыта, приходит понимание, что закрыта она зря и надо всё вернуть взад. Для того, чтобы это сделать, существует великолепная комбинация клавиш Ctrl Shift T, с помощью которой можно открывать закрытые недавно вкладки. Это K. Ctrl Z на уровне вкладок. Невероятно удобная механика. И, к слову, в браузере работает тоже. Если закрыли какую-то вкладку, Ctrl Shift T, вкладка откроется обратно. И при этом это работает на уровне целых окон. Наверняка у вас бывала ситуация, когда вы открепили одну из вкладок вот основной и потом случайно закрыли не её, а основную, где у вас было 60 там открытых вкладок. И, а, вот эта паника, господи, как я сейчас всё буду это восстанавливать. Ctrl Shift T. Всё возвращается, как было. Всё прекрасно работает. Пользуйтесь. Это невероятно удобная штука.
Последнее, о чём в этом разделе расскажу - это о разделении редактора на две либо более частей. Хотя мне сложно представить, что кто-то захочет поделить больше, чем на две. Если нужно поделить на три части, то как будто проще уже на соседний монитор вынести. Если нажать на Ctrl Backш, то редактор поделится на две части, что позволит одновременно смотреть разные части одного и того же файла. Это достаточно ситуативное, но вот когда надо, это прямо очень полезная штука. Я знаю, что некоторые пытаются так работать с однофайловыми компонентами вов, ну, на одной половинке. открыт шаблон, на другой половинке открыт открыты стили в том же файле я по-прежнему не понимаю, зачем все эти страдания отдельный файл иметь просто вот всегда удобнее. Ну да ладно. В общем, Ctrl Backs делит редактор на две части, что позволяет одновременно смотреть разные части одного и того же файла. Другие файлы там тоже можно открыть, но обычно в этом нет большой необходимости. Пользуйтесь.
После того, как мы научились жонглировать вкладками, нужно научиться жонглировать структуры кода. И здесь тоже есть замечательные горячие клавиши. Я пользуюсь весьма немногими из них, но вот о тех, которыми пользуюсь, о тех и расскажу.
Во-первых, Ctrl Shift Backs переводит нас к парной скобке. Всем известно, что функции, методы должны быть, чем короче, тем лучше, но всегда получается так, как получается, и порой декларация какой-нибудь функции разрастается. И в этот момент очень удобно с помощью такой комбинации клавиш перейти либо к началу э определения функции, либо к её завершению. Я чаще всего пользуюсь этой механикой при составлении каких-то тестовых данных, каких-то моков. Они порой, ну, порой это массивы достаточно больших объектов, и между ними порой гораздо проще переключаться перемещаться с помощью именно вот такой комбинации клавиш Ctrl, Shift, Backш. Прыгать просто по скобкам, чем скролить глазами. Штука достаточно ситуативная, но применение своё имеет.
Далее расскажу о горячих клавишах, которые позволяют управлять сворачиванием и разворачиванием кода на до определённого уровня интентации. Комбинация клавиш Ctrl K + какая-нибудь цифра 1 2 3. Как правило, можно и больше, но обычно не имеет смысла. Ctrl K2, например, свернёт все блоки кода на уровне интации 2 и больше, а комбинация клавиш Ctrl KJ развернёт все свёрнутые блоки кода. Это не очень хорошо работает в функциональном коде, но замечательно себя показывает в объектноориентированном коде либо в стилях, которые написаны грамотно. О том, что такое грамотно, я рассказывал вот в этом вот видео. Ссылочка здесь появится.
Как я это использую? Вот смотрите, мы открываем какой-нибудь класс, и в нём много методов. И прежде чем начать с этим классом работать, было бы неплохо верхнеуровнево оценить его структуру, посмотреть на то, что там вообще есть. Ну, замечательно. Я нажимаю Ctrl K2, и можно видеть, что все методы свернулись, и теперь можно очень легко и быстро оценить структуру этого класса. То же самое в стилях. Если стили написаны грамотно, то мы нажимаем Ctrl K2, и мы можем видеть, э, все БМ-элементы в очень простом виде, как они в стилевом файле написаны. В тестах то же самое. Открываем какой-нибудь файл с тестами, нажимаем Ctrl K2. Все тесты у нас вернулись, и мы можем легко пробежаться по заголовкам для того, чтобы посмотреть, какой тест у нас что тестирует. Возможно, нам это поможет, а, быстрее определить что-то недостающее, либо то, что нас интересует, либо то, что у нас сломалось. Ну, в общем, по-всякому можно. Невероятно удобно работает.
После того, как мы нашли искомое, можно нажать Ctrl KJ и развернуть все блоки кода и продолжить работу. Либо можно воспользоваться комбинации клавиш Ctrl, Shift и квадратные скобки для того, чтобы развернуть отдельные методы. Но я этим достаточно редко пользуюсь. Обычно просто мышкой натыкиваю либо разворачиваю сразу всё.
Когда мы научились работать с индотацией и скобками, давайте уже перейдём непосредственно к работе с кодом. Я нахожу очень забавным наблюдение то, что это чуть ли не самая простая и быстрая для запоминания категория. Всё как в жизни. Вот платят нам за то, чтобы мы писали код, на то, чтобы мы работали с кодом, но большая часть внимания расходуется на организацию процесса. Вот прямо всё как в жизни.
Первое, о чём тут расскажу - это волшебная комбинация клавиш Ctrl пробел, которая вызывает подсказки. Я нахожу забавным тот факт, что даже порой разработчики с несколькими годами опыта не знают о том, что существует вот такая вот комбинация клавиш. И для того, чтобы вызвать эти подсказки, они не знают, удаляют метод, набирают зановую точку для того, чтобы она появилась автоматически. В общем, не надо так. Ctrl пробел можно нажать совершенно всегда.
А вторая вещь, о которой многие не знают - это то, что Ctrl пробел можно нажать ещё раз, и тогда появится вот эта вот а панелька с дополнительной информацией. Я довольно редко вижу, чтобы кто-то нажимал Ctrl пробел для того, чтобы её вызвать. Обычно я вижу то, что люди тянутся к мышке и клацают вот на эту стрелочку для того, чтобы развернуть полное описание. Не надо так. Ctrl пробел замечательно с этой ситуацией справляется.
Следующая важная кнопка F12. Она переходит к определению в рамках текущей вкладки. Этой кнопкой я достаточно редко пользуюсь, поскольку она расположена далеко, до неё неудобно тянуться. И обычно я зажимаю Alt и клацаю просто на название а чего-нибудь, к определению чего мне необходимо перейти. Так получается просто проще и быстрее, чем тянуться до клавиши F12. Alt плюс клик переходит к определению в рамках текущей вкладки. Для того, чтобы вернуться обратно после просмотра определения, можно нажать Alt влево, о чём уже рассказывал, либо сделать то же самое нажатием дополнительной кнопки на мыши, о чём тоже уже рассказывал.
Иногда удобно открыть определение не в рамках текущей вкладки, а в режиме сплитскрина. Для этого есть комбинация клавиш Ctrl K F12, до чего тянуться ещё более тяжело, чем просто до клавиши F12. Поэтому я этой комбинацией не пользуюсь. Я зажимаю Ctrl Alt Click, и это позволяет мне открыть определение в рамках сплитскрина. После того, как я ознакомился с определением, я нажимаю Ctrl W, и сплит скрин у меня закрывается. Я возвращаюсь к работе над тем, что, собственно, работал.
Ещё одна, безусловно, важная комбинация клавиш - это Ctrl/, которая ставит inлай комментарий. Я её переназначил на Ctrl Q, просто потому, что мне эта комбинация достаточно часто нужна, и мне гораздо удобнее, чтобы это всегда было под рукой. Я нажимаю Ctrl Q и вставляется inлайн комментарий. При этом, если у меня выделены какие-то строчки, нажатие на Ctrl Q закомментирует их все, а повторное нажатие на эту же самую комбинацию клавиш раскомментирует их все. И это быстрый способ неинвазивно проверить, а что будет, если я эту строчку закомментирую, если её здесь не будет вообще. Этой комбинацией клавиш я пользуюсь очень часто, поэтому она у меня назначена на Ctrl Q.
Давайте поговорим о горячих клавишах, которые позволяют управлять интерфейсом VS-кода. Ctrl B, как уже говорил, сворачивает и разворачивает сайр. Это может пригодиться, если у вас небольшой экран, либо если вам на одном, вы расшариваете экран и вам на одном экране необходимо показать и код, и, например, в браузере результат работы этого кода. Но про это уже рассказывал.
Ctrl Тильda открывает встроенный терминал. Достаточно забавно, но я вот до сих пор иногда созваниваюсь с людьми, которые когда-то, видимо, научились работать в блокноте, в сапмтексе или, не знаю, ещё где-то и иметь отдельно редактор и отдельно в виде прямо отдельного приложения рядом терминал. Серьёзно, у вас нет ни одной причины не совместить редактор с терминалом, если он вам, конечно, нужен. Ctrl J, казалось бы, выполняет ту же самую роль, но вообще нет. Ctrl Тильда управляет именно терминалом, а Ctrl J управляет всей вот этой панелью в целом. Ну, чаще всего там необходимо использовать терминал, поэтому я в своей работе пользуюсь исключительно Ctrl Тильda. А если мне нужна какая-то из других вкладок, то я на неё мышкой просто потом переключусь. В браузере Google Chrome, кстати, Ctrl Shift J также откроет именно консоль, а при этом F12 управляет э панелью разработчика в целом.
Полезный Hot Cake Ctrl Shift P - это панель управления VS-код. И фактически любую из операций, про которые мы говорили, и про те, которые мы не говорили, можно сделать с помощью этой панели. Но не то, чтобы это оптимальный способ это делать. У меня эта панель выглядит следующим образом. Как можно видеть, я достаточно часто работаю в экосистеме ES Lint Style Lint, и поэтому у меня здесь вот такой вот набор часто используемых команд, которые мне нет необходимости назначать на какие-то отдельные клавиши, поэтому я нажимаю просто Ctrl, Shift P и выбираю здесь необходимые. Они сортируются по ну по последнему использованию. Это достаточно удобно, но а для всего остального, что используется прямо часто, можно назначить отдельные горячие клавиши. Это более оптимально.
Ещё шорткат, про который я помню, потому что у меня было очень тяжёлое детство- это Alt Z. Это управление переносом строк. Детство моё было тяжёлым, и я работал с, ну, всяким разным сомнительным кодом. Это сейчас все уже знают, что длина строки кода не должна превышать 120, может быть, у кого-то даже 80 символов. Но раньше, раньше мы работали с самым разным кодом. А сейчас я этот шоркат применяю, ну, в достаточно редких случаях, когда работаю либо с какой-то старой документацией, либо когда делаю какие-то заметки. Но вообще заметки лучше делать в специализированном программном обеспечении, таким как, например, Обсидиан. Я им пользуюсь. Замечательная ссдата программа. Рекомендую пользоваться этой программкой и вам. Но Altz включает и выключает перенос строк, если вам зачем-то это нужно.
Из того, что может пригодиться для презентационных целей, клавиша F11 разворачивает редактор на весь экран. Ну и, собственно, в браузере это работает точно так же. Не стоит это путать с бесполезным, в моём понимании модом. F11 пригождается в момент, когда нужно сделать запись видеоэкрана. И, скажем, статус бар, вот он не относится никак рабочему процессу, и поэтому незачем его демонстрировать. Если его обрезать, то и видео получится обрезанное, это будет некрасиво. А вот если развернуть на весь экран, то получается неплохо. F11 включает или выключает полноэкранный режим редактора.
Ну и ещё момент, который может пригодиться, если вы расшариваете экран для человека, у которого размер экрана меньше, чем у вас, это Ctrl + и Ctrl минус. Это шоткаты, которые позволяют управлять размером интерфейса-кода. Можно зажать Ctrl и крутить колесо мыши, но это влияет исключительно на вот эту панельку с кодом, а Ctrl + и Ctrl ми влияет на всё сразу и так удобнее. Плюс, когда настраиваешь интерфейс с помощью Ctrl и вращения колеса, всегда потом сложно вернуться вот к к исходной точке. всегда кажется, что было как-то по-другому. Ну, это, знаете, как в машине настраиваешь. Вот есть у тебя настроенное положение, и ты его немножко подредактировал, и потом пытаешься найти. Вот, по-моему, было так. Нет, по-моему, не так. По-моему, ну, в общем, Ctrl+ и Ctrl этих проблем решены. Там очень тяжело ошибиться.
Последнее, о чём расскажу - это о том, что нужно следить за собой и отслеживать моменты, когда вы пользуетесь какими-то функциями редактора с помощью мыши и назначать эти действия на шорткаты, удобные вам. Я вот, например, в какой-то момент отметил, что в моём рабочем процессе достаточно часто я пользуюсь двумя функциями. Во-первых, закрыть все вкладки, кроме текущей, и закрыть все вкладки справа. Я убеждён, что это достаточно индивидуальный момент, но вот у меня это чаще всего так работает, что есть какой-то основной файл и есть куча барахла открытого рядом с ним для того, чтобы я освежил контекст. После того, как я освежил контекст, мне нужно сосредоточиться снова на одном файле, и я закрываю все вкладки, кроме текущей. И я поймал себя на мысли, что я всякий раз делал это мышкой. И я решил с этим делом побороться и назначил горячие клавиши. Я использовал такую штуку, которая называется cord shortcut. Accord - это такая функциональность, с помощью которой вы можете нажать какой-то шортcutт, а после него нажать ещё какую-нибудь другую уточняющую клавишу. Ну, типа добавочный номер, как, наверное, можно объяснить. Ну и, соответственно, назначить разные действия на практически один и тот же шортcutт. Ctrl W закрывает текущую вкладку в стандартной настройке, и поэтому я решил от этого оттолкнуться. И Ctrl W. W у меня закрывает все вкладки, кроме текущей. Ctrl W. Пробел закрывает текущую вкладку. Ctrl W R от слова W right закрывает все вкладки справа. И таким образом функциональность, которой я часто пользуюсь, теперь я пользуюсь ей ещё быстрее, ещё эффективнее.
У вас наверняка будет какой-то свой набор таких функций, которыми вы часто пользуетесь. Э, Ctrl KS открывает меню шорткатов в-коде, и вы можете найти здесь эту функциональность, которой вы пользуетесь, и назначить на неё какой-то кастомный шорткат. Не надо стесняться это делать. Это очень индивидуальный момент, но это то, что способно помочь.
Ну и в завершении расскажу про ещё один кастомный шортcat, которого по умолчанию нет, но я его использую. Это Ctrl U и Ctrl Shift U. Я их использую для того, чтобы переводить, э, выделенный текст в upper caseй и lower case. Соответственно, мне это помогает в момент, когда что-то, например, верстаешь с макета и дизайнер капсом набрал какой-то заголовок, а мне не нужно его капсом. Мне он нужен в простом обычном. То есть я с фигмы его скопировал, вставил он капсом, я выделяю всё, кроме первой буквы, нажимаю Ctrl U и текст у меня становится таким, каким мне нужно. Ну, это такой индивидуальный момент. Так было сделано в программке Notepad+, в которой я когда-то лет 15 назад начинал работать. И сюда я тоже перенёс эти шорткаты, потому что это удобно.
Кроме того, у меня есть наверное штук пять-шесть шорткатов, которые привязаны к расширениям, которыми я пользуюсь, но про это, наверное, расскажу в другой раз. Вас призываю подписаться, чтобы этот контент не пропустить. Расскажу про все расширения ВС-кода, которыми я пользуюсь и которыми буду рекомендовать пользоваться и вам. Это будет, наверное, один из следующих роликов.
Ну а с шорткатами VS-кода и общими шорткатами, которыми я пользуюсь, мы, в общем-то, закончили. Убеждён в том, что если, э, брать двух разработчиков, один из которых пользуется этими вещами, а другой не пользуется, то первый гораздо гораздо более эффективен и экономит себе невероятное количество времени на дистанции в жизнь. Я показывал и рассказывал уже, э, в моменте видео неоднократно, сколько действительно времени все эти маленькие операции могут сэкономить. Не надо думать о секундах свысока. Это очень-очень важная история.
В комментариях либо в описании к этому видео размещу ссылку на шпаргалку со всеми шорткатами, которыми пользуюсь я. Буду рад, если вы в комментариях дополните какими-то своими вещами, своими шорткатами, которые вы для себя находите полезными, которые помогают вам экономить время. Я с большим интересом на это всё посмотрю и вместе сделаем мир лучше и поможем другим быть более эффективными. Спасибо вам, друзья, что смотрели. Увидимся. Берегите себя. Пока-пока.