viには標準で自動インデントや自動コメント行の機能がありますが、
その弊害として、インデントやコメントを含むコードを
クリップボードからペーストしたときにもその機能が実行されて
コードが崩れてしまうことがあります。
私の場合はJavaScriptのコードで
| 1 | // | 
によるコメントが含まれていると次の行もコメントになり、
ペーストしたコードが盛大に崩れてしまうことがよくありました。
しかし、さすがはvi。
.vimrcに以下のプログラムを書けばこの問題を回避できます。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | if &term =~ "xterm"   let &t_ti .= "\e[?2004h"   let &t_te .= "\e[?2004l"   let &pastetoggle = "\e[201~"   function XTermPasteBegin(ret)     set paste     return a:ret   endfunction   noremap <special> <expr> <Esc>[200~ XTermPasteBegin("0i")   inoremap <special> <expr> <Esc>[200~ XTermPasteBegin("")   cnoremap <special> <Esc>[200~ <nop>   cnoremap <special> <Esc>[201~ <nop> endif | 
