先頭にシバンを挿入するVimスクリプト

シバンとは

まずシバンとは下記の様なシェルスクリプトの先頭行に記述するインタプリタの指定の事です。

#!/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コマンドの引数で指定することも出来ます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA