【浸り学習②】普段の操作感で扱えるターミナルエディタの「micro」を試用して、vimmerの横に並んだ気分に浸る

- 新人・浅い経験である私にとって、常にまとわりつく「劣等感・焦り・恐怖」を、ありとあらゆるサービスを使った「簡単払拭学習」で打ち消して浸るだけの記事第二弾。
- もうすぐ一年を超えようとしている技術者生活であるが、新卒よりも「初心感」を大事にしようとしている、「頼り」という言葉からかけ離れた先輩像。
- 今回は、独自操作を覚えることなく、普段使い慣れたGUIのような操作性で扱うことができるターミナル型エディタの「micro」を試用して、vimmerやEmacserの近くにいけたような気分に浸ることにしよう。

## 概要
- ターミナルで動作するテキストエディタ。
- Go言語で実装されていて、MacやWindows、Linuxでも動作するクロスプラットフォーム。
- 複雑な設定を必要とせず、インストールが簡単。
- 普段GUIで使い慣れた操作感での扱いが可能。
- ターミナルエディタ独自の操作性がないため、使いやすい。
- [公式サイト](https://github.com/zyedidia/micro)

## 特徴
### インストールの容易さ
- 外部ファイルや依存等がなく、[バイナリファイル](https://www.gigafree.net/faq/word/binary.html)をダウンロードして設置するのみ。

### クロスプラットフォーム
- MacやWindows、LinuxのどのOSでも動作する
- ※[公式によると](https://github.com/zyedidia/micro)、Windowsではいくつかの修正すべきバグが存在する。

### GUIでのマウス操作が可能
- 範囲選択はもちろん、単語選択(ダブルクリック)や行選択(トリプルクリック)といった、様々なサポートがある。

### 使い慣れたキーボード操作
- 普段WindowsやMac等で使用しているキーバインド(ショートカット)で操作することができる。
- また、vim等の入力モードがないため、すぐ編集をはじめられる。

### 分割やタブ機能も備わっている
- ページの分割機能や、複数ファイル編集等のタブ機能も備わっている

### マクロ
- 操作記録のキーマクロ機能も備わっている。

### 構文の強調
- 様々な言語の強調表示機能を備えている。
- [対応言語](https://github.com/zyedidia/micro/tree/master/runtime/syntax)

### カラーテーマが豊富
- 標準のカラーテーマだけでなく、豊富なテーマから、自由に簡単に設定することができる。

### プラグインが豊富
- エディタ拡張のプラグイン機能(Lua言語で定義)が備わっている。
- 数がどんどん増えていっている。

## 画面
- 下記のような画面で、ターミナル上でのエディタ操作が可能。

![micro](https://user-images.githubusercontent.com/44114228/55666879-9c752000-588f-11e9-80f3-c14f0b4269d4.png)

- 下記のような、micro上での検索機能も、使い慣れたショートカットで行うことができる。

![image](https://user-images.githubusercontent.com/44114228/55667733-57ef8180-589b-11e9-8b0e-b31642399e66.png)

- 下記のように、エディタ起動時の、ターミナル操作も、使い慣れたショートカットで行うことができる。

![image](https://user-images.githubusercontent.com/44114228/55667770-cdf3e880-589b-11e9-9c59-a7fdfedb57ca.png)

## インストール
### リリースページからのダウンロード方法
- [こちらのリリースページ](https://github.com/zyedidia/micro/releases)へいき、任意のバージョンをダウンロードする。
- ダウンロード後、ターミナル(コマンドプロンプト)を開く。
- 下記のコマンドをうち、バージョンが表示されれば、完了。

```console
$ ~/Downloads/micro-X.X.X/micro --version
```

### パッケージマネージャーからのダウンロード方法(推奨)
#### Windows
※事前にWindows用のパッケージマネージャーである[Chocolatey](https://chocolatey.org/)が入っていることを確認する。  
※入っていなければ、[こちらを参考](https://www.itcowork.co.jp/blog/?p=4764)にして導入する。

- コマンドプロンプトを管理者画面で開き、下記のコマンドをうち、インストール。

```console
$ choco -v
$ choco install micro
```

#### Mac
※事前にWindows用のパッケージマネージャーである[HomeBrew](https://brew.sh/index_ja)が入っていることを確認する。  
※入っていなければ、[こちらのサイト](https://brew.sh/index_ja)のインストール欄を参考にして導入する。
- ターミナルを開き、下記のコマンドをうち、インストール。

```console
$ brew install micro
```

#### Linux
※事前にWindows用のパッケージマネージャーである[snap](https://snapcraft.io/)が入っていることを確認する。  
※入っていなければ、[こちらのサイトを参考](https://news.mynavi.jp/article/20180227-snap_howto/)にして、インストール。

- 下記のコマンドをうち、インストール

```
$ snap install micro --classic
```

#### その他
- その他のインストール手順は、[公式のインストール手順を参考](https://github.com/zyedidia/micro)に導入。

## 基本手順
### 使用環境
- 今回の例として、下記の環境とインストール手順で行なっている。
    - OS : Mac
    - インストール手順 : Homebrewでの導入
- ※パッケージマネージャーで導入している場合は、基本的に操作は変わらない、

### バージョン確認
- ターミナルを開き、下記のコマンドをうち、バージョンを確認。

```console
$ micro --version

Version: X.X.X
Commit hash: XXXX
Compiled on XXXX
```

### エディタ起動
- 下記のコマンドをうち、microエディタを起動する。
- ファイルパスは、「micro ファイルパス名」のように指定する。

```console
$ mkdir test
$ echo hello world > hello.txt
$ micro test/hello.txt
```
- 下記のように起動したら、完了。

![image](https://user-images.githubusercontent.com/44114228/55668522-5c6d6780-58a6-11e9-97cc-0baeca55490f.png)

### 基本編集操作
- 下記のショートカット(キーバインド)で、編集の基本操作をGUIと同様の操作性で行える。
    - コピー : `Ctrl + C`
    - 貼り付け : `Ctrl + V`
    - 戻る : `Ctrl + Z`
    - 保存 : `Ctrl + S`

### コマンド実行とタブ表示
- エディタ上で、「`Ctrl + E`」を押して、コマンド入力画面を出す。
- コマンド入力画面で、`vsplit ファイル名`と入力して、新規タブ画面を水平方向で表示。

![image](https://user-images.githubusercontent.com/44114228/55668829-ca675e00-58a9-11e9-8ac2-4c1b63396164.png)

### ターミナル操作
- エディタ上で、「`Ctrl + B`」を押して、シェルコマンド入力画面を出す。
- 下記のようにコマンドをうち、エディタ起動時でも、ターミナル上でコマンドを実行することができる。
- ※実行後、ターミナルに遷移するが、一時的なもののため、Enter押下でエディタに戻る。

![image](https://user-images.githubusercontent.com/44114228/55669199-7d868600-58af-11e9-9093-5a5ba4297a8c.png)

### テーマ変更
- エディタ上で、「`Ctrl + E`」を押して、コマンド入力画面を出す。
- コマンド入力画面で、`set colorscheme テーマ名`のような形式で入力して、任意のテーマに変更。
- テーマ一覧は[こちら](https://github.com/zyedidia/micro/blob/master/runtime/help/colors.md)。

- 下記、`set colorscheme solarized`と入力した時の、テーマ画面。

![image](https://user-images.githubusercontent.com/44114228/55668956-04d1fa80-58ac-11e9-9855-e6ec76a14e41.png)

### エディタ終了
- エディタ上で、「`Ctrl + Q`」を押して、終了。

## 基本的なキーバインドやコマンド
### キーバインド
- 基本的なキーバインドは下記。

|キー|内容|
|:---:|:---:|
|Ctrl + C|コピー|
|Ctrl + D|行のコピー|
|Ctrl + V|貼り付け|
|Ctrl + D|全選択|
|Ctrl + S|保存|
|Ctrl + F|検索|
|Ctrl + N|次の検索結果への移動|
|Ctrl + P|前の検索結果への移動|
|Ctrl + Z|戻る|
|Ctrl + Y|やり直し|
|Ctrl + O|ファイルを開く|
|Ctrl + E|コマンドモード|
|Ctrl + B|シェルコマンドモード|
|Ctrl + U|キーマクロの開始と終了|
|Ctrl + J|キーマクロの実行|
|Alt + G|キーバインド一覧表示|

- [その他のキーバインド一覧はこちら](https://github.com/zyedidia/micro/blob/master/runtime/help/keybindings.md)

### コマンド
- 基本的なコマンドは下記。

|コマンド|内容|
|:---:|:---:|
|quit|ファイル閉じる|
|save|保存|
|vsplit ファイル名|タブの水平分割|
|hsplit ファイル名|タブの垂直分割|
|replace "置換元" "置換先"|置換|
|log|操作履歴|
|pwd|作業フォルダのパス表示|
|help|ヘルプページ表示|

- [その他のコマンド一覧はこちら](https://github.com/zyedidia/micro/blob/master/runtime/help/commands.md)

## プラグイン
### 基本操作
- プラグインの操作も、`Ctrl + E`でコマンド入力画面を開き、操作コマンドを入力して行う。
- プラグインの検索やインストール等の基本操作コマンドは下記。

|コマンド|内容|
|:---:|:---:|
|plugin search プラグイン名|検索|
|plugin install プラグイン名|インストール|
|plugin list|インストール済みプラグイン一覧|
|plugin update|インストール済みプラグインの更新|
|plugin remove プラグイン名|インストール済みプラグインの削除|
|plugin available|インストールできるプラグイン一覧表示|

### 一覧
- [microのプラグイン一覧はこちら](https://github.com/zyedidia/micro/blob/master/runtime/help/plugins.md)

## まとめ
- 今回はmicroエディタの試用ということで、ターミナル上での作業をほぼ使い慣れた操作感で行なっていることに、現実世界では姿を見せない、乱舞状態になりながら記事を書く。
- 「これでvim等の利用者のように、一目置いてくれるだろう」という、途方も無い夢物語を語っていることに、決して気づこうとしない。
- 試用のみで全てを把握していないため、慣れるための利用回数増加をはかることにしよう。

## 参考
- https://qiita.com/tadsan/items/f0747f09ea5ce863f2ec  
→こちらの記事を参考にしました。大変お世話になりました。