この記事はVim advent calendar 2015の23日目の記事です!
昨日の記事は
プログラミング初心者が某氏が提言していた「 Vim駆動学習 」をやってみた
でした!
某氏、一体 何ぶささんなんだ…。
そこでrepl.vim!
はい! 今貴方は小物のプログラムを書いています!
はい、今classを書きました!!
(コードの内容を理解する必要はありません)
classKawaiidefinitialize@messageList=['おはよう、よく眠れましたか?','朝ごはん、もうできてますよ! ずんだもち。',"モナド? 単なる自己関手の圏におけるモノイド対象だよ。\n何か問題でも?",'むちむちじゃありません! もちもちです!',"皆のハート打ち抜くぞ〜\nずんだアローシュート!","お口開けてください、あーん♡\nたこ焼き味のずんだもちです!"]enddefmessage(_)n=rand(0..@messageList.count()-1)@messageList[n]endend
アッアッ、このクラスをロードしたい、今したい。
そう…なんというかこう…チェック用のコードを書くまでもなく…すぐ動かしたい!
そこでrepl.vim!
repl.vim
repl.vimはujihisaさん作の、quickrun.vimをrepl用にしたためたかのようなVimプラグインです。 ( ※この感想は個人のものです )
上記では、編集中かつ、未保存のコードをRubyのインタプリタ(irb)に読み込ませています。
- 対応言語 (2015-12-17時点)
- Haskell (ghci)
- Ruby (irb)
- Python (python (python2もしくはpython3))
- Erlang (erl)
また、各言語に対応するインタプリタはユーザ側で指定可能です。
( filetype 'python'に対して 'python2' を起動する…など )
repl.vimの役に立ち力
即実行力の強さ
はい! 今貴方は小物のプログラムを(以下略
今度はHaskellとしましょう。
以下のようなコードを書きました
dataLista=Nil|Consa(Lista)derivingShowemp=Nil::ListIntuni=Cons10Nilxx=Cons10(Cons20Nil)fromGeneral::[a]->ListafromGeneral[]=NilfromGeneral(x:xs)=x`Cons`fromGeneralxsxxx=fromGeneral[1,2,3]
Rubyであれば、下の方に動作チェック用のコードを付け足せばすぐに動かせますが、
Haskellの場合はmain
を書かなければいけません。
具体的には以下のようなもの。
main::IO()main=doprintempprintuniprintxxprintxxx
動作確認のためにこれを書くのは面倒です。
そこでrepl.vim!
repl.vimを使えば、List型及びそれ以下の関数を読み込んだHaskellのインタプリタを起動することができます。
終わりに
使ってみてね★
全く別の話なのですが、この前repl.vimのコミット権を貰えたので
最近repl.vimにコミットとかしてます。