cmder

(更新:2017/12 不要なタスクの削除、+ボタン押下時のデフォルトをbashにする、bashのホームディレクトリを設定する)
(作成:2017/09)

Linuxを経験すると解るけれど、Windows標準のコマンドプロンプトは痒い所に手が届かな過ぎて震える。せめてPuTTYでLinuxにリモート接続した時くらいステキに操作できるコンソールは欲しいよね。

Install on Windows 10

Download miniで十分だと思う。適当なフォルダに展開して Cmder.exe を実行する。

起動

設定

ウチのやってる設定を紹介。
設定項目が随分多いので、項目毎に設定理由を書いて表現します。

フォント他の見栄えを変更する

  • Main
    • Main console font: Consolas
    • Size: 14
    • Monospace: 未チェック
      日本語フォント選択時に表示が崩れるのを抑止できる。

ウィンドウサイズの記憶、履歴の増量、デスクトップ領域へのスナップ

  • MainSize & Pos
    • Console size and Window position
    • Show & store current window size and position: チェック
    • Auto save window size and position on exit: チェック
      ウィンドウサイズを記憶させる。
    • Console buffer height
    • Long console output: チェック, 10000
      履歴を増強できる。
    • Alignment
    • Snap to desktop edges: チェック
      ウィンドウがデスクトップ領域を越えないようスナップさせる。

スクロールバーを常に表示する

  • MainAppearance
    • Scrollbar
    • Show: チェック

タブを上に設置する

  • MainTab bar
    • Tabs (consoles, Far Manager panels/editors/viewers)
    • Tabs on bottom: 未チェック

自動アップデートを有効にする

  • MainUpdate
    • Update settings
    • Do automatic check onStartup: チェック

起動時のタスク(コンソールの種類)をbashにする

  • Startup
    • Supecified named task: {bash::bash}

不要なタスクの削除、+ボタン押下時のデフォルトをbashにする、bashのホームディレクトリを設定する

  • StartupTasks
    • Predefined tasks (command groups)
      不要なタスクを選択して削除する。
    • {bash::bash}
      • Default task for new console: チェック
        +ボタン押下時のデフォルトになる。
      • Commands (application, arguments, "-new_console" params) ...
        初期ディレクトリを /home/(アカウント名)にする。
        %windir%\system32\bash.exe -cur_console:p ~

-cur_console:p は vim 等で十字キーを使えるようにするためのおまじない。
不要なタスクの削除では、MinTTY入れてないし {bash::mintty} {bash::mintty as Admin} は消す。 {bash::bash as Admin} も、Bash on Windows使うのでsudoあれば良いから消す。
それぞれ選択して-を押す。

参考:

カラースキーマを見易くする

  • FeaturesColors
    • Schemes: Twilight
    • Standard colors
      • 2.: #839061 → #363636

個人的に黒字で見易いと思ったのは Twilight 。デフォルトの Monokai はコメントが藍色で非常に読み難い。。。
ただ、それでもスクリプトは見易いけれど ls 結果でディレクトリが見辛いとか色々あるので、Twilightを基準に微調整するのが良いと思う。

透明度の変更

  • FeatureslTransparency
    • Active window transparency: チェック
    • Use separate transparency value for inactive window: チェック

透明度は、Activeの場合にはかなり不透明( Opaque 90%強)、Inactiveの場合には割と透明( Opaque 80%)が良い感じ。触ってない時はウィンドウに隠れたものが多少見える方が作業効率良い。
なお%で設定できるわけではないけど、触った感じ「マウスクリック: 1/5ずつ推移」「十字キー操作: 0~255」な感じ。

ステータスバーを表示する

  • FeaturesStatus bar
    • Show status bar: チェック

Windowsコンソールのプロンプトを変更する

初期は λ だけど、これだとコマンド履歴時に表示が崩れるらしい。

%CMDER_DIR%\vendor\clink.lua をテキストエディタで修正する。
修正点は変数 lambda への代入部分。

---
 -- Setting the prompt in clink means that commands which rewrite the prompt do
 -- not destroy our own prompt. It also means that started cmds (or batch files
 -- which echo) don't get the ugly '{lamb}' shown.
---
function set_prompt_filter()

    ...

    if env == nil then
        --- lambda = "λ"
        lambda = ">"
    else
        --- lambda = "("..env..") λ"
        lambda = "("..env..") >"
    end
    clink.prompt.value = string.gsub(cmder_prompt, "{lamb}", lambda)
end

設定後の見た目

アクティブ時 非アクティブ時

好みは分かれると思うけれど、自分としては良い感じ。