使用终端粘贴命令粘贴文本

如果你使用终端仿真程序中的粘贴命令,Vim 将解释字符流,就像它们被键入一样。这将导致各种不良影响,特别是不良的压力。

要解决这个问题,请从命令模式:

:set paste

然后继续进行插入模式,i 例如。注意模式现在是 -- INSERT (paste) --。现在使用终端仿真器命令或鼠标粘贴。完成后进入命令模式,使用 Esc 并运行:

:set nopaste

当一个人只想粘贴一次时,有一种更简单的方法。把它放在 .vimrc 中 (或使用插件 unimpaired.vim ):

function! s:setup_paste() abort
  set paste
  augroup unimpaired_paste
    autocmd!
    autocmd InsertLeave *
      \ set nopaste |
      \ autocmd! unimpaired_paste
  augroup end
endfunction

nnoremap <silent> yo :call <SID>setup_paste()<CR>o
nnoremap <silent> yO :call <SID>setup_paste()<CR>O

现在可以简单地按 yo 粘贴光标下的代码,然后 <Esc> 返回正常/ nopaste 模式。