Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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

terminal01.png

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

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

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

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

Cmderのサイト (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]の1つとして保存しておきます。
この場合は、<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します。

git clone --depth 1 https://github.com/AmrEldib/cmder-powerline-prompt
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を開いて、以下のコマンドでテンプレートをコピーします。
(テンプレート不要な場合は、コピーの手順は省略可)

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

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

vi "%HOME%\_vimrc"

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

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.luapowerline_npm.luaあたりを参考に、
luaまったく知らなくても気合で作ると、案外簡単に作れたりします。
(※ まともなプログラマは気合で作ってはいけません。)

こんな感じになります。

pyvenv01.png

こちらは、別記事にする、かつ、スクリプトは公開予定です。

※ luaまったく分からずに、気合で作っただけなので、今のとこ利用はオススメしませんが、こんな感じです。
powerline_pyvenv.luaなどの名前で、configフォルダに置きます。
まじめに検証等したら、GitHubなどに上げようと思います。

--Python venv symbol. Used to indicate the name of a venv or CONDA environment.
if not plc_prompt_venvSymbol then
    plc_prompt_venvSymbol = "🐣"
end


-- Extracts only the folder name from the input Path
-- Ex: Input C:\Windows\System32 returns System32
---
local function get_folder_name(path)
    local reversePath = string.reverse(path)
    local slashIndex = string.find(reversePath, "\\")
    return string.sub(path, string.len(path) - slashIndex + 2)
end


-- * Segment object with these properties:
---- * isNeeded: sepcifies whether a segment should be added or not. For example: no Git segment is needed in a non-git folder
---- * text
---- * textColor: Use one of the color constants. Ex: colorWhite
---- * fillColor: Use one of the color constants. Ex: colorBlue
local segment = {
  isNeeded = false,
  text = "",
  textColor = colorWhite,
  fillColor = colorMagenta
}

---
-- Sets the properties of the Segment object, and prepares for a segment to be added
---
local function init()
  local envVal = clink.get_env("VIRTUAL_ENV")

  if envVal then
    envVal = get_folder_name(envVal)
  else
    envVal = clink.get_env("CONDA_DEFAULT_ENV")
  end

  if envVal then
    segment.text = " "..plc_prompt_venvSymbol..envVal.." "
    segment.isNeeded = true
  else
    segment.isNeeded = false
  end
end 

---
-- Uses the segment properties to add a new segment to the prompt
---
local function addAddonSegment()
  init()
  if segment.isNeeded then 
      addSegment(segment.text, segment.textColor, segment.fillColor)
  end 
end 

-- Register this addon with Clink
clink.prompt.register_filter(addAddonSegment, 57)
thrzn41
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした