FC2ブログ

blogaomu2.1はこの度、http://blogaomu.comに引っ越しました。最新の更新はblogaomu.comにて行なっておりますので、ブックマーク・RSS等の設定をお願い致します。

vimにペーストするときは :set paste を行うと便利

こんにちは。皆様、楽しいvimライフを過ごしておられるでしょうか?

先日、vimのhelpでオプションをだらだらと見ていて「地味ながら便利そう!」というものがあったので書いておきます。

保存しておいたコードスニペットや設定をコピーして貼りつけたいっていう場面があると思いますが、そんな時に便利なのがこの設定。
:set paste
オートインデントやスマートインデントを使っているとペーストしたときにインデントがずれてしまうことが多々あります。(私だけでしょうか?)
しかし、pasteを設定すればこのインデントのずれが解消されるのです!

使い方

:set paste
pasteを設定したあと編集モードに切り替えると以下のように表示されます。
-- INSERT(paste) --
pasteが有効になっているのを確認してからペーストを行いましょう。

また、pasteを無効にする場合は以下のコマンドを実行します。
:set nopaste

過去のブログに書いたコードスニペットをコピーしてみます。灰色に選択された部分です。
blog_vim_paste_5.png

まずはpasteを設定してない場合のペーストの挙動を見てみましょう。
vim_paste_1
ペーストすると、以下の図のように元々のコードスニペットのインデントがずれてしまいます。
vim_paste_2

次に、pasteを設定した場合のペーストの挙動を見てみましょう。
編集モードに切り替えると、下部のステータスに(paste)と表示されます。これは、pasteが有効になっていることを示しています。
vim_paste_3
ペーストすると適切なインデントになっていることが分かります。ただし、ifブロック内のオートインデントが無効になることに注意すべきです。
vim_paste_4

ペーストし終えてオートインデント等を有効にしたい場合は、:set nopaste と入力します。これでpasteが無効になります。

終わりに

何行にも及ぶインデントのずれを修正するのは非常に面倒くさい作業なので、予めpasteを有効にしてペーストするのが便利だと思います。
スポンサーサイト



シェアはこちらからどうぞ

このエントリーをはてなブックマークに追加
プロフィール

TAKAyuki_atkwsk

お知らせ
最新記事
最新記事のRSSフィード

最新コメント
最新トラックバック
カテゴリ
タグクラウド
月別アーカイブ
ブクログ
携帯百景