仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

vimでコピペ

コンソール上のvimにコピーしてきた文字列を入力するとき、いつもダラダラと↓みたいなことやっていた。

:set paste
インサートモードに
<Command-v> or <Shift-Insert>
インサートモード抜ける
:set nopast

そのまま編集しちゃう場合、「nopaste」忘れたりして面倒くさいなーと思って、

autocmd InsertLeave * set nopaste

惰性で上のような設定も入れていた。

けど、そもそも↓みたいな手順だけで簡単にペースト出来たことを初めてしった……。なんだ、これ。便利だな。

:a!
<Command-v> or <Shift-Insert>
.

とはいえ、「:append(:a)」でカーソル位置の下の行に複数行の文字列を入力するモードに入って、「.」のみ入力された行まで受け付ける。「!」もつけると、その実行のみ「autoindent」をドグルする。ということは、「.」だけの行の入力が含まれていたりバックスラッシュの入力が含まれていたりするとダメなのか。微妙なところ。

前後で、「:set cpo+=C」「:set cpo-=C」とかするくらいなら、「:set paste」のほうが楽ちんだしな。(「map :set paste:call Foo():set nopaste」とか上手いことやって隠蔽できそうな気もするけど断念)

Windows上で真面目にvimってあまり使ってなかったけど、「Ctrl-Insert」でコピー、「Ctrl-Del」でカット、「Shift-Insert」でペーストのキー入力に慣れたら少し使いやすくなった。