VS код VIM расширение копирования и вставки - PullRequest
1 голос
/ 09 октября 2019

Существует ли нормальный способ копирования и вставки в код vs с использованием расширения vim?

Я пробовал сопоставлять команды регистра VIM с командами быстрого доступа, к которым я привык (ctrl + c для копирования и ctrl+ v для вставки), но результаты довольно странные, и я не уверен, как это сделать правильно.

При использовании vim привязки клавиш были довольно простыми, файл vimrc:

map <C-c> "+y
map <C-v> "+p

Теперь я пытаюсь перенести их в vs-код, отредактировав файл json.settings:

{
    "vim.visualModeKeyBindings": [
        {
            "before": ["<C-c>"],
            "after": ["\"", "+", "y"]
        },
        {
            "before": ["<C-v>"], 
            "after":  ["\"", "+", "p"]
        },
    ], }

Я хочу, чтобы это работало как в визуальном режиме, так и в обычном режиме (для вставки) и иметь возможностьскопируйте и вставьте из буфера обмена с помощью этих ярлыков.

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

1 Ответ

2 голосов
/ 09 октября 2019

Вместо повторного связывания вы можете просто остановить расширение vscodevim от обработки Ctrl-C и Ctrl-V полностью, что затем позволяет VSCode обрабатывать их самостоятельно. Это можно сделать, поместив приведенный ниже код в файл settings.json расширения:

"vim.handleKeys": {
    "<C-c>": false,
    "<C-v>": false
}

. Это будет работать независимо от того, в каком режиме вы находитесь, и идеально подойдет для системного буфера обмена. Я не уверен, нужен ли <C-c>, но <C-v> определенно необходим, поскольку <C-v> является стандартным аккордом Vim для входа в режим визуального блока.

В качестве отступления, ваш метод повторного связываниясовершенно верно;это просто требует немного больше кода:

// For visual mode
"vim.visualModeKeyBindings": [
  {
    "before": ["<C-c>"],
    "after": ["\"", "+", "y"]
  },
  {
    "before": ["<C-v>"], 
    "after":  ["\"", "+", "p"]
  }
],
// For normal mode
"vim.normalModeKeyBindings": [
  {
    "before": ["<C-c>"],
    "after": ["\"", "+", "y"]
  },
  {
    "before": ["<C-v>"], 
    "after":  ["\"", "+", "p"]
  }
]
...