micro 使ってみた
◆ Windows 風のキーボードショートカットができる
◆ マウス操作もできる
◆ タブとスプリット機能がある
◆ プラグインで拡張もできる
◆ コマンド機能もある
◆ 高機能!!
◆ マウス操作もできる
◆ タブとスプリット機能がある
◆ プラグインで拡張もできる
◆ コマンド機能もある
◆ 高機能!!
Windows のエディタ風に使えると聞いて使ってみました
micro
micro なので nano よりひとつ上です
見た目はこんな感じです
タブが使えます
下側の画面の一番上に並んでるのがタブです
だいたいこんな感じです
Ctrl-A の全選択や Ctrl-X,C,V の切り取り コピー 貼り付け と使い慣れた操作ができていいですね
なんで Linux のスタンダードなエディタは vim や ecmacs と言った特殊すぎる操作なのか理解に苦しみます
これまでどうして micro みたいなエディタがなかったのかもすごく不思議です
Linux と Windows の文化の違いかと言うとそうでもなくて GUI ツールだとこういったショートカットは使えるものが多いです
このあたりも Windows のエディタと同じ使い勝手です
Ctrl-Z はあまり細かくなくて一気に 2 行ほど入力したあとに一度戻れば全部戻ってしまうことが多いです
その後に Ctrl-Y を押すと細かい粒度でちょっとずつ進めます
戻るときは一気に戻したいことが多いので Ctrl-Z では大雑把に戻して細かいところは Ctrl-Y で調整という感じなのでしょうか
慣れるとこれでいいのですけど 慣れるまでは Ctrl-Z 押しすぎたというときに Ctrl-Y 一回で戻れないのがちょっと不便です
未設定は半角スペースということみたいです
詳細なキー割当一覧の見方は後述の「コマンド」のところに書きます
ショートカットを意図せず押してしまって今何押したんだろう?と思うことがあるかと思います
micro ではショートカットキーの実行後にステータスバーに「コピーしました」や「貼り付けました」などが表示されるので 今何をやったかがわかります (もちろんメッセージは英語です)
ただし 全選択や改行入力などでは表示されずコピーや貼り付けや保存などの操作に限られるようです
ターミナルソフト側ですでにキーボードショートカットが使用されていたり byobu のようなソフト上で micro を起動してる場合です
例えば Chrome アプリの Secure Shell で ssh 接続していたとします
その場合 Chrome 上のアプリなので Chrome のショートカットキーが優先されます
Ctrl-t を押すと micro ではなく Chrome の新しいタブが開きます
他には byobu の起動中に micro を使うと Shift-↑ で範囲選択したはずなのに全体が上にスクロールされてしまいます
また byobu のエスケープシーケンスのキーは記号や数字を割り当てられなくて A-Z しか使えないようなので どこに設定しても micro のショートカットキーとかぶります
ターミナルでのマウス操作ってクライアント上のコピーとペーストだけに使って サーバで動くプログラムには何の影響も与えないものかと思ってました
ですが micro 上ではマウスでカーソルの移動や範囲選択ができます
マウスで範囲選択をすると自動でコピーされます
ただ 日本語が入ってくるとマウスの位置と選択されている位置がずれます
マウスに限らず上下キーでの移動でもずれてるので micro 自体の全角サイズの文字のサポートがまだ弱いのでしょう
あと タブのエリアをクリックすればタブの切り替えにも使えます
Ctrl-C を押してるから ついそのまま別のソフトに貼り付けたくなりますができません
micro 以外の通常の動きでは範囲選択するだけで自動で Windows 側のクリップボードにコピーする機能があっても micro の実行中は micro 側でマウス操作が管理されているので無効になっています
いろいろ試していて気づいたのですが Shift キーを入力中は micro 内でマウス操作をキャプチャしないようです
なので Shift を押しながら選択すれば Windows 側のクリップボードにコピーされます
ただし micro で制御されず 通常のただのテキストが並んでいるものとして選択されるので行数の列も選択されます
大抵の場合は行数までコピーされても邪魔でしょう
Ctrl-R で切り替えできるのでコピーするときには非表示にするのがおすすめです
また右クリックも Shift を押せば使えるようになります
通常時に右クリックからコピーや貼り付けができる機能があっても これも micro 上では使えなくなっています
これも Shift キーを押していれば micro でキャプチャされないので Windows のクリップボードから貼り付けなどが行なえます
micro を終了したわけではないので結果を見終わったら micro に戻れます
ファイル編集中にコマンド実行して結果をコピペしたいときに便利そうです
(まだ実用面ではつかったことない)
VSCode の Ctrl-Shift-P みたいのです
と打てばヘルプが表示されます
その中にも書かれているのですが 「help ***」 と *** のところに見たいヘルプを入力することで他のヘルプも見れます
がヘルプの一覧で
のように入力します
commands では help の他にどんなコマンドがあるのかを見ることが出来ます
ショートカットキーにあるファイルオープンや閉じるなどから デフォルトだとショートカットキーではできない画面分割などもあります
keybinding ではキーボードショートカットの一覧が見れます
タブは名前通りのタブです
Ctrl-T で開くこと出来て複数のタブがあると画面の上部にタブエリアが表示されます
マウスのクリックや Ctrl-] と Ctrl-\ で切り替えることが出来ます
アクティブなタブの名前は [ ] で囲まれます
タブエリアのスクロールは無いみたいでタブを作りすぎると見えなくなります
なぜかときどき名前の一部が黒く塗りつぶされるときがあります
スプリットは 1 つの画面内の分割機能です
byobu で Shift-F2 や Ctrl-F2 するようなものです
デフォルトではショートカットキーがないようなので Ctrl-E からコマンド入力で 「hsplit」 または 「vsplit」 で分割できます
個人的にサクラエディタでよく使っているショートカットキーの機能「カーソルから行末まで切り取り」がないので作ってみました
この機能って個人的にはすごくよく使っているのですが サクラエディタ以外のエディタや IDE でみたこと無いんですよね
この lua のコードを
に保存します
Ctrl 系は埋まっていたので Alt-K に設定しています
Alt-K を押すと行末までカットができます
コードみたままですが 範囲選択されていたら 行末までではなくて選択中を単純に切り取りになります
常に行末までカットでもよかったのですが サクラエディタの動きに合わせてみました
画面が崩れたり変な文字が入力されます
たぶんですが マウスの操作を micro 側で管理するために設定をいろいろ変更していて 正常に終了せずに ssh が切れてしまうと設定が通常状態に戻らないのでマウス操作をしたときに micro で制御するための特殊な文字が入力されてしまうのかなと思います
ターミナルソフト自体を再起動するしか直す方法わからなかったので つけたままにして接続が切れてしまうと毎回起動し直しています
大した手間でもないですが しなくていいならしたくないですからね
micro つけたままクライアント側の PC をスリープさせてしまわないように注意が必要です
milli は一体どんなエディタなのか nano から micro でここまで便利になったのなら milli は
期待が膨らみますね
micro
micro なので nano よりひとつ上です
見た目はこんな感じです
タブが使えます
下側の画面の一番上に並んでるのがタブです
インストール
Linux のパッケージマネージャは snap というものしか対応してないようなので直接ダウンロードします[user@fedora]~% wget https://github.com/zyedidia/micro/releases/download/v1.1.3/micro-1.1.3-linux64.tar.gz
[user@fedora]~% tar xf micro-1.1.3-linux64.tar.gz
[user@fedora]~% cd micro-1.1.3/
[user@fedora]~/micro-1.1.3% ls
LICENSE README.md micro
[user@fedora]~/micro-1.1.3% ./micro
キーボードショートカット
基本は Windows ですctrl-a で全部選択
ctrl-x で切り取り
ctrl-c でコピー
ctrl-v で貼り付け
ctrl-z で元に戻すundo
ctrl-y でやり直しredo
ctrl-k で行を切り取り
ctrl-f で検索
ctrl-n で次を検索
ctrl-p で前を検索
ctrl-l で指定行へジャンプ
ctrl-g でヘルプ
ctrl-r で行数表示切り替え
ctrl-t で新しいタブを開く
ctrl-] で左のタブを選択
ctrl-\ で右のタブを選択
ctrl-o でファイルを開く
ctrl-s で保存
ctrl-d で行を複製
ctrl-m で改行を入力
ctrl-i でタブを入力
ctrl-h でバックスペースを入力
ctrl-e でコマンド入力モード
ctrl-b でシェルコマンド入力モード
ctrl-w で次のスプリットへ移動
ctrl-q または ESC でタブやスプリットを閉じる
だいたいこんな感じです
Ctrl-A の全選択や Ctrl-X,C,V の切り取り コピー 貼り付け と使い慣れた操作ができていいですね
なんで Linux のスタンダードなエディタは vim や ecmacs と言った特殊すぎる操作なのか理解に苦しみます
これまでどうして micro みたいなエディタがなかったのかもすごく不思議です
Linux と Windows の文化の違いかと言うとそうでもなくて GUI ツールだとこういったショートカットは使えるものが多いです
範囲選択
また ショートカットではないですが shift+方向キーで範囲選択もできますこのあたりも Windows のエディタと同じ使い勝手です
戻ると進む
よく使うところでちょっと気になるものがあって Ctrl-Z と Ctrl-Y の戻ると進むの間隔ですCtrl-Z はあまり細かくなくて一気に 2 行ほど入力したあとに一度戻れば全部戻ってしまうことが多いです
その後に Ctrl-Y を押すと細かい粒度でちょっとずつ進めます
戻るときは一気に戻したいことが多いので Ctrl-Z では大雑把に戻して細かいところは Ctrl-Y で調整という感じなのでしょうか
慣れるとこれでいいのですけど 慣れるまでは Ctrl-Z 押しすぎたというときに Ctrl-Y 一回で戻れないのがちょっと不便です
未設定キー
「Ctrl-Shift-なにか」 を押すと半角スペースが出るようです未設定は半角スペースということみたいです
詳細なキー割当一覧の見方は後述の「コマンド」のところに書きます
ステータスバー
ステータスバーに何を実行したかが表示される機能もありますショートカットを意図せず押してしまって今何押したんだろう?と思うことがあるかと思います
micro ではショートカットキーの実行後にステータスバーに「コピーしました」や「貼り付けました」などが表示されるので 今何をやったかがわかります (もちろんメッセージは英語です)
ただし 全選択や改行入力などでは表示されずコピーや貼り付けや保存などの操作に限られるようです
micro 外の問題で使いづらいことも
Shift や Ctrl キーを使った操作がいろいろあるのですが micro 以外のせいで使いづらい部分もあったりしますターミナルソフト側ですでにキーボードショートカットが使用されていたり byobu のようなソフト上で micro を起動してる場合です
例えば Chrome アプリの Secure Shell で ssh 接続していたとします
その場合 Chrome 上のアプリなので Chrome のショートカットキーが優先されます
Ctrl-t を押すと micro ではなく Chrome の新しいタブが開きます
他には byobu の起動中に micro を使うと Shift-↑ で範囲選択したはずなのに全体が上にスクロールされてしまいます
また byobu のエスケープシーケンスのキーは記号や数字を割り当てられなくて A-Z しか使えないようなので どこに設定しても micro のショートカットキーとかぶります
マウス
キーボードの操作感だけでも十分でしたが micro のすごい部分はマウスで操作ができるところですターミナルでのマウス操作ってクライアント上のコピーとペーストだけに使って サーバで動くプログラムには何の影響も与えないものかと思ってました
ですが micro 上ではマウスでカーソルの移動や範囲選択ができます
マウスで範囲選択をすると自動でコピーされます
ただ 日本語が入ってくるとマウスの位置と選択されている位置がずれます
マウスに限らず上下キーでの移動でもずれてるので micro 自体の全角サイズの文字のサポートがまだ弱いのでしょう
あと タブのエリアをクリックすればタブの切り替えにも使えます
クリップボード
Ctrl-C や Ctrl-X でコピーや切り取り またマウスで範囲選択してコピーをするとクリップボードにデータを書き込むわけですが これは micro 内のものですCtrl-C を押してるから ついそのまま別のソフトに貼り付けたくなりますができません
micro 以外の通常の動きでは範囲選択するだけで自動で Windows 側のクリップボードにコピーする機能があっても micro の実行中は micro 側でマウス操作が管理されているので無効になっています
いろいろ試していて気づいたのですが Shift キーを入力中は micro 内でマウス操作をキャプチャしないようです
なので Shift を押しながら選択すれば Windows 側のクリップボードにコピーされます
ただし micro で制御されず 通常のただのテキストが並んでいるものとして選択されるので行数の列も選択されます
大抵の場合は行数までコピーされても邪魔でしょう
Ctrl-R で切り替えできるのでコピーするときには非表示にするのがおすすめです
また右クリックも Shift を押せば使えるようになります
通常時に右クリックからコピーや貼り付けができる機能があっても これも micro 上では使えなくなっています
これも Shift キーを押していれば micro でキャプチャされないので Windows のクリップボードから貼り付けなどが行なえます
コマンド
最近の高機能エディタでよく見るような コマンドラインの実行とエディタ内コマンドが micro にもありますシェルコマンド
Ctrl-B を押すと 下の方に 「$」 と表示されるので 「ls」 と打ってみるとファイルとフォルダのリストが見れますmicro を終了したわけではないので結果を見終わったら micro に戻れます
ファイル編集中にコマンド実行して結果をコピペしたいときに便利そうです
(まだ実用面ではつかったことない)
エディタコマンド
Ctrl-E を押すと 下の方に 「>」 と表示されてコマンドが入力できますVSCode の Ctrl-Shift-P みたいのです
help
と打てばヘルプが表示されます
その中にも書かれているのですが 「help ***」 と *** のところに見たいヘルプを入力することで他のヘルプも見れます
- tutorial
- keybinding
- commands
- options
- plugins
- colors
がヘルプの一覧で
help commands
のように入力します
commands では help の他にどんなコマンドがあるのかを見ることが出来ます
ショートカットキーにあるファイルオープンや閉じるなどから デフォルトだとショートカットキーではできない画面分割などもあります
keybinding ではキーボードショートカットの一覧が見れます
タブとスプリット
micro ではタブとスプリット機能がありますタブは名前通りのタブです
Ctrl-T で開くこと出来て複数のタブがあると画面の上部にタブエリアが表示されます
マウスのクリックや Ctrl-] と Ctrl-\ で切り替えることが出来ます
アクティブなタブの名前は [ ] で囲まれます
タブエリアのスクロールは無いみたいでタブを作りすぎると見えなくなります
なぜかときどき名前の一部が黒く塗りつぶされるときがあります
スプリットは 1 つの画面内の分割機能です
byobu で Shift-F2 や Ctrl-F2 するようなものです
デフォルトではショートカットキーがないようなので Ctrl-E からコマンド入力で 「hsplit」 または 「vsplit」 で分割できます
プラグイン
micro 自体は go 言語で作られてるようですが プラグインとして lua を使えます個人的にサクラエディタでよく使っているショートカットキーの機能「カーソルから行末まで切り取り」がないので作ってみました
この機能って個人的にはすごくよく使っているのですが サクラエディタ以外のエディタや IDE でみたこと無いんですよね
function cutRight()
local v = CurView()
if v.Cursor:HasSelection() then
v:Cut(false)
else
v:SelectToEndOfLine(false)
v:Cut(false)
end
end
MakeCommand("cutRight", "cut_right.cutRight")
BindKey("Alt-k", "cut_right.cutRight")
この lua のコードを
~/.config/micro/plugins/cut_right/cut_right.lua
に保存します
Ctrl 系は埋まっていたので Alt-K に設定しています
Alt-K を押すと行末までカットができます
コードみたままですが 範囲選択されていたら 行末までではなくて選択中を単純に切り取りになります
常に行末までカットでもよかったのですが サクラエディタの動きに合わせてみました
ssh 切れると
条件が限られていますが micro のダメな点として micro が起動中に ssh が切れるとマウスの動きがおかしくなります画面が崩れたり変な文字が入力されます
たぶんですが マウスの操作を micro 側で管理するために設定をいろいろ変更していて 正常に終了せずに ssh が切れてしまうと設定が通常状態に戻らないのでマウス操作をしたときに micro で制御するための特殊な文字が入力されてしまうのかなと思います
ターミナルソフト自体を再起動するしか直す方法わからなかったので つけたままにして接続が切れてしまうと毎回起動し直しています
大した手間でもないですが しなくていいならしたくないですからね
micro つけたままクライアント側の PC をスリープさせてしまわないように注意が必要です
micro の次は?
pico, nano, micro とくれば次のエディタは milli ですよねmilli は一体どんなエディタなのか nano から micro でここまで便利になったのなら milli は
期待が膨らみますね