PIYO - Tech & Life -

REPLエディタ Light Tableを試す

REPL Ruby

Facebookでこんなのが流れてたので思わずインストールしてしまったテキストエディタ。

エンジニアライズ - 【開発意欲を刺激するエディタの紹介】 http://www.lighttable.com/…

LightTableはプログラマを中心に新たに注目されているエディタです。リアルタイムかつインラインで式を評価し、表示するのがこのエディタの特徴です。

だそうで、Pryを使って色々と確認しながらコードを書くことも多いからこれはいいかもなと。

公式チュートリアル(英語)があるけど文字ばかりで読みづらかったんで、少ない日本語の情報を便りにセットアップした。

LightTableでRuby、Nokogiriを使ってリアルタイムスクレイピング - Qiita

導入編

インストール

まずここからバイナリをダウンロード。これは普通のアプリケーションと同じ。

Light Table

コマンドビューのホットキー変更

コマンドビューって呼ぶのかどうかはわからないけど、Sublimeでいうコマンドパレットの呼び出しのホットキーがCtrl+Spaceとかいうふざけた組み合わせにアサインされている。このコマンドは普通はSpotlightに使われているし、僕の場合はAlfredに割り当てている。

じゃあキーを変更しようと思ってもメニューに見当たらないし、コマンドビューも開けない、詰んだ、、と思ったら、ViewCommandsというメニューがあった。ここからコマンドビューを起動し、keyあたりの単語で絞り込みをかけるとこうなる。

そしてSettings: User keymapを開く。

ここにキー設定を追加するわけだけど、僕には独特な書き方に見える。これはよくあるフォーマットなのか?

{:+ {:app {"shift-pmeta-p" [:show-commandbar-transient]}

     :editor {"alt-w" [:editor.watch.watch-selection]
              "alt-shift-w" [:editor.watch.unwatch]}}}

実際に追加したのは、"shift-pmeta-p" [:show-commandbar-transient]の部分。Sublime Textのコマンドパレットと同じくShift+Command+pを割り当てることにした。

Ruby用のREPLを入れる

デフォルトではRubyのリアルタイム評価には対応しておらずプラグインが必要らしい。

プラグインを入れるには、コマンドビューにpluginとタイプしPlugins: Show plugin managerを選ぶと開くプラグインマネージャーから行うようだ。

こんな具合の画面になるから、検索欄にrubyとタイプしてリターン。

Ruby Instareplというものがあるはずなのでそれをインストールする。

必要なgemを入れる

参照したQiitaの記事によると依存するgemがあるらしいのでそれらをインストールする。

% gem install eventmachine
% gem install json
% gem install method_source

本当に必要かどうかは検証していない。

使ってみる

デモ

感想

Pryなどの対話側の環境と比較すると、そもそもがエディタだから長めのコードが書きやすいし、以前の式を再評価したり少しだけ変更したりといったことが格段にやりやすい。ただし、リアルタイムに評価してくれるLiveモードでは評価済みの行を変更しても再評価はしてくれないような感じがした。その場合はCommand+Returnでマニュアル評価ができるし、そもそもそれで十分だと感じだ。

不満点が1つだけある。それはコードの評価結果をコピーする手段がないこと。いや、実際にはそういうことはできるようになっていて、操作方法がわかりにくいだけかもしれないけれど。

これがネックでREPLとしても実用にはできなそうな気がしている。

訂正:マウスで選択してCommand+Cで普通にいけた(id:gnety さんありがとうございます)。

そうそう、エディタとしては完成度がまだまだだからEmacsを置き換えるには及ばない。というかEmacs上でRubyを実行する方法を調べたほうがいいのかもしれない。