matobaの備忘録

育児しながら働くあるエンジニアの記録

Hello Vim script.〜Vim scriptを書いみる〜

こんにちは。Vim scriptを書いてみました。

モチベーションとしては、開発速度をあげたいという気持ちです。Vim scriptとか言い出すと、すごく先は長い気もしますが、まあ、とりあえずやってみてから考えようという気持ちです。

参考URL

この辺りを参考にしています。

kannokanno.hatenablog.com

qiita.com

Vimからpythonを呼ぶ話も興味あります。

qiita.com

まずは、Vim scriptに入門するところまでです。

まず書いてみる

.vimrc に以下の文を書いて見ました。

function! s:MultipleString()
    call setline('.', "------------------------------------")
endfunction
command! -nargs=0 MultipleStringCmd call s:MultipleString()

そのあとに、以下を実行します。

:source %

上記を実行すると、vimrcを再読み込みするようです。

次に、以下を実行します。

:MultipleStringCmd

すると、vim editor上に以下が入力されます。

------------------------------------

reSTでタイトルを入力する時に便利っぽいコマンドができました。

コマンド名を変える

MultipleStringCmd は長いので、コマンド名を変えます。 以下のRestH2にかえます。ちなみにvim scriptのコマンド名の先頭は大文字じゃないとダメみたいです。

function! s:MultipleString()
    call setline('.', "------------------------------------")
endfunction
command! -nargs=0 RestH2 call s:MultipleString()

保存して、再読み込みします。

:source %

呼び出します。

:RestH2

やっぱり以下が出てきます。

------------------------------------

引数を渡す

こんな感じ。

function! s:MultString(...)
    if a:1 == "h1"
        call setline('.', "====================================")
    elseif a:1 == "h2"
        call setline('.', "------------------------------------")
    elseif a:1 == "h3"
        call setline('.', "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    end
endfunction
command! -nargs=? Rest call s:MultString(<f-args>)
:Rest h1

====================================

が出るとか、そんな感じで切り替えられる。

プラグイン化する

とりあえず、疲れたので今日はここまで。

そのうち気が向いたらやる・・・