2015年03月18日

新しいテキストエディタに触る Redcar編

最近海外製のテキストエディタはやってるみたいね。

TextMate互換のRedcar
Githubで公開されてるatom

両方共、アーキテクチャが好みなので使ってみたい感じ。
まず今回はRedcarから触ってみよう



Redcar

railsをコーディングするのに適しているらしい、rubyで拡張できるテキストエディタ。
アーキテクチャはなんとswt+jruby!
マルチプラットフォームでプログラムを作るとき、表示部分:java ロジック部分:センスのいいLLという組み合わせで作るといいかんじのが作れそうだな、と直感的に思ったんだけど、javaはjavaでもswtか・・・!

eclipse触った時に反応の早さとUIの統一性に惚れ込んだものだけど、その後後発で使う人現れなかったんで
こりゃeclipseだけの一発屋だな、とがっかりしてたんだ。そしたら久しぶりに見たよ!
guiはネイティブにまかせてjavaはインターフェースを担当、っていう役割分担も、それはそれで綺麗だったんだよね
昔のswingは謎の明朝体フォントが踊り狂ってて汚かったし。
でもその後swingがopenglかなんかを駆使して自力で早くなりやがって廃れた。
ところでこの構造だと

UI                                                ロジック
各OSのネイティブAPI(Win32apiとか)←→jni←→java←→javax.script←→jruby
赤い部分がマルチプラットフォーム担当

というとても迂遠なやりかたでマルチプラットフォーム実現してるんだけど遅くないのか。

インストールの仕方はgem install redcarで入れるという謎のハードルの高さ。ネイティブライブラリが必要なので、windowsで使うにはmingw版がベター。お前らzipで解凍して使えるようにしれ。
俺はだるいのでusbrumix2ダウンロードしてrumixlauncherを起動、
「コマンドライン端末を開く」ボタンでコマンドプロンプト立ち上げてそこからgem install redcarコマンドを打ってインストールした。


windowsでは基本的にgemインストールするとrubyインストールフォルダのbin配下にコマンドと同名のバッチファイルができる。
usbrumixでは[解凍フォルダ]\ruby\2.0.0\i386-mingw32\bin配下にredcar.batがあった。
実行フォルダを[解凍フォルダ]\...うんちゃらら...binにしてredcar.batをクリックすれば即座にredcar実行できる・・・!と思いきや

裏にコマンドプロンプトが表示され続ける

うわキモ。いやだったのでコマンドプロンプトが消えたまま使えるvbs作って、ここから起動するようにした

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c redcar.bat", vbhide

ここから実行すれば無事コマンドプロンプトは消える。

起動はxyzzyほどではないけどそれなりに早く、俺のパソコンからでは15秒程度。立ち上げっぱなしにしておくなら気にならない速度かな。
以下にはxyzzyとの違いを書いてみる。

触ってわかる、xyzzyとの相違点

俺長年emacs互換のxyzzy使ってるんだけど、この文化ではtext-modeとかjava-modeとか、ファイルに応じたモードという概念が用意されていて、コレを元に文字の色分け、インデント、補完なんかをしてくれる。
このモードに相当するのはredcarではbundleという名前のものらしい。html bundleやらjava bundleやらがあって、ファイルの拡張子に応じて色分け、インデントがかわる。

bundleの変更の仕方はメニュー「Edit」→「Change Language」。インストール直後はCoffeeScript bundleがないので不便だけどこれは追加できるらしい。

そして操作感が一番違うな、と思ったのが入力補完。xyzzyはある程度決まりきった入力補完しかなくて、
<title>と入力した後に</を打ち込むと勝手にtitle>を補完してくれるとか、そういう操作のものだった。

redcarはそういうのがなくて、あれ?/打っても補完してくれないじゃん使えねーなコレなんて思っていたんだけど実はメインの使い方が違って、html bundleの場合titleと入力してタブキーを打つと

  • <title></title>の文字列が勝手に挿入
  • 打ち込みの現在位置(キャレット)が<title>と</title>の間に勝手に移動
  • Ctrl+Enterを押すとタグを無視して次の行に移動

という動きをする。この動きのお陰で title入力→中身入力→Ctrl+Enterで次の行に移動→link入力...
みたいなHTMLの定番の流れが簡単に作れるようになっている。便利。

これがHTMLみたいな簡単なものなら違いがわからないんだけど、rubyみたいに

data.each do |index, value|
  puts "%d : %s" % index, value
end

くらい複数行大量の文字を入力する時、えらい便利なんだな!
どうやらこの機能スニペットというらしく、eclipseとかでは定番の機能らしいんだけど俺しらなかったわあ。

xyzzyやらemacsには略語補完(abbrev)という似たような機能もあるらしいんだけど、そんなにコード入力に特化してるわけではないように見える。

不満点

まああんま使ってないんで今から不満点言うのもなんだけど、

  • 文字コードが選べず、UTF-8一択っぽい
  • メニューが英語
  • デフォルトのテーマがなんか黒い

てあたりが不満かな。最後のテーマなんか適当に好きなのに変えればいいし、メニューはそのうち日本語パッチが出るんだろうけどShift_JISが扱えない(俺がやり方知らないだけ?)のが普段使いには辛いかな。
ただRailsやCoffeeScriptをいじる分にはいいかも。でもそれだったらeclipse展開しちゃうかな?普通は。
posted by LoyalTouch at 07:00| Comment(0) | TrackBack(0) | クライアントサイド | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック