Когда мне нужно скопировать и вставить большие блоки кода с веб-страницы, мне нужно сделать следующее по одному шагу за раз:

  1. : установить пасту
  2. войти в режим вставки Vim
  3. вставить буфер обмена
  4. установить нопасте
  5. войти в нормальный режим

Я надеюсь сделать это все сразу с помощью сопоставления клавиш лидера для P.

Спасибо за помощь!

1 ответ1

0

Если у вашего Vim есть доступ к выделенному / системному буферу обмена X, вы можете просто вставить с помощью <C-r>* / <C-r>+ в режиме вставки или напрямую в обычном режиме с помощью "*p / "+p .

Только если это не работает, вам нужно :set paste , поскольку Vim в противном случае не сможет определить, набрали ли вы это (очень быстро) или вставили. Поскольку любое клавиатурное действие может быть связано с вводом, это трудно автоматизировать, но Vim, к счастью, предлагает опцию 'pastetoggle' чтобы ускорить переключение:

'pastetoggle' 'pt'    string  (default "")
                        global
                        {not in Vi}
        When non-empty, specifies the key sequence that toggles the 'paste'
        option.  This is like specifying a mapping:
            :map {keys} :set invpaste<CR>
  Where {keys} is the value of 'pastetoggle'.
        The difference is that it will work even when 'paste' is set.
        'pastetoggle' works in Insert mode and Normal mode, but not in
        Command-line mode.

Например, с помощью :set pastetoggle=<F11> вам просто нужно i<F11> (paste) <F11><Esc> .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .