はじめに
はじめてVimスクリプトを書く人に向けたVimスクリプトの書き方のメモ。
ドキュメントで読むべき箇所
以下で紹介する2ページは絶対に押さえておいたほうが良い。
何か困ったらまずはこのページを読むべきである。 Vimスクリプトの基本と関数やコマンドの一覧が掲載されている。
Vimの全コマンドが掲載されている。 Vimスクリプトは本質的にコマンドの塊に他ならない。 適宜参考にすべきだろう。
これらのページは、元がデキストだけあって非常に読みにくいので、覚悟して読むこと。
なおそれぞれ:help eval.txtと:help vimindex.txtでVim上でも読むことができる。
また調べ物は以下のようにググると幸せになれるかも知れない。
site:vim-jp.org hogehoge
おすすめのプラグイン
定番である。 便利なので入れておくと捗る。
QuickRunはバッファの内容を実行して、出力結果を別のバッファに書き出してくれるプラグインだ。 範囲指定で実行することもでき、ビジュアルモードで選択した部分が実行できるのは非常に便利である。 試行錯誤にうってつけだ。
Vimスクリプトの実行は:QuickRun vimでできる。
Hello, World!
いわゆるHello, World!を作ってみよう。
スクリプトファイルの作成
まずhello.vimなどとして適当にVimスクリプトファイルを作る。 Vimスクリプトの拡張子は.vimである。
スクリプトファイルの編集
Vimスクリプトでメッセージを表示するにはechoコマンドを使う。 文字列リテラルは"または'で囲む。 よってHello, World!を表示するコードは以下である。
echo 'Hello, World!'
スクリプトファイルの実行
Vimスクリプトは:sourceでvimに実行させることができる。 hello.vimを実行させるには以下のようにする。
:source hello.vim
編集中のVimスクリプトを実行したいなら以下でも良い。
:source %
echomと:messageによるprintfデバッグ
いわゆるprintfデバッグの方法を紹介する。
Vimスクリプトでは基本的にechoすればprintfデバッグが可能だ。 echoはあらゆる式を評価して文字にして表示してくれる。 (配列や辞書もechoで表示可能である)
だが、ある程度複雑な事をするようになってくると、echoではメッセージが流れて見えなくなってしまう場面が少なくない。
そのような場合にはechoの代わりにechomを使うと良い。
echomは画面にメッセージを出力するとともに、メッセージ履歴にもメッセージを残すコマンドである。
メッセージ履歴はあとから:messagesで参照することができる。
おわりに
以上、Vimスクリプトを書き始める人に向けて、役立ちそうなことをまとめた。
私もRubyJumpを作り始める前に知っておきたかった…orz
