Windows + Cmderでカッコよくて見やすいターミナル、コンソール環境を作る(めんどくさがり屋な人向け)

たぶん、Cmderに関しては、他にもいろいろ記事あると思います。
この記事は**基本的には自分用の覚書**です。

このまま設定するとこんな感じの見た目になります。

![terminal01.png](https://qiita-image-store.s3.amazonaws.com/0/211666/517841bc-0a89-3e1b-8296-3bd598bcbe68.png)



## 以下のような構成にしてるつもり

* 手順を淡々と記載する
* Powerlineも使える環境にする
* カッコよくて見やすいターミナル、コンソールを目指す
* Cmder、Powerlineの説明とかは特になし

> カッコよくて見やすくすること目的にしてますが、他にオススメ設定あれば、コメントで教えてください。


# 1. Cmderのダウンロードと解凍、配置

[Cmderのサイト](http://cmder.net/) ([http://cmder.net/](http://cmder.net/))から、
**[Download Full]**を探してダウンロードします。

zip形式なので解凍します。
**実行ファイル等は、圧縮ファイル内のルートパスに入っているので、
解凍ソフトやオプションによっては、のちのち面倒なので、
"`cmder`"フォルダ作って、その中に解凍するか、同様のオプションで解凍するのがよいです。**

"`cmder`"フォルダは、今後、一生置くかもしれない場所(パス)に置きましょう。
**パスは途中にスペース文字なし、それほど深くないパスが無難だと思います。**


# 2. Cmderの実行と基本設定

## 2.1. まずは、実行

"`cmder`"フォルダ内の"`Cmder.exe`"をダブルクリックなどで実行します。
(環境によっては拡張子は表示されないので、アイコン付きのアプリケーションを実行。)

## 2.2. 基本設定を進める

開いたウィンドウの左上の、**λ**のアイコンを左クリックして、
**[Settings]**をクリックします。

**※ 注意 ※ : Settingsウィンドウで、[Reset]はしないようにします。
ここでリセットするとConEmuのデフォルトに戻って面倒なことになります。**


### 2.2.1. ウィンドウサイズを設定する

Settingsウィンドウの
[General] > [Size & Pos]に移動します。

[Window size]というカテゴリがあるので、設定していきます。
個人的なオススメは、[Normal]を選んで、

* Width: `70%`
* Height: `90%`

くらいの設定。
サイズは、デスクトップ領域に対する%で指定できます。
**その場合は、`%`をつけるのを忘れずに！**


### 2.2.2. 各種色を設定する

画面の色は、見た目のカッコよさ、見やすさには重要です。
個人的には、黒と白の対比はハッキリと、
その他の色は明るめに出る発色が好みなので、それに向けて調整していきます。
※ この辺は好みの問題。以下の設定は、私の個人的な好み。

Settingsウィンドウの
[Features] > [Colors]に移動します。

[Schemes]では、`<Cobalt2>`が私の好みに近いので、これを選択します。
ここから、色が明るめに発色されるように微調整します。

以下は、私の設定値(暫定)です。

> 発色は、利用しているディスプレイやドライバ、カラープロファイル等にもよって、
> 違ってくるので、利用進めているうちに微調整はしたくなってくるかもしれません。

| 色の横の番号     | 10進のRGB値     |
| :------------- | :------------- |
| 0.       | 0 0 0       |
| 1/4.       | 115 115 255       |
| 2.       | 30 213 62       |
| 3/6.       | 57 220 249       |
| 4/1.       | 255 51 51       |
| 5.       | 255 115 255       |
| 6/3.       | 251 231 119       |
| 7.       | 255 255 255       |
| 8.       | 46 46 46       |
| 9.       | 128 173 242       |
| 10.       | 97 228 78       |
| 11.       | 0 221 221       |
| 12.       | 247 60 69       |
| 13.       | 255 51 128       |
| 14.       | 255 241 115       |
| 15.       | 238 238 238       |


あとで、微調整する用に、自分のカラー設定を[Schemes]の１つとして保存しておきます。
この場合は、`<Cobalt2>`と表示されている部分を上書きして、`MyColor`などの名前にして、
入力した名前の右側の[Save]ボタンを押します。


### 2.2.3. エクスプローラのコンテキストメニュを設定する

コンテキストメニュの設定をしておくと、
任意のフォルダを右クリックして、[Cmder Here]などで、
そのフォルダのパスでCmderを開けるようになります。

Settingsウィンドウの
[Integration]に移動します。

[Menu Item:]に、`Cmder Here` などコンテキストメニュとして表示したい文字列を入力します。

[Command:]部分は、

```
{cmd} -cur_console:n
```

と表示されていると思いますが、

```
{cmd::Cmder} -cur_console:n
```

に修正します。

[Icon file:]は、そのままだとConEmuのアイコンになりますが、それでもいい場合は、そのままで。
Cmderのアイコンにしたい場合は、`cmder`フォルダ内の`icons`フォルダに、各種アイコンがあるので、
アイコンファイルのフルパスを指定します。

ここで、[Register]ボタンを押すと、コンテキストメニュに追加されます。

> 自分のやっていることに完全に責任が持てる大人である場合は、同様の手順で、
> "Cmder Here as Admin"などの名前で、
> "{cmd::Cmder as Admin} -cur_console:n"などのCommandを登録すると、
> 管理者権限でCmderを開く用のコンテキストメニュの追加もできます。
> 通常は、"Cmder Here"を使って、管理者権限が必要な場合のみ"Cmder Here as Admin"を選択するとかになるかと。
> 安全な設定ではないので、管理者権限のコンテキストメニュは作らずに、
> 必要に応じて、"runas"コマンドで実行するなどの方が、安全性は高いかも。

> コンテキストメニュで開いたタブのアイコンを指定したい場合は、
> {cmd::Cmder} -cur_console:nC:"アイコンのフルパス"
> を指定することになります。
> 例) {cmd::Cmder} -cur_console:nC:"C:\icons\myicon.ico"
> ※ `:nC:`の部分の`C:`は、Cドライブのドライブ文字とは**無関係**なので注意。
> アイコンがDドライブにあれば、`-cur_console:nC:"D:\icons\myicon.ico"`のように指定します。


### 2.2.4. ここで一旦保存。

Settingsウィンドウの
[Save Settings]を押して、ここまでの設定を保存します。


# 3. フォントとPowerlineの設定

## 3.1. とりあえず、必要なものを入手

フォントとPowerline用のスクリプトは、GitHubから入手できます。
**公開してくれている方、どうもありがとう！！**

* Powerline化する用のLuaスクリプトなど

https://github.com/AmrEldib/cmder-powerline-prompt

* Powerlineのパッチ適用済みのMyricaフォント

プログラミング向けに非常に視認性の高いMyricaフォントに、
Powerlineのパッチ等があたったフォントです。
(Myricaのバージョンはやや古いかもしれないので、それが受け入れられない人は、別途自分でビルドするとよいです。)

https://github.com/pomutemu/milly


Cmderを[Full Download]したので、Git for Windowsの環境がすでに利用できます。
curlコマンド等も利用できるので、その辺使って入手するとよいです。

やや無駄が多いですが、もう面倒なので、ここでは、GitでShallow cloneするやりかたでやってみます。
(100MB程度ダウンロードすることになるかも。)

まずは、入手用に適当なフォルダを作って、
そのフォルダ上で、右クリックしたら、さきほど作った、`Cmder Here`コンテキストメニュをクリックします。

あとは、以下のコマンドで、それぞれshallow cloneします。

``` shell
git clone --depth 1 https://github.com/AmrEldib/cmder-powerline-prompt
```

``` shell
git clone --depth 1 https://github.com/pomutemu/milly
```


## 3.2. Powerlineの適用

shallow cloneした、`cmder-powerline-prompt`ディレクトリ内の、
拡張子が `.lua`のファイルをすべて、
`cmder`フォルダ内の `config`フォルダにコピーします。

デフォルト設定から変更したい場合は、
`_powerline_config.lua.sample`ファイルを、`_powerline_config.lua`に名前変更して、
`config`フォルダにコピーします。
簡単な設定変更の場合は、このファイルを編集します。
Git利用時もフォルダ名をフルパスで表示したい場合などは、
`plc_prompt_type = "smart"`を、`plc_prompt_type = "full"`にするとよいです。



## 3.3. フォントの適用

shallow cloneした、`milly`ディレクトリ内の、
`Myrica-MM.ttf`ファイル(拡張子が付くかは設定による)を右クリックして、
[インストール]を選択してフォントをインストールします。

インストール後に、Cmderを開いて、
開いたウィンドウの左上の、アイコンを左クリックして、
**[Settings]**をクリックします。

[General] > [Fonts]に移動して、
[Main console font]と[Alternative font]で、
`Myrica MM`を選択します。

[Size]を見やすいサイズに設定したら、[Save Settings]で設定完了です。




# 4. vi使う方へ

vi使いたい方は、`%HOME%`フォルダに、`_vimrc`を置いて、エンコーディング指定しておくと幸せになれるかもしれません。

※ すでに、`%HOME%\_vimrc`か`%HOME%\.vimrc`が存在する場合は、
上書きすると既存設定が上書きされるので注意が必要です。

Cmderを開いて、以下のコマンドでテンプレートをコピーします。
(テンプレート不要な場合は、コピーの手順は省略可)

``` shell
cp "%CMDER_ROOT%\vendor\git-for-windows\etc\vimrc" "%HOME%\_vimrc"
```

あとは、コピーした、`_vimrc`を開いて編集するだけです。

``` shell
vi "%HOME%\_vimrc"
```


例えば、以下くらいは設定しておくとよいかもです。

``` shell
set number
set encoding=utf-8
set fileencodings=utf-8,cp932
```




# 5. もっと色んな状況でカッコよく表示したい場合

`config`フォルダのluaスクリプトでいろんなことができます。
頑張れば、もっとカッコよくオシャレに表示できます！


## 5.1. Pythonのvenvなどを使う場合

私は、普段はPython使いというわけではないですが、
仕事上、Anacondaなどを使う機会があって、
Cmder + Powerlineの場合、そのままだと、Pythonのvenvや、AnacondaのEnvironmentが、
そのままでは分からなくなってしまうみたいです。
(普段はIDE使ってるので不便ってほどではないですが。)

環境変数の`VIRTUAL_ENV`や、`CONDA_DEFAULT_ENV`などが存在する場合は、
Powerlineのプロンプト上に情報を追加するようなluaスクリプトを作ると表示できるようになります。

`powerline_prompt.lua`や`powerline_npm.lua`あたりを参考に、
luaまったく知らなくても気合で作ると、案外簡単に作れたりします。
(**※ まともなプログラマは気合で作ってはいけません。**)

コードはGitHubで公開しています。
https://github.com/thrzn41/cmder-powerline-python-venv

こんな感じになります。

![pyvenv01.png](https://qiita-image-store.s3.amazonaws.com/0/211666/7301feb8-d2e6-6468-9b99-11ded99c0d18.png)