この記事はなに?
Micro というエディタが 最近注目を集めている 気がしますね。
ターミナル上で動作するエディタとしてむつかしく考えずに気軽に使えるかわいいやつです。
Micro には、簡易的ではありますが Plugin システムも用意されており、外部から機能を拡張していくことが可能です。
Micro 開発者自身も、 go-plugin や comment-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 と呼ぶと便利なのではないかなと個人的には思っています。