普通すぎるエディタ「micro」

f:id:y_d:20160902012300p:plain

go言語(termbox-goではなくtcell)で実装されたmicroというターミナルベースのテキストエディタの version1.0 がリリースされたようで、試しにちょっとだけつかってみたのですが、なかなか使い心地がよいです。

というわけで(個人的に)使い心地が(いい意味で逆に)普通すぎるエディタ「micro」の紹介になります。

github.com

microの特徴

microはターミナルベースのエディタであるものの、マウス操作がサポートされていたり、GUIアプリケーション風のキーバインドが設定されていたりと、いたって普通なGUIテキストエディタを使っているかのように直感的な使い心地を実現しているのが最大の特徴だと思います。

  • いけてる特徴
  • 残念なところ
    • 日本語表示は問題なさそうだが、日本語入力すると挙動がおかしくなる
    • 使うターミナルによってちょっと動きがおかしいことが多々ある

多少残念なところもあるけど、 Nightly build があったりするようで、今後の改善に期待が持てそうです。

ダウンロード

  1. とりあえず使ってみるだけなら、ここのリリースページからダウンロード(macOSなら micro-1.0.1-osx.tar.gz )。
  2. ダウンロードしたら ~/Downloads/micro-1.0.1/micro にコマンドがあるはずなので、そのようにターミナル上で叩くとmicroエディタが起動する(macOSの場合)。
  3. ~/Downloads/micro-1.0.1/micro /path/to/file.txt のようにコマンドに続けてファイルパスを指定すればそのファイルが開かれる。

使い方

メモレベルだけど具体的な使い方は以下の通り。

基本操作

  1. 矢印キーもしくはマウスクリックでキャレット移動
  2. Shit+矢印キー もしくはマウスドラッグで領域選択
  3. マウスホイールで表示領域の移動(キャレットはそのまま)
  4. Vimの入力モードのようなものはなく、キーボード操作でそのままテキストが入力される
  5. esc で何かしらの入力待ち状態をキャンセル
  6. 終了したいときはCtrl-q 。編集内容を保存しなくて良ければ続けて y を入力で終了。

※マウスを使った操作を行う際は「マウスレポーティングを許可」する(macOSのターミナルの場合)

f:id:y_d:20160902011222g:plain

コピペ

  1. 下記のいずれかで領域を選択
    • Shif+矢印キー
    • Ctrl-a
    • マウスでテキストをドラッグ
  2. Ctrl-c でコピー ( Ctrl-x で切り取り)
  3. Ctrl-v で貼り付け

ヒストリー

  1. Ctrl-z で戻す
  2. Ctrl-y でやり直し

検索

  1. Ctrl-fFinding: と聞かれるので、検索したい文字を入力してEnter(正規表現も使える)
  2. Ctrl-n で次にマッチする箇所に移動
  3. Ctrl-p で前にマッチする箇所に移動
  4. esc で検索を抜ける

置換

  1. Ctrl-e でコマンド入力欄表示
  2. replace {{検索文字列}} {{置換文字列}} とうつ

例: replace "A" "B"

コマンド実行

  1. Ctrl-e でコマンド入力欄表示
  2. run {{コマンド}} とうつ

例: run ls

テーマの変更

  1. Ctrl-e でコマンド入力欄表示
  2. set colorscheme {{テーマ名}}

例: set colorscheme monokai

使えるテーマは今のところ下記がある

default
simple
solarized
solarized-tc
atom-dark-tc
monokai
gruvbox
zenburn
bubblegum

f:id:y_d:20160902011208g:plain

画面分割

  1. Ctrl-e でコマンド入力欄表示
  2. vsplit or hsplit を入力して Enter(既存ファイルを開くときは vsplit file.txtといった感じ)
  3. アクティブのパネルを切り替えるのは Ctrl-w もしくはアクティブにしたい領域をクリック
  4. Ctrl-q でアクティブ状態の分割パネルを閉じる
  5. 編集済みのタブを閉じる際は、yで編集内容破棄、nでキャンセル、sで保存(ファイル名入力)

※タブと組み合わせると、挙動がおかしくなる?

f:id:y_d:20160902011211g:plain

タブ

  1. Ctrl-t で新規タブ作成&新しいタブを表示 (画面上部にタブができる)
  2. Ctrl-¥ で次のタブに移動
  3. Ctrl-] で前のタブに移動
  4. 上部タブをクリックでもタブ移動可能
  5. Ctrl-q でタブを閉じる
  6. 編集済みのタブを閉じる際は、yで編集内容破棄、nでキャンセル、sで保存(ファイル名入力)

※画面分割と組み合わせると、挙動がおかしくなる?

f:id:y_d:20160902011204g:plain

ファイルオープン

  1. Ctrl-o 押下
  2. 編集中データがあればyで編集内容破棄、nでキャンセル、sで保存(ファイル名入力)
  3. File to open: と聞かれるのでファイル名を入力(絶対パス相対パスを入力。入力中にTab押下で入力補完が効く)

ファイル保存

  1. Ctrl-s 押下
  2. Filename: と聞かれるのでファイル名を入力(絶対パス相対パスを入力。入力中にTab押下で入力補完が効く)

行番号

  1. Ctrl-r で行番号表示、非表示切り替え

行番号に移動

  1. Ctrl-l の後に行番号入力で、その行に移動

タブサイズ変更

  1. Ctrl-e でコマンド入力欄表示
  2. set tabsize 4 ※4は例

※ファイルの拡張子ごとに設定することも可能らしい

ソフトタブ

※tabキー押下で、半角スペースを入力する設定

  1. Ctrl-e でコマンド入力欄表示
  2. set tabstospaces on で有効化
  3. set tabstospaces off で無効化

タブの可視化

  1. Ctrl-e でコマンド入力欄表示
  2. 例: set indentchar >

※設定を解除する方法がわからないが、 ~/.config/micro/setting.json を編集して indentchar" " を設定すると良さそう。

その他オプション変更

  1. Ctrl-e でコマンド入力欄表示
  2. set {{オプション名}} {{設定値}}
  3. ~/.config/micro/setting.json に設定が書き出される
  4. ファイルの拡張子ごとに設定することも可能らしい

詳しくは下記 https://github.com/zyedidia/micro/blob/master/runtime/help/options.md

その他キーバインディング

下記に詳しく書いていある https://github.com/zyedidia/micro/blob/master/runtime/help/keybindings.md

さいごに

以上のように、普通のGUIテキストエディタのように使えるので、学習コストが低いエディタだと思います。 機会があれば使ってみてはいかがでしょうか。