Несколько кодовых курсоров VS - многократно вставляйте отдельные строки - PullRequest
0 голосов
/ 29 марта 2020

Я использую VS Code с привязками VI и пытаюсь сделать следующее.

У меня есть следующее содержимое файла:

abc="some value"
def="some other value"
ghi="some other other value"
jkl="some other other other value"
.
<etc. for many lines>

Я хочу изменить этот файл на (Ожидаемый результат):

abc=${abc}
def=${def}
ghi=${ghi}
jkl=${jkl}

Пока у меня есть первый заменил =.+ на =${. Я получаю следующее:

abc=${
def=${
ghi=${
jkl=${

Затем я пытаюсь использовать несколько курсоров в VS Code с помощью Cntrl + Alt + I, и я пытаюсь скопировать каждую строку с начала, чтобы вставить ее, чтобы я получил ожидаемый результат. По какой-то причине он не позволяет мне выделять всю строку, когда я делаю Cntrl + Home. Может кто-нибудь помочь мне с этим?

Для справки: VI раздел моего settings.json файла выглядит следующим образом:

// my settings
    "vim.easymotion": true,
    "vim.sneak": true,
    "vim.incsearch": true,
    "vim.useSystemClipboard": true,
    "vim.useCtrlKeys": true,
    "vim.hlsearch": true,
    "vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": false,
    "<C-w>" : false,
    "<C-x>" : false,
    "<C-c>" : false,
    "<C-h>" : false,
    "<C-b>" : false,
    "<C-n>" : false
    },

Ответы [ 2 ]

1 голос
/ 29 марта 2020

Почему он не работает с Multi Cursor?

Использование привязок клавиш по умолчанию.

  • позиционный курсор перед a
  • use Ctrl + Alt + Стрелка вниз так часто, как вам нравится
  • использовать Shift + Ctrl + Стрелка вправо выбрать все до =
  • Ctrl + C
  • Стрелка вправо 2 раза
  • Shift + Конец выбрать все после =
  • $ {
  • Ctrl + V
  • Es c

Или начать выбор =" с последующим

Ctrl + Shift + L LeftArrow Shift + Home Ctrl + X RightArrow Shift + End $ { Ctrl + V Home Ctrl + V Es c* 11 00 *

1 голос
/ 29 марта 2020

Я не использую VI, но это легко сделать с помощью сниппета (в вашем keybindings.json).

{
  "key": "alt+b",                               // whatever keybinding you wish
  "command": "editor.action.insertSnippet",
  "args": {
    "snippet": "${TM_SELECTED_TEXT/(.*)=.*/$1=${$1}/g}"
  },
  "when": "textInputFocus && editorHasSelection"
}, 

Затем выберите ваш код и alt + b (или любую другую комбинацию клавиш, которую вы используете). Вам не нужно несколько курсоров или вам нужно выбирать каждую строку отдельно.

...