ステップその1 プロンプトを黄色に
元ネタ、PowerShell: Change the Color of the Prompt より。Set-ExecutionPolicy でスクリプトの実行セキュリティ・ポリシーを変更しておくこと。詳しくはココ。
- %USERPROFILE%\Documents\WindowsPowerShell というディレクトリを作成。
※posh-gitがインストールされている環境では、既に自動で掘られている可能性あり。 - 1.にMicrosoft.PowerShell_profile.ps1 というファイルを生成。内容は下記。
function Prompt { $promptString = "PS " + $(Get-Location) + ">" # Custom color for Windows console if ( $Host.Name -eq "ConsoleHost" ) { Write-Host $promptString -NoNewline -ForegroundColor Yellow } # Default color for the rest else { Write-Host $promptString -NoNewline } return " " }(PowerShell: Change the Color of the Prompt のコードをそのまま引用。)
Get-ExecutionPolicy でスクリプトの実行セキュリティ・ポリシーが変更されているか確認。
$Profile と打ってPowerShell_profile.ps1 の位置を確認。
Windows PowerShell PS C:\Windows\System32\WindowsPowerShell\v1.0> $Profile C:\((USERPROFILE))\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1Microsoft.PowerShell_profile.ps1 が想定した位置なら問題ないはず。
【 ((USERPROFILE)) は使用PCの%USERPROFILE%に見立ててください。 】
ステップその2 さらにおしゃれなプロンプトと背景を
Winterdom -My PowerShell Prompt- よりMicrosoft.PowerShell_profile.ps1 のprompt関数を書き換え。
(コードは参照先からそのまま引用、先のコードはマルチラインコメントで括った。)
<# マルチラインコメント function Prompt { $promptString = "PS " + $(Get-Location) + ">" # Custom color for Windows console if ( $Host.Name -eq "ConsoleHost" ) { Write-Host $promptString -NoNewline -ForegroundColor Yellow } # Default color for the rest else { Write-Host $promptString -NoNewline } return " " } #> function prompt { # our theme $cdelim = [ConsoleColor]::DarkCyan $chost = [ConsoleColor]::Green $cloc = [ConsoleColor]::Cyan write-host "$([char]0x0A7) " -n -f $cloc write-host ([net.dns]::GetHostName()) -n -f $chost write-host ' {' -n -f $cdelim write-host (shorten-path (pwd).Path) -n -f $cloc write-host '}' -n -f $cdelim return ' ' } function shorten-path([string] $path) { $loc = $path.Replace($HOME, '~') # remove prefix for UNC paths $loc = $loc -replace '^[^:]+::', '' # make path shorter like tabs in Vim, # handle paths starting with \\ and . correctly return ($loc -replace '\\(\.?)([^\\])[^\\]*(?=\\)','\$1$2') }さらにVimのカラースキームで有名なMolokaiカラースキーム風Monokai =
Windows PowerShell Monokai Console Color Scheme
も入れる。
手順
- ダウンロード
GitでcloneもしくはZipダウンロード
git clone git://github.com/ntwb/posh-monokai.git
- 展開、使うファイルは次の3つ
HKCU-Console.reg
register-console-font.reg
Call posh-monokai.ps1
- フォント Adobe Source Code Proをインストール、.ps1ファイルを書き換えればAdobe Source Code Proでなくてもよい。
- レジストリのマージ HKCU-Console.reg
- レジストリのマージ register-console-font.reg
- Call posh-monokai.ps1 を%USERPROFILE%\Documents\WindowsPowerShell にコピー
- 6.のファイルをPowerShellで実行
入れると、こんな感じ。
PCによってカラースキームが上手く適用できないことがあったのでメモ。
手動によるバックグラウンド色の変更、手動によるフォントの変更により同様の配色設定は出来た。
手動によるフォントの変更方法はこちら。
幾つかのマシンで試した結果。
どうもバックグラウンドとフォントの一発改造はビルトインアカウントAdministrator でないと上手く適用されないみたい。この場合、先の手動設定でも同等の仕上がりにすることは可能。
PowerShell + ckw とう選択肢
PowerShellとckw(正確にはckw-modらしい)という組み合わせ。ckw.cfg
! ! ckw setting ! !Ckw*foreground: white !Ckw*background: midnightblue !Ckw*cursorColor: green !Ckw*cursorImeColor: red !Ckw*transp: 220 !Ckw*backgroundBitmap: ckw_background.bmp Ckw*title: ckw[cmd] !Ckw*exec: cmd.exe Ckw*exec: powershell.exe !Ckw*chdir: %HOMEDRIVE%%HOMEPATH% Ckw*scrollHide: no Ckw*scrollRight: yes Ckw*internalBorder: 1 Ckw*lineSpace: 0 Ckw*topmost: no Ckw*font: Terminus-ja !Ckw*font: Source Code Pro Ckw*fontSize: 14 Ckw*geometry: 132x32+0+0 Ckw*saveLines: 10000 !Ckw*color0: #000000 Ckw*color1: #60E9FF Ckw*color2: #008000 Ckw*color3: #008080 Ckw*color4: #800000 Ckw*color5: #800080 Ckw*color6: #808000 !Ckw*color7: #C0C0C0 !Ckw*color8: #808080 Ckw*color9: #0000FF Ckw*color10: #00FF00 Ckw*color11: #00FFFF Ckw*color12: #FFA500 Ckw*color13: #FF00FF Ckw*color14: #FFFF00 !Ckw*color15: #FFFFFF
フォントはTerminus-ja にしてみた。
注意点。今までのネイティブなコンソール改造と併用する場合は、先のMonokaiで変更したレジストリを一部削除する必要がある。消さないと背景が灰色のままでcfgでも変更できない。
HKEY_CURRENT_USER\Console
ここのColorTable**という名のキーを全て削除。(**は数字)
ユーザ毎のサブキーも含む。
![]() |
PowerSell + ckw |
- ウインドウズキー+方向キーやWinsplitRevolutionなどでウインドウの位置と大きさを瞬時に変えたとき、スクリーンのバッファが飛ぶ。
- PowerShellコマンドに限り、TABキーによる入力補完がネイティブコンソールよりも遅い。
- コピペが出来ない?右クリックでペーストは出来るようだけど・・・。ちなみに、ネイティブコンソールはAlt + Space + E → C でコピーAlt + Space + E → P でペースト。
![]() |
バッファ位置が飛んだ様子 |
右上と右下がPowerShell+改造ネイティブコンソール
それではPowerShell + Cygwinはどうか?と思ったんだけど。Cygwinのシェル内からはPowerShellは呼び出せず、呼び出し途中で止まってしまった。個人的にはshellがPowerShell限定ならPowerShell+改造ネイティブコンソールでも十分だと思った。
更新
2014/03/15 1st2014/03/16 2nd ckwによる考察を追記
2014/03/21 3rd Monokaiの説明を更新