クロスプラットフォームエディタ「Editra」を試してみた

相変わらず Linux 環境でのエディタが定まらないので、評判の良い Editra というクロスプラットフォームなエディタを試してみた。

見た目

これは現在の秀丸で C 言語を表示した場合。

これが設定をいじった Editra。

表示に関する要求として:

  • 行番号表示は当然必要
  • 構文強調は当然必要
  • 空白文字の可視化
    • タブ文字が見えなければならない
    • 全角スペースも見えなければならない
    • 半角スペースは見えないほうがよい
    • NBSP は見えたほうがよい(重要ではない)
  • 改行文字の可視化
    • 各種改行がわかるように見えること
  • カーソル位置の行が強調される
  • コードブロックの展開・縮小はあれば望ましい(重要ではない)

という感じ。

Editra の不満点は:

  • 改行文字の表示がうるさすぎ
  • 全角スペースが表示されない
  • 半角空白は表示される必要はない

という感じ。

こちらは同じく設定をいじってある vim

不満点は:

  • 改行文字、空白文字の表示色がうるさい(変えられるのか?)
  • 入り乱れた改行コードを認識できない
  • 全角スペースが表示されない(表示させる方法はあると思う)

という感じ。

秀丸がメインエディタなので、それになれちゃっているから、というのもあるんだけど、表示を秀丸に近づけたい(控えめな改行、控えめな現在行、控えめなタブ文字、控えめな全角スペース表示など)。

機能

起動は遅い。起動時にスプラッシュが出るんだけど、要するにスプラッシュが必要なぐらい時間がかかる。起動されてしまえばサクサク動作する。

ファイルを複数編集する際には、ひとつのウィンドウでタブを切り替えるスタイルを採用している。ファイルAを見ながらファイルBを編集したい場合、タブの切り離しということはできないので、Editra をもうひとつ起動するか、上下左右に分割して編集する。

Editra は vi 互換モードが用意されているんだけど、僕はあまり価値を見出していない。vi のキーバインドが好きじゃないから他のエディタを探しているのであって。

Editra はプラグインで拡張可能で、標準でインストールされているプラグインを全部有効にしてみたのが以下の画面。

Editra は wxWidgetsPython ラッパーを使用して Python で書かれていて、プラグインPython で記述されている。Python 向けの PyShell というのも用意されていて、簡単に Python のコードを確認することができる。

コードブラウザは、C、PerlJavaScheme が解析されツリー構造が表示された。試した中で唯一 JavaScript が駄目だった。Editra 自身がサポートしている言語は Supported File Types | Editra を参照のこと。

コマンドランチャがプラグインで用意されていて、かつこのコマンドはファイルタイプ別にリストを切り替えられるようになっているため、たとえば Perl を書いているのに gcc コマンドが表示される、みたいなことがないように配慮されている。

プラグインは Editra 自身から直接ダウンロード・インストール可能。ただし数は少なめ。

プラグイン以外で特徴的な機能としては、コマンドモードがある。

上記はコマンドモードでディレクトリを移動しようとしているところ。

wq で保存終了だったり数字で行ジャンプだったり、e filename で指定ファイル編集だったりするのが vi チック。cd と e と、それらの補完が行えるタブキーがそれなりに便利。

以下は、欲しいけどない機能。

  • マクロ
  • キー操作記録・再生

もしかするとマクロは PyShell を使って、あらかじめ保存させておいた Python スクリプトが、エディタ内部に介入できるかも知れない。キー操作記録のようなものは存在しない。もしかしたらプラグインで存在するかも知れないけれど。

まとめ

まとめる前に書いておかなきゃならないのは、日本語入力との相性の悪さ。エディタ上でインライン入力ができないというのが問題としてある。日本語をバリバリ入力したい場合、非常に快適ではない。

という点を差し置いても、かなりよくできたエディタだと思う。Python で拡張可能な点は特に評価できる。