xterm のヒント

Bracketed Paste Mode

この機能は xterm 拡張で、有効になっていると、クリップボードからの貼り付け時に文字列の前後に特別なシーケンスを付加するというものです。
具体的には、DECSET の 2004(<CSI>?2004h) で有効になり、貼り付け時に文字列の前に <ESC>200~, 後ろに <ESC>201~ が付くようになります。

以下に vim の .vimrc 設定例を示します。貼り付け時は自動インデントが無効になります。

if &term == "xterm"
  let &t_ti = &t_ti . "\e[?2004h"
  let &t_te = "\e[?2004l" . &t_te
  let &pastetoggle = "\e[201~"

  function XTermPasteBegin(ret)
    set paste
    return a:ret
  endfunction

  map <special> <expr> <Esc>[200~ XTermPasteBegin("0i")
  imap <special> <expr> <Esc>[200~ XTermPasteBegin("")
  cmap <special> <Esc>[200~ <nop>
  cmap <special> <Esc>[201~ <nop>
endif