使用終端貼上命令貼上文字

如果你使用終端模擬程式中的貼上命令,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 模式。