この記事はVim advent calendar 2015の23日目の記事です!
昨日の記事は
プログラミング初心者が某氏が提言していた「 Vim駆動学習 」をやってみた
でした!
某氏、一体 何ぶささんなんだ…。
そこでrepl.vim!
はい! 今貴方は小物のプログラムを書いています!
はい、今classを書きました!!
(コードの内容を理解する必要はありません)
class Kawaii
def initialize
@messageList = [
'おはよう、よく眠れましたか?',
'朝ごはん、もうできてますよ! ずんだもち。',
"モナド? 単なる自己関手の圏におけるモノイド対象だよ。\n何か問題でも?",
'むちむちじゃありません! もちもちです!',
"皆のハート打ち抜くぞ〜\nずんだアローシュート!",
"お口開けてください、あーん♡\nたこ焼き味のずんだもちです!"
]
end
def message(_)
n = rand(0 .. @messageList.count() - 1)
@messageList[n]
end
end
アッアッ、このクラスをロードしたい、今したい。
そう…なんというかこう…チェック用のコードを書くまでもなく…すぐ動かしたい!
そこで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)
※ JavaScript (node.js repl) に対応しました! (2016-02-06)
また、各言語に対応するインタプリタはユーザ側で指定可能です。
( filetype 'python'に対して 'python2' を起動する…など )
repl.vimの役に立ち力
即実行力の強さ
はい! 今貴方は小物のプログラムを(以下略
今度はHaskellとしましょう。
以下のようなコードを書きました
data List a = Nil | Cons a (List a) deriving Show
emp = Nil :: List Int
uni = Cons 10 Nil
xx = Cons 10 (Cons 20 Nil)
fromGeneral :: [a] -> List a
fromGeneral [] = Nil
fromGeneral (x:xs) = x `Cons` fromGeneral xs
xxx = fromGeneral [1,2,3]
Rubyであれば、下の方に動作チェック用のコードを付け足せばすぐに動かせますが、
Haskellの場合はmain
を書かなければいけません。
具体的には以下のようなもの。
main :: IO ()
main = do
print emp
print uni
print xx
print xxx
動作確認のためにこれを書くのは面倒です。
そこでrepl.vim!
repl.vimを使えば、List型及びそれ以下の関数を読み込んだHaskellのインタプリタを起動することができます。
終わりに
使ってみてね★
全く別の話なのですが、この前repl.vimのコミット権を貰えたので
最近repl.vimにコミットとかしてます。