Vimで shebang 付ファイルを保存時に実行権限を自動で付加する


UNIX上でのエディタはVimを使っている。Linuxでプログラム書き始めてからだからここ5年ぐらい。

プログラマのエディタっていうとEmacsが主流っぽいけど、断固Vim派!!


Emacsはいまだに簡単な操作すら怪しい・・・


最近 Vim7 がリリースされたり、5月2日の技術勉強会 - はてな技術発表会日記 - 機能変更、お知らせなどでのid:secondlifeさんの発表などでますます熱いVimなんだけど、ひとつTipsを。


以下を ~/.vimrcに書いておくと、shebang(#!/usr/local/bin/perlとか)のついたファイルに自動で実行権限をつけてくれる。

autocmd BufWritePost * :call AddExecmod()
function AddExecmod()
    let line = getline(1)
    if strpart(line, 0, 2) == "#!"
        call system("chmod +x ". expand("%"))
    endif
endfunction

ほんのちょっと便利。

ソース管理がCVSだと実行権限付け忘れてコミットしちゃうと後からつけられないので、その防止にもなる。


自分の環境では、一応プラグインの形にして ~/.vim/plugin においてる。