Compiler Pluginについてしゃべってきた
資料はreStructuredTextっていう形式で書いたものをdocutilsというツールを使ってS5形式に変換したものだったんだけど変換前のreStructuredTextをとりあえず貼っておく。
後でS5形式のものをどこか置くはず(たぶん)
.. include:: <s5defs.txt> ================================================================================ 初めてのCompiler Plugin ================================================================================ :Author: maedana :Date: 2008-09-06 .. contents:: :class: handout 自己紹介 ================================================================================ .. class:: incremental * `id:maedana`_ * フリープログラマになりたい派遣プログラマ(契約形態的な意味で * 一年前くらい前から `SKIP`_ という社内向けSNSの開発に参加 * 今年6月にOSSとなり、気がつけばコミッタになってた。 .. _`id:maedana`: http://d.hatena.ne.jp/maedana/ .. _SKIP: http://www.openskip.org/ .. class:: handout そういえばXPJUGと日程かぶってる。会長がチームのリーダ(id:kuranuki)なだけに心苦しいがvimmのほうにどうしてもいきたかった。 そういえばSeaser Conともかぶってる。イベント多すぎるよな。 経歴 ================================================================================ .. class:: incremental ======= =========================================================== emacs 学生時代 ------- ----------------------------------------------------------- 秀丸 5年前。新卒の頃。 ------- ----------------------------------------------------------- Eclipse 4年前から。正直もう使える気がしない(キーバインド的な意味で) ------- ----------------------------------------------------------- vim <- いまココ ======= =========================================================== 今日の話す内容 ================================================================================ .. class:: incremental * Compiler Pluginとは何か * Compiler Pluginの使い方 * デモ * デモの補足 * まとめ Compiler? ================================================================================ .. class:: small 今日のお話ではいわゆるプログラミング言語のCompilerは勿論、 `各種パーサやtidy等のツール類も含みます。` .. class:: small `vimではとにかくテキストを解析して解析結果を決まったフォーマットで出力するもの はCompilerと見なせるんじゃないかなと。` Compiler Pluginとは ================================================================================ .. class:: small `特定のテキストのコンパイルサイクルを効率よく回すために` `Compilerを使うためのオプションを設定するプラグイン。` .. class:: small `Compilerを使うためのオプションとは:makeprg及び:errorformatのこと` .. class:: small `:compiler を使うことで:makeprgと:errorformatを設定する。` .. class:: handout :help compiler を参照 コンパイルサイクルとは、テキスト書いて パーサにかけて エラーを確認して エラーの場所へ移動して (全部のエラーがなくなるまで)エラーを直す こと。 Compiler Pluginを使う ================================================================================ .. class:: incremental .. class:: small ================== ============================================== :comp[iler] どんなCompilerがあるのか参照する ------------------ ---------------------------------------------- :comp[iler] {name} Compiler {name}を使うときに機能するオプション ------------------ ---------------------------------------------- :make [arguments] コンパイルを行う(詳しくは:help make) ------------------ ---------------------------------------------- :cn 次のエラーへ飛ぶ ------------------ ---------------------------------------------- :cp 前のエラーへ飛ぶ ------------------ ---------------------------------------------- :clist エラーリストを表示する ------------------ ---------------------------------------------- :copen エラーリストを開く ================== ============================================== .. class:: handout :compでどんなCompilerがあるのか確認する。 適当なrspecファイルを開く :comp rspecで最新のvim-rubyプラグインがあればrspec用に:makeprgと:errorformatが設定される。 :make % (%は今開いているファイル)でrspecコマンドが実行される :cnで次のエラーへ :cpで前のエラーへ :clistでエラーリスト参照 :copenでエラーリストを開く デモ ================================================================================ Compiler Pluginを使うと何がうれしいのか ================================================================================ 普通に実行すると… ================================================================================ .. class:: incremental * シェルに切り替えるの面倒 * ファイル名とか行番号確認するの面倒 Compiler Pluginを使うと ================================================================================ .. class:: incremental * vimのなかで実行できて楽 * 簡単にエラー行に飛べて楽 Compiler Pluginの作り方 ================================================================================ 第二部で!(準備が間に合わなかったともいう おまけ QuickFixについて ================================================================================ .. class:: incremental .. class:: small * :makeはQuickFixコマンドのひとつ。 * :help QuickFixCmdPreによると、QuickFixコマンドとは :make, :lmake, :grep, :lgrep, :grepadd, :lgrepadd, :vimgrep, :lvimgrep, :vimgrepadd, :lvimgrepadd がある。 * :grepはかなり便利。:vimgrepの方が便利みたいだけど僕の環境だと遅くて使い物にならない。 * `四天王の一人`_ が `書いてた`_ `ack`_ というperlの全文検索プログラムとの組み合わせがいい感じ。 .. _`四天王の一人`: http://d.hatena.ne.jp/secondlife/ .. _`書いてた`: http://d.hatena.ne.jp/secondlife/20080311/1205205348 .. _`ack`: http://blog.bulknews.net/mt/archives/002044.html まとめ ================================================================================ .. class:: incremental .. class:: small * Compiler Pluginは便利だから使うといいよ。 * QuickFixを使いこなせるようになるといいと思うよ。 * 自分の使いたい言語やツールに対応するCompiler Pluginがないなら簡単だ(と思う)から作るといいよ。 * と思って作ろうとしたのがあるんだけどerrorformatに苦戦してまだ出来てない…orz 続きは:helpで!!! ================================================================================ .. class:: incremental .. class:: small =========================== ========================== :help usr_30 Compilerの説明 --------------------------- -------------------------- :help compiler :compierコマンドの説明 --------------------------- -------------------------- :help makeprg :makeprgオプションについて --------------------------- -------------------------- :help errorformat :errorformatの書き方等 --------------------------- -------------------------- :help write-compiler-plugin Compiler Pluginの作り方 --------------------------- -------------------------- :help quickfix QuickFixについて =========================== ==========================