シバンとは
まずシバンとは下記の様なシェルスクリプトの先頭行に記述するインタプリタの指定の事です。
#!/bin/sh
※シェルスクリプトが後ろに続く
自分も難しい事は分かりませんが、そのシェルスクリプトがどのシェル上での実行を想定しているのか明記する為のものだと思っています。
TL;DR
シバンを先頭行に挿入するVimスクリプトを書いてみます。Exコマンドラインから:Shebang
と実行すると、現在開いているバッファの先頭行にシバンが追加される仕様です。
" shell shebang
command Shebang :call s:InsertShebang()
function! s:InsertShebang()
call append(0, '#!/bin/sh')
endfunction
上のVimスクリプトを呼び出せるように.vimrc
に下記を記述します。
source ~/.vim/command.vim
Vimを再起動するか:source ~/.vim/command.vim
をしてから、Shebangを実行してみて下さい。シバンが挿入されれば成功です。
ちなみにshシェルのシバンを採用しているのは一番移植性が高そうだと思ったからです。特に意味はありません。
以上です。
QuickRunというVimプラグイン
ここからは蛇足ですが今回のVimスクリプトを作ろうと思ったきっかけの、quickrun.vimというVimプラグインについても触れておきたいと思います。Shebangスクリプトはシンプルにシェルスクリプトを書く時にも使えますが、個人的にはquickrun.vimと組み合わせてよく使用しています。
quickrun.vimはバッファ内のスクリプトを即座に検証するのに便利なVimプラグインです。自分の使い方としてはまず新しいバッファを立ち上げて、下のように動作を試したいシェルスクリプトを書きます。
#!/bin/sh ← ちなみに先程のShebangで挿入出来ます(アッピル)
echo "2^10" | bc
そしてExコマンドラインで:QuickRun
と実行すると別バッファが立ち上がり計算結果が出力されます。こんな感じでquickrun.vimを使うとスニペット感覚で実行することも可能なのです。
1024
ちなみにインタプリタは:QuickRun sh
の様にExコマンドの引数で指定することも出来ます。