: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 を実行することにします。
2007/09/23 at 10:40 pm
ペーストする時は :a! とかしてから張り付けると良い感じですよ。
2007/09/23 at 11:51 pm
コメントありがとうございます。
:aって:appendと同じ意味でコマンドモードで挿入するってことなんですね。勉強になりました。