Conemu で PowerShell コンソールを快適に
普段 git は基本 Source Tree 時々 TortoiseGit と使い分けつつで利用していたのですが、Source Tree がやたら遅くて普段使いにはしんどくなってきました。
そこで CUI 環境、それも PowerShell コンソール上で git を使うことにしたのですが、標準のままだと PowerShell コンソールはちょっとイマイチなんですよね。
で、ちょっと探してみた結果 Conemu というのがよさげで、数日試しに使ってみた感じ問題なさそうなのでしばらく常用してみることにしました。
PowerShell コンソールへの不満
- tab 使えない
- 自分にとってこれが一番辛いです。。。
- フォント汚い
- 色も汚いですしね。。。
- さらに、私は頻繁にフォントを変えるので GUI で簡単に変更できたら嬉しいですね
- ウィンドウを透過させたい
- かっこいいじゃないですか!
Conemu
そして Conemu。不満が全部解決しました。すばらしい。
簡単に紹介しておくと、Conemu はコンソールエミュレータで、PowerShell コンソール以外にもコマンドプロンプトや git bash なども利用できます。
tab 使えたりウインドウ透過できたりはもちろん嬉しいのですが、特にすばらしいのが、カラースキーマが標準で複数用意されていることです。その日の気分で簡単にカラーリングを変えられます。
Conemu で設定したこと
- フォントの変更
- Main > Main console font
- ウインドウサイズの自動保存
- Main > Size & Pos > Auto save window size and position on exit
- ウインドウが一つしか開かないようにする
- Main > Appearance > Generic > Single Instance mode
- いちいち確認のポップアップが出ないように
- Main > Confirm > 全部 Disable
- タブ選択順を見た目通りに
- Main > Tabs > Lazy tabs switch
- 起動時に PowerShell コンソールが開くように
- Startup > Startup options > Specified named task > PowerShell
- ウインドウ透過
- Features > Transparency > Active window transparency
設定に関しては以下のサイトを大変参考にさせていただきました。ありがとうございます。
ConEmu 突っ込んだら Git for Windows の Git Bash がカッコよくなった
ConEmu でコマンドプロンプトをタブ化する
PowerShell の設定
ついでに PowerShell コンソールの設定もちゃんとやるようにしました。
- PsGet
- これは当然ですね!
- PSReadLine
- ctrl + l でクリア最高です
- ctrl + space で補完可能一覧が出るのおいしい!いちばん好きなモジュールです!
- posh-git
- まぁ、git 使うので
- ↓ を参考にさせていただきました
- WindowsでGitを使う時はposh-gitを入れよう
- UNIX ライクなプロンプトに
- ↓ を参考にさせていただきました
- PowerShell に Git と Mercurial のブランチ名を表示する
- 上記記載のままだと posh-git と競合したので、そこだけ修正してあとは丸パクり。。。
posh-git とプロンプトの変更は競合してしまって、普通にやるとカレントディレクトリがウインドウに表示されませんでした。ので、profile に ↓ の通り書いてやります。
function prompt { #カレントディレクトリを取得 $idx = $pwd.ProviderPath.LastIndexof("\") + 1 $cdn = $pwd.ProviderPath.Remove(0, $idx) #プロンプトをセット Write-Host "$env:UserName@$env:UserDomain" -NoNewLine -ForegroundColor Magenta Write-Host ":" -NoNewLine -ForegroundColor White Write-Host $cdn -NoNewLine -ForegroundColor Green #git-posh のコマンドレット実行 Write-VcsStatus #カレントディレクトリをウィンドウタイトルにする #Write-VcsStatus の後にやらないと、posh-git に上書きされる (Get-Host).UI.RawUI.WindowTitle = "Windows PowerShell " + $pwd return "> " #$env:UserName + "@" + $env:UserDomain + ":" + $cdn + "> " }
まとめ
最終的にこんな感じに!めっちゃおしゃれになりました。