LoginSignup
16
16

More than 5 years have passed since last update.

Vimで各言語のreplをすぐに開きたい…そこでrepl.vim!

Last updated at Posted at 2015-12-22

この記事は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

ruby_repl_vim.png


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のインタプリタを起動することができます。

haskell_repl_vim.png

終わりに

 使ってみてね★

 全く別の話なのですが、この前repl.vimのコミット権を貰えたので
最近repl.vimにコミットとかしてます。

16
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16