はじめに
主にWSLを使用してUbuntu上で開発をしていますが、たまにWindows側でPowerShellを使用して開発をする場合もあります。そんな時、いつもshellを使用している感覚でショートカットやコマンドを入力すると思った動作ができず、地味にフラストレーションがたまります。
この記事では、PowerShellをbashに近い操作感で使うための設定を紹介します。
PowerShell 7のインストール
まず、PowerShell 7をインストールします。Microsoft Storeから「PowerShell」と検索してインストールできます。

標準でインストールされているWindows PowerShell(バージョン5.1)とは別物で、PowerShell 7はクロスプラットフォーム対応のモダンなバージョンです。後述するPSReadLineの機能も充実しているため、PowerShell 7を使うことをおすすめします。
筆者は利用していませんが、Linuxでも使用できるようです。
プロファイルを作成する
PowerShellには起動時に自動で読み込まれるプロファイルがあります。bashでいう .bashrc や .bash_profile に相当するものになります。
プロファイルのパスは以下のコマンドで確認できます。
$PROFILEプロファイルファイルが存在しない場合は、以下のコマンドで作成します。
New-Item -Path $PROFILE -ItemType File -Force作成したら、任意のエディタで開いて内容を編集します。
プロファイルの内容
現在は以下の内容をプロファイルに記述しています。
Set-PSReadLineKeyHandler -Key "Ctrl+w" -Function BackwardKillWord
Set-PSReadLineKeyHandler -Key "Ctrl+u" -Function BackwardDeleteLine
Set-PSReadLineKeyHandler -Key "Ctrl+a" -Function BeginningOfLine
Set-PSReadLineKeyHandler -Key "Ctrl+e" -Function EndOfLine
Set-PSReadLineKeyHandler -Key "Ctrl+p" -Function PreviousHistory
Set-PSReadLineKeyHandler -Key "Ctrl+n" -Function NextHistory
Set-PSReadLineOption -PredictionViewStyle ListView # 候補の表示スタイルをリストビューに設定
Set-PSReadLineKeyHandler -Key Tab -Function Complete # タブキーでコマンド候補を表示
Set-Alias touch New-Itemキーバインドの設定
Set-PSReadLineKeyHandler を使うことで、bashライクなキーバインドを設定できます。
| キー | 動作 |
|---|---|
Ctrl+w | カーソル前の単語を削除 |
Ctrl+u | カーソルより前の行全体を削除 |
Ctrl+a | 行頭に移動 |
Ctrl+e | 行末に移動 |
Ctrl+p | 前のヒストリーに移動 |
Ctrl+n | 次のヒストリーに移動 |
候補の表示
Set-PSReadLineOption -PredictionViewStyle ListView を設定すると、コマンド入力中に候補をリスト形式で表示してくれます。

タブキーの補完も Complete 関数に割り当てることで、bashと同じような補完動作になります。

エイリアスの設定
Set-Alias touch New-Item で touch コマンドを使えるようにしています。bashに慣れていると touch でファイルを作りたくなるので、設定しておくと便利です。
まとめ
プロファイルを設定することで、PowerShellをbashに近い操作感で使うことができます。特にキーバインドの設定は、普段からbashを使っている人にとっては違和感を減らすことができるのでおすすめです。


コメント