«Поговорим не про Vim», олдам, сеньорам и тру-си-разработчикам на проверку: пользуетесь ли вы такими сочетаниями VS Code? Если же вы только начинаете программировать, влетаете в айти на реактивном самолете курсов по Питону, или просто не знаете ничего про хоткеи VS Code, возможно вам точно пригодится парочка сочетаний :)

Все сочетания описаны для VS Code на Windows
↓ / ↑ / ← / → — стрелки вниз, вниз и т.д.
ЛКМ / ПКМ / СКМ — левая, правая, средняя кнопки мышки соответственно.

  1. Shift + Tab — сместить табуляцию на один шаг влево. Если вы пишете на Python, то табуляция или четыре пробела — ваш неизменный спутник. Но мало кто знает, что достаточно поставить курсор в любое место строки, нажать Shift + Tab и вуаля, вся строка смещается влево на «один таб».

    Shift + Tab
    Shift + Tab
  2. Ctrl + / — закомментировать или раскомментировать строку. VS Code сам разберется, какой язык программирования вы используете, и в начале строки установит или удалит необходимый символ для комментария. Место, где находится курсор на строке неважно.

    Ctrl + /
    Ctrl + /
  3. Shift + Del — удалить строку целиком. Теперь не нужно выделять мышкой всю строку и потом нажимать Backspace. Не нужно выделять всю строку. Правда!

    Shift + Del
    Shift + Del
  4. Alt + ↑ / ↓ — перемещение строки с курсором вверх или вниз. Просто попробуйте и ощутите, насколько это удобно. Знаете шутку «стоит всего один раз зимой надеть подштанники, и ты уже не можешь остановиться»? Так вот стоит только один раз переместить так строку, и вы уже не сможете по-другому!

    Alt + ↑ / ↓
    Alt + ↑ / ↓
  5. Shift + Alt + ↓ / ↑ — дублирование строки с курсором вниз. В зависимости от ↓ или ↑ курсор останется на текущей или новой строке. Теперь можно обойтись без Ctrl + C, хотя нет, нельзя =)

    Alt + ↑ / ↓
    Alt + ↑ / ↓
  6. F2 — переименовать переменную. Прошу заметить, что переименовываются все переменные с таким названием только внутри блока, не внутри всего открытого файла. Часто нужно переименовать переменную, которая уже используется в нескольких местах функции, и тут либо вручную расставлять курсор в нужное место, либо поставить курсор на переменную и нажать F2.

    F2
    F2
  7. F12 или Alt + ЛКМ на переменной — перейти к переменной или родительскому классу. Часто рассказывают про PyCharm, будто только он умеет проваливаться в родительские классы, чтобы посмотреть, какие его атрибуты мы можем переопределять, наследуясь от него; но так умеет и VS Code.

    F12 или Alt + ЛКМ
    F12 или Alt + ЛКМ
  8. Ctrl + D — выделяет слово, на котором находится курсор. Следующее нажатие на D (удерживая Ctrl) выделить следующее по порядку вниз идентичное значение. Вот пишете вы функцию, и вам нужно выделить ближайшие значения ‘name’. Легко! Выделить все вхождения слова можно вот так — Ctrl + F2. Радует то, что курсор оказывается в конце каждого выделенного значения и сразу можно редактировать!

    Ctrl + D
    Ctrl + D
  9. Ctrl + L — выделяет всю строку. Целиком. Теперь копипастить еще проще, не правда ли? =)

    Ctrl + L
    Ctrl + L
  10. Ctrl + Alt + → — разделить рабочую область и переместить актуальную вкладку вправо. Ctrl + Alt + ← возвращает вкладку назад. Вы не поверите, насколько удобно видеть, например, models.py и views.py рядом.

    Ctrl + Alt + →
    Ctrl + Alt + →

А теперь неочевидные, но потрясающие возможности. Меню → Файл → Настройки → Сочетания клавиш (Ctrl + K + Ctrl + S), в строке поиска вводим необходимый параметр и кликаем по результату мышкой, после нажимаем нужные клавиши для установки пользователькой настройки и наслаждаемся. Команды, которые точно стоит попробовать:

editor.action.jumpToBracket — переход к парной скобке, у меня установлено на Ctrl + Q. Сначала переход к ближайшей скобке, а следующее нажатие перемещает вас к парной скобке и так далее. Часто нам нужно оказаться либо в начале скобок, либо в конце. А кликать мышкой или стрелками не всегда удобно. Теперь достаточно одного нажатия и вы у нужной скобки.

Ctrl + Alt + →
Ctrl + Alt + →

editor.action.selectToBracket — выделить все внутри ближайших скобок и сами скобки, у меня это Ctrl + Shift + Q. Сколько кликов мышкой, сколько ошибок, выделяя внутри скобок мышкой или Shift + стрелки. А теперь можно просто одним нажатием выделить все точно и быстро.

editor.action.selectToBracket
editor.action.selectToBracket

Буду благодарен за любые интересные и полезные хоткеи, пишите в комментариях, что понравилось из моих, и что вы используете сами?

P. S. В комментариях рассказали про логичную, но неочевидную возможность IDE-шек и иже с ними: чтобы вырезать или скопировать строку, необязательно выделять ее целиком, можно просто переместить курсор на неё. ❤️

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


  1. ne555
    00.00.0000 00:00
    +24

    FAQ

    Прошу обратить внимание сообщества, что эта "статья" из песочницы, одобренная модераторами хабра. Вы представляете, кто сейчас управляет этим ресурсом?!

    p.s. думаю, это мой последний 666-й комментарий на "IT-ресурсе". Такой позор, даже в Дзене не отыскать за час.


    1. nkormakov
      00.00.0000 00:00
      +1

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

      Ну короче вот читшит VSCode для macOSWindows и Linux, плюсов мне быстро!

      И ведь поставят.


    1. K1804
      00.00.0000 00:00
      +1

      А у VS offline help сейчас есть? Ещё chm файлы были в моде.


    1. aaabramenko
      00.00.0000 00:00
      +3

      IntellijIdea, Notepad++, Qt Creator, Pycharm, Sublime, Atom, NetBeans, VisualStudio, Xcode, Eclipse...

      Бегло вспомнил это. И на каждый можно штамповать по статье)


      1. Junecode Автор
        00.00.0000 00:00

        Можно, конечно, продукты от JetBrains еще как можно) А остальное ощутимо специфичнее, все таки я ориентировался на новичков, кто либо не сталкивался с хоткеями, либо хочет просто узнать что-то полезное здесь и сейчас, вместо того, чтобы догадываться, что же там в доке на английском написано)) А VSC отлично вписывается в редактор, хорошо подходящий для новичков на том же Пайтоне или JS, при этом доступный бесплатно)


        1. UMenyaNeudobnieVoprosiki
          00.00.0000 00:00

          Ребятки из JB уже подустали рассказывать всем про Ctrl+Shift+A )


    1. csharpreader
      00.00.0000 00:00
      +3

      И 53 закладки уже (на момент написания комментария). Видимо, дело не только в редакторах Хабра.


      1. kaiu
        00.00.0000 00:00
        +4

        Закладки не факт...просто поставил книгу на полку и никогда не буду читать. Хочу послать автора подальше, а спать охота и пошлю с утра :) Всякое бывает.


    1. mvladt
      00.00.0000 00:00
      +5

      Статья помечена как "простая", на 3 минуты. Господи, как будто вас насильно заставляют её открывать и читать.


      1. FinnParnish
        00.00.0000 00:00

        Далеко не факт что для каждого она так проста.


      1. alexanderniki
        00.00.0000 00:00
        +4

        как будто вас насильно заставляют её открывать и читать

        Это работает не так. Поясню.

        Хабр - это сообщество, контент в котором предполагает соответствие некоторой тематике и некоторому уровню профессионализма и/или глубины.

        Это нормально и в этом нет ничего плохого. Например, в научных журналах, посвященных генной инженерии, вы не найдете статей уровня «cтроение клетки для чайников и умственно отсталых». Ну просто потому что предполагается наличие у читателя базовых знаний предметной области.

        Для этого в сообществах, подобных Хабру, существует модерация. Принудительная - с помощью модераторов. И социальная - основанная на одобрении пользователеями (google: «общественный контроль в социологии»).

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

        На практике, это означает, что люди приходят на Хабр не для того, чтобы в очередной раз увидеть cheatsheet, который гуглится за 5-7 секунд. Те, кому нужны самые базовые знания, ищут их не на хабре, а специализировнных сообществах, посвященных именно начинающим.

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


        1. red_dragon
          00.00.0000 00:00

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


    1. AlexXYZ
      00.00.0000 00:00
      +2

      Я ради вашего комментария даже закладку на статью поставил. Лучше бы такие комменты как ваш как рекламу пускали, чтобы во время пролистывания статей ещё и освежить что-то в памяти.


  1. lair
    00.00.0000 00:00
    +6

    Самая полезная комбинация в VS Code - Ctrl-Shift-P. Все остальное производно.


    1. iliazeus
      00.00.0000 00:00

      Мне кажется, удобнее для того же эффекта нажимать F1. Даже мнемонически это "клавиша помощи".

      Для тех, кто не пользуется VS Code: оба хоткея открывают command palette, где можно набрать нужную команду почти естественным языком. Там же можно посмотреть для них хоткеи, и ещё много чего.


  1. kaiu
    00.00.0000 00:00
    +2

    Спасибо. Как для начинающего пойдет, но если заминусуют, то не расстраивайтесь. А для вас и для всех читающий хабр может интересен сайт https://defkey.com/ — покажет по комбинации клавиши где такая применяется. Иногда помогает принять решение вводит ту или иную комбинацию в программах.


    1. Junecode Автор
      00.00.0000 00:00
      +3

      Спасибо за https://defkey.com/, это оказался очень полезный сервис!


  1. web3_Venture
    00.00.0000 00:00
    -1

    ctrl + del прикольно не знал, т.к. в офф документация есть только ctrl + shift + k с тем же описанием


    1. kaiu
      00.00.0000 00:00

      А теперь перейдите по https://defkey.com/search?irq=Ctrl%2BDel и поглядите, что делается в других редакторах на эту комбинацию. Привыкните, так что не удивляйтесь потом, что где-то что-то будет удаляться по этой комбинации.

      Возможно вы имели ввиду «Shift + Del» или «Ctrl+D»? В любом случае, лучше проверить, привыкать или нет. Если везде такие комбинации, то удобно, а вот если вводят что-то свое и противоположное всем, то бывает это вредно даже.


  1. Fedorkov
    00.00.0000 00:00
    +2

    Shift + Del — удалить строку целиком.

    Во многих современных IDE Ctrl + X/C на строке без выделения вырезает или копирует эту строку. Shift+Del — это лишь дубликат Ctrl+X, наследие доса.

    А ещё Ctrl+Ins — скопировать, Shift+Ins — вставить. Вот и дожили мы до момента, когда это стало редким знанием. :)

    Ctrl + L — выделяет всю строку. Целиком. Теперь копипастить еще проще, не правда ли? =)

    Опять же, Ctrl+C на невыделенной строке копирует эту строку.

    Ещё из полезного в VS (не уверен на счёт Code):

    Ctrl+. — варианты решения ошибки под курсором. Очень удобно вставлять using‑и, реализовывать интерфейсы и override, и т. д.

    Alt + выделение мышью — блочное выделение. Можно писать текст в нескольких строках одновременно.


    1. Junecode Автор
      00.00.0000 00:00
      +1

      Опять же, Ctrl+C на невыделенной строке копирует эту строку.

      WTF, не зря писал статью! Это вроде просто и логично) Но я только что попробовал и это очень круто! Спасибо!

      Ctrl+. — тоже внезапно ускоряет работу! Еще раз спасибо) В VSC работает!

      А Shift+Ins, это было так давно, что я и не упомню, когда использовал его)) 2000-е, наверное =)))))


  1. AlexXYZ
    00.00.0000 00:00

    Removed


  1. Johan_Palych
    00.00.0000 00:00
    -1

    Буду благодарен за любые интересные и полезные хоткеи

    Key Bindings for Visual Studio Code
    Telemetry

    VSCodium. Vscodium releases
    "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft’s editor VS Code.
    These binaries are licensed under the MIT license. Telemetry is disabled..."


  1. sergio_nsk
    00.00.0000 00:00
    -1

    Что за комбинация Alt + ЛКМ?


    1. deitry
      00.00.0000 00:00

      ЛКМ == "Левая Кнопка Мыши"

      Или Вы про что-то другое спрашивали?


  1. deitry
    00.00.0000 00:00
    +1

    Самое прекрасное в хоткеях VSCode - что их можно подстроить под себя без особых усилий, а также настроить одни и те же хоткеи на разные команды в разных контекстах. Имхо, самые полезные команды имеют по умолчанию не самые удобные хоткеи.

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

    1. На один только F3 можно назначить "Go To Next Change" в редакторе без виджета поиска или в просмотрщике диффа, "Next Conflict" если в диффе есть конфликты, "Find Next", если виджет поиска открыт и "Move Selection To Next Find Match" если есть какое-то выделение. Одна кнопка (+шифт для поиска в обратном направлении) решает 95% задач по навигации внутри файла или диффа. "Go To Next Change" я считаю наиболее важной из этих команд, потому что ею можно пользоваться как для навигации по собственным изменениям, более конкретно - для ревью собственного кода перед коммитом, да и просто в качестве телепорта между закладками, в роли которых выступают свежедобавленные пустые строчки..

    2. Ctrl + Shift + ] как "Add Selection To Previous Find Match" (соответственно + [ для обратного поиска; а без шифта как "Move Selection To ...") - решает большинство задач по работе с копипастой - можно навыделять сразу много-много строчек и разом все изменить. Мне этот способ больше зашёл в плане простоты контроля/скорости замены, чем стандартный виджет поиска и замены, потому что можно сначала навыделять все места, а потом уже придумывать текст, сразу видя результат.


  1. alexanderniki
    00.00.0000 00:00
    +2

    для начинающего джуна

    Типа джуниор джун, миддл джун и синьор джун.


  1. DaniilSysoev
    00.00.0000 00:00

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


  1. Mirzaev
    00.00.0000 00:00

    «Поговорим не про Vim»

    обломали моё желание повыпендриваться с первых же слов в статье