ChromeがFirefoxに劣っているいくつかの理由の一つに
It's All Textプラグインの存在がありました。同様のことが出来る拡張を定期的に探していたのですが、今日ついに実用に耐えうる(?)拡張を見つけたので紹介します。
TextareaConnect(☆3つですが、手元の環境では元気に動いています)
Chrome版It's All Textが登場しなかった背景には、Chromeが拡張から外部プロセスの起動を許さないというポリシーがありました。TextareaConnectは、別に起動したサーバプロセスから任意のエディタを立ち上げ、テキストをやりとりすることでIt's All Text相当のことを実現しています。(他にも同じアプローチの拡張があったような気がします)
サーバ側は、なんと出たばかりのNode.js 0.4.0以上を要求するためか、ドキュメント通りにはインストールできなかったのでインストール方法を書いておきます。
前提
Node.js 0.4.0と、npm-0.2.18はインストール済とします。
TextareaConnectのインストール
Extensionのページから先にインストールしておいてください。
TextareaServerのインストール
npm install でgithubからインストールしろと書いてありますが、npm-0.2.18がNode.js 0.4.0のAPIに完全に対応していないのか、ライブラリをダウンロードする際に400エラーが発生します。
そのため、まずwgetなどで
https://github.com/epeli/TextareaServer/tarball/v0.1.1 からファイルをダウンロードします。(ファイル名が v0.1.1 となりますがtar.gzです)
次にnpmでダウンロードしたtar.gzからインストールします。
npm install ./v0.1.1
ここでnpmの罠があるのですが、フルパスにするか、
./をちゃんと付けてください。そうしないと、httpで取りにいこうとして失敗します。
TextareaServerの起動
たとえば、gvimで編集したい場合は以下のコマンドでサーバを起動します。
textareaserver --editor-cmd gvim
Chromeに拡張をインストール済なら、ここでサーバと接続が確立したというnotifyがでると思います。
使ってみる
textareaやtextinputで右クリックして「Edit in external editor」を選択しましょう。外部エディタが立ちあがりましたね!あとは、そこで編集して保存すればtextareaに反映されます。
既知の問題
gvimを使っているからかもしれませんが、ちょっと使っただけでもいろいろありました。
- 一度外部エディタを閉じたtextareaで、リロードなど無してもう一度開こうとしても開けない
- Gmailで使うとgvimが3つたちあがる
おすすめの使いかた
.xinitrcなどで「textareaserver --editor-cmd gvim &」としておくと、サーバの起動を気にしなくていいので便利です。
同様に.textareaserverの中もお掃除してあげるといいかもしれません。
It's All TextがないからFirefoxを使い続けている人は、これを期にChromeに乗り換えてみてはいかがでしょうか。