:set paste すると snippetsEmu.vim が動かない

2007/09/23

Vim に TextMate 的なコードスニペット挿入機能を追加してくれる snippetsEmu はとても便利なのですが、気付けばいつの間にやら動作しなくなっていました。

先日 Vim の本を買って .vimrc を色々といじり回していたので、何か相性の悪い設定でもしてしまったんだろうと思い、設定値をひとつずつ無効にして確認してみました。すると、どうやら :set paste が邪魔をしているようで、コメントアウトするとスニペットを挿入できます。

:set paste は Vim に文字列をペーストするさいにインデントを無効にしてペーストするというオプションです。:set paste せずに(つまり :set nopaste して)インデント済みのソースコードをペーストすると、ペーストされた文字列を Vim がさらにインデントしてしまうので、インデントが二重に行われてしまいます。

:set paste した状態ではスニペットを挿入できなかったので、.vimrc から :set paste を削除しました。常に :set paste しておく必要はないので、今後はペーストするときに手動で :set paste を実行して、ペースト後は :set nopaste を実行することにします。

photo

ViIMproved‐Vim完全バイブル
Steve Oualline 高橋 則利
技術評論社 2004-05

by G-Tools , 2007/09/23

2 Responses to “:set paste すると snippetsEmu.vim が動かない”

  1. takayama Says:

    ペーストする時は :a! とかしてから張り付けると良い感じですよ。

  2. hara Says:

    コメントありがとうございます。
    :aって:appendと同じ意味でコマンドモードで挿入するってことなんですね。勉強になりました。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。