Добавление выбранных линий к позиции курсора в VSCode - PullRequest
0 голосов
/ 17 января 2020

В Visual Studio 2019 я могу использовать Alt + Shift + (клавиши со стрелками) для многострочного редактирования «виртуального» пробела, а затем нажать любую чтобы все строки были заполнены пробелами в выбранном столбце, я часто использую это для облегчения чтения кода инициализации. Однако, когда я переключился на Visual Studio Code, я не смог найти эквивалент. Самая близкая вещь, которую я смог найти, была Ctrl + Alt + (клавиши со стрелками) . Это не совсем то, что мне нужно, поскольку он помещает только курсор каждой строки в конце вместо «виртуального» пробела в предыдущем примере.

Вот визуальный пример в Visual Studio 2019 (я не знаю, как сделать гифки):

enter image description here

enter image description here

enter image description here

Есть ли какой-нибудь эквивалент в VSCode или я пока застрял без него?

Ответы [ 2 ]

2 голосов
/ 17 января 2020

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

enter image description here

  • Ctrl + Alt + (клавиши со стрелками) все строки
  • Кнопка завершения
  • Перемещение по вкладке, поэтому самый дальний курсор влево находится там, где вам нужно
  • Escape
  • Ctrl + Alt + (клавиши со стрелками) снова все строки

Очевидно, что это не такой хороший рабочий процесс ... но он работает. Вы также можете посмотреть на расширения VScode, чтобы сделать это быстрее или сделать свой собственный

0 голосов
/ 17 января 2020

Вы можете сделать это довольно хорошо с помощью макроса. Используя расширение макроса, например multi-command , поместите это в ваш settings.json:

"multiCommand.commands": [

  {
    "command": "multiCommand.padTrailingSpaces",
    "sequence": [
      "editor.action.insertCursorAtEndOfEachLineSelected",
       "cursorHomeSelect",
      {
        "command": "editor.action.insertSnippet,

                       // pad end of each line with lots of spaces's'
        "args": {
          "snippet": "$TM_SELECTED_TEXT                                              ",
        }
      },

      "cursorHomeSelect",
      {
        "command": "editor.action.insertSnippet",  
        "args": {

          // keep first 30 characters, increase if you typically need more
          "snippet": "${TM_SELECTED_TEXT/(.{30}).*/$1/g}",  
        }
      }
    ]
  }
]

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

Выберите некоторые привязки клавиш (в сочетаниях клавиш. json):

{
  "key": "alt+s",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.padTrailingSpaces" },
  "when": "editorTextFocus" 
},

macro to pad spaces to each line


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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...