WindowsでCmderでVSCodeでPowerline

唐突に windows で powerline が使いたくなり、powershell に入れようとしたら上手くいかなかった。
しかし cmder では上手く適用できたので、VSCode のターミナルとして使えるようになるまでの手順を残す。

Cmder のインストール

Cmder | Console Emulatorから Mini 版をダウンロードする。VSCode のターミナルとして使う為、Full 版の充実したコンソールは必要ないという判断。

ダウンロードしたら解凍して適当な場所に配置する。今回はC:\Program Files\cmder_miniに配置した。

以下注意点が 2 点

  • C:\Program Files (x86)に配置しようとしたら、\cmder_mini\vendor\lib\lib_base"" の使い方が誤っています。という警告が出た。別の場所がいいのだろう。
  • cmder_miniディレクトリをコピーして配置したら起動に管理者権限を要求されたが、移動して配置したらそのまま起動できた。移動して配置しよう。

初回起動でこのような画面が立ち上がる。

初回起動時の画面

Powerline のインストール

AmrEldib/cmder-powerline-prompt: Custom prompt for Cmder on Windowsからリポジトリを zip でダウンロードしてくる。(clone でも良いよ)

そして以下のファイルをC:\Program Files\cmder_mini\config\へコピーする。

  • powerline_core.lua
  • powerline_git.lua
  • powerline_prompt.lua

再度起動すると、Powerline が適用されているのが分かる。

Powerline適用後の画面

ただまだフォントが化けているが、気にせず進める。

Powerline-font のインストール

Powerline のフォントは色々あるようだが、今回はpowerline/fonts: Patched fonts for Powerline users.を使う。

これも zip でダウンロードし、PowerShell で.\install.ps1を実行する。そうするとダウンロードしたフォントが全て Windows にインストールされる。時間が掛かるのでしばし待とう。

VSCode のターミナルを Cmder にする。

cmder のインストールディレクトリ(C:\Program Files\cmder_mini)に以下の内容でvscode.batというバッチを作成する。

@echo off
SET CMDER_ROOT=C:\Program Files\cmder_mini
"%CMDER_ROOT%\vendor\init.bat"

そして VSCode のsettings.jsonに以下設定を追加する。

"terminal.integrated.shell.windows": "C:\\WINDOWS\\sysnative\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K", "C:\\Program Files\\cmder_mini\\vscode.bat"]

ターミナルのフォント設定

VSCode のsettings.jsonで設定する。

"terminal.integrated.fontFamily": "Source Code Pro for Powerline"

先にインストールしたフォントで**** Powerlineという名前のものならなんでもいいだろう。ただ Cmder のコンソールで表示した時と VSCode のターミナルで表示した時では、同じフォントでも表示がかなり違ったので注意(?)が必要。

VSCodeのターミナル

イイ感じになってきた

カーソルの位置が一文字ずれる問題

プロンプトがλだと、入力の 1 文字目のカーソルと入力位置がずれる問題がある。なのでプロンプトを変えてしまえばいい。

powerline_core.luaの 113 行目、plc_prompt_lambSymbolを修正することで変えられる。

if not plc_prompt_lambSymbol then
plc_prompt_lambSymbol = "λ" -- ここを別の文字に変える
end

プロンプト修正後のターミナル

OK!


ちょっと追記:

プロンプトを > に変更したら、node の REPL を実行した時にプロンプトが変わらず分かり辛かった。> ではなく $ のほうがいいかも


環境

  • Windows 10
  • VSCode 1.25.1
  • cmder_mini 1.3.6

参考