スパム対策として書込み時にID/PWを要求されますが、ローマ字で ほげ/ホゲ で書き込めるようになります。

クリップボードからの貼り付け時に自動で set paste する

  • ページ: tips
  • カテゴリー: 編集
  • 投稿日: 2010-09-06 03:44:04 (月)

メッセージ

gvim ではクリップボードからの貼り付け時には自動で set paste された状態になる。 xterm や Tera Term 等の Bracketed Paste Mode をサポートした端末エミュレータを使用している場合、.vimrc に以下の設定を追加する事で CUI 版の vim でもクリップボードからの貼り付け時に自動で set paste が行われるようになる。

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

上記設定だとノーマルモードで貼り付けを行うと自動で挿入モードに移行するが、この動作が都合悪い場合は以下のようにすると挿入モード時のみ Bracketed Paste Mode を利用するようになる。

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

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

  imap <special> <expr> <Esc>[200~ XTermPasteBegin("")
endif

Bracketed Paste Mode をサポートした端末エミュレータには、以下の物がある。

  • xterm
  • gnome-terminal 等の vte を利用した端末エミュレータ (vte 0.23.3 以降)
  • Tera Term (4.66 以降)
  • RLogin (2.8.5 以降)
  • mintty (0.70 以降)




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-14 (火) 01:13:17 (1287d)