Micro editor の Plugin Manager について( EditorConfig Plugin の導入)


この記事はなに?

Micro というエディタが 最近注目を集めている 気がしますね。
ターミナル上で動作するエディタとしてむつかしく考えずに気軽に使えるかわいいやつです。

Micro には、簡易的ではありますが Plugin システムも用意されており、外部から機能を拡張していくことが可能です。
Micro 開発者自身も、 go-plugincomment-plugin などをインストール可能なプラグインとして公開しています。

そこで、とりあえず EditorConfig の中の人のひとりとして、 micro 用の Plugin を作り公開しました。
editorconfig-micro

せっかくなので、 micro における Plugin の導入方法等を軽くメモしておきます。

Plugin をつかう

Micro には Plugin Manager が組み込まれており、以下のような一通りのことができるようになっています1

  • Web からのプラグインの自動ダウンロード・インストール
  • インストールされたプラグインを一覧表示
  • プラグインの削除
  • など

Plugin Manager を使ったインストール

Micro の Plugin Manager は、現代的なエディタらしく(?)、 Plugin を Web から自動的にダウンロード・配置することができます。

一例として editorconfig Plugin をインストールしてみます。
CommandMode から以下を実行してください。

> plugin install editorconfig

CommandMode はデフォルトでは Ctrl+e にバインドされています。なので、上記のコマンドは「 Ctrl+e plugin install editorconfig Enter 」とタイプして実行できます。)

  • editorconfig Plugin は micro v1.1.3 以降が必要なので、なんらかの方法でインストール・アップグレードしてください
    • Homebrew ではすでに提供されています
  • CommandMode ではタブ補完が効きます。迷ったらとりあえずバシバシ叩きましょう

EditorConfig Plugin が自動でダウンロード・展開され、 micro editor を一度終了するよう促されます。
Micro を再起動すれば、それ以降は EditorConfig Plugin が有効になっているはずです。

  • 通常の多くの plugin ではこれでインストール手順は終わりです。しかし、 EditorConfig Plugin の動作には、 Plugin 本体に加えいずれかの EditorConfig Core プログラムが必要です。
  • 例えば、 Editorconfig Core C などをインストールしてください。

Plugin のリスト・削除・更新

インストールした時と同じようなやり方で削除なども可能です。

インストールされた Plugin の一覧を表示

> plugin list
出力
    --> plugin list
----------------
The following plugins are currently installed:

editorconfig (0.1.1)
autoclose (0.0.0-unknown)
ftoptions (0.0.0-unknown)
linter (0.0.0-unknown)
----------------

Plugin の削除

> plugin remove editorconfig

Plugin の更新

> plugin update editorconfig

ひとつ以上の Plugin を指定するとそれをアップデート、省略して plugin update とだけ書くと全ての Plugin をアップデートします。

Channel

Micro の Plugin Manager は、 channel と呼ばれる JSON ファイルから利用可能なプラグインを探します。
プラグインレポジトリのようなもの、と考えれば多くの人には分かりやすいかもしれません。

Micro はデフォルトでは 公式の plugin-channel だけが 有効になって います。 editorconfig Plugin もこの公式の channel に追加されているので、すぐにインストールが可能になっています。
あまり変更することはないかもしれませんが、野良 Channel を使いたくなった場合などは、以下のように設定ファイル ($HOME/.config/settings.json) の pluginchannels に URL を追加することで利用可能になります。

{
    "pluginchannels": [
        "https://raw.githubusercontent.com/micro-editor/plugin-channel/master/channel.json",
        "https://github.com/10sr/editorconfig-micro/raw/master/channel.json"
    ]
}

Plugin をかく

開発方法についてはものすごくざっくりと書いておきます。

Plugin の記述言語としては、 Lua が用いられています。
また、その Lua の実行環境としては Golang で書かれた Lua 実装である gopher-lua が使われています。

開発方法については、ひとまず公式ドキュメントを読んでみるとよいです。
https://github.com/zyedidia/micro/blob/master/runtime/help/plugins.md
あとは、既存の Plugin の作りを眺めていくとなんとなく分かってくるかなと思います。

なんかいい感じの Plugin ができたら plugin-channel に PR 出すといいかもしれません。
先に解説したとおり、野良チャンネルを使って提供していくことも可能です。

余談

このエディタは micro という名前ですが、 micro って一般名詞過ぎてなんだかよく分からない・検索しにくくありませんか。

公式サイトが https://micro-editor.github.io という URL なので、 micro editor と呼ぶと便利なのではないかなと個人的には思っています。


  1. 上記解説記事 の時点では Plugin Manager はなかったようです。おそらく書かれた直後くらいに導入されたっぽいです