WindowsのPowerShellをLinuxのBashっぽく操作
Git Shell(GitHub Windowsと一緒にインストールされる)を叩いていて、Ctrl-AやCtrl-Pの操作が出来なくてイラッとしたときの覚書。
cmd用のClinkみたいなものが欲しい。
環境: Windows 8.1, PowerShell 4.0
< 2016/05/08 追記 >
Windows 10になってモジュール形式で簡単にインストールできるようになった。
参考サイト: PowerShellGet を触ってみよう - tech.guitarrapc.cóm
まずはどんなモジュールがあるか検索
PS> Find-Module
使い方が分からないのでヘルプを使えるようにする
PS> Get-Help Find-Module
他にどんなコマンドがあるか確認
PS> Get-Command -Module PowerShellGet
PSReadLineをインストール
PS> Install-Module -Name PSReadLine
Install-Module : Administrator rights are required to install modules in 'C:\Program Files\WindowsPowerShell\Modules'.
Log on to the computer with an account that has Administrator rights, and then try again, or install 'D:\Documents\Wind
owsPowerShell\Modules' by adding "-Scope CurrentUser" to your command. You can also try running the Windows PowerShell
session with elevated rights (Run as Administrator).
言われたとおりオプションを付けてみる
PS> Install-Module -Name PSReadLine -Scope CurrentUser
既にモジュールがあると言われた場合はフォルダごと削除する。
確認
PS> Get-InstalledModule
あとは下の手順にあるようにMicrosoft.PowerShell_profile.ps1を作る。
Git ShellでエラーになったのでGit Shell上でも同じようにインストールする。
PS> Install-Module -Name PSReadLine -Scope CurrentUser
早くBashが使えるようになってほしい。。。
PowerShellはモジュールという機能で拡張できるみたい
インストール手順
- README.mdに書いてあるようにコンパイル済みファイルをダウンロード。
- 解凍して、C:\Users\[User]\Documents\WindowsPowerShell\modules\PSReadlineに置く(モジュール用PATHが通っているから)
- C:\Users\[User]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1を作成。下記のように記述
Import-Module PSReadLine
Set-PSReadlineOption -EditMode Emacs
これでGit Shellを起動し直せばキーバインドが使えるはず
あー、快適。。。
Git Bashよりコピー(Enter)、ペースト(右クリック)、スクロールが便利。
TortoiseGitよりGit Shellを使うようになった。Google Cloud SDK Shellを起動するよりGit Shellでgcloudを叩いた方が便利。
今度は普通にPowerShellを起動するとエラー
. : File D:\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is di
sabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135
170.
At line:1 char:3
+ . 'D:\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
下記サイトを参考に
PowerShellを管理者権限で起動
C:> Set-ExecutionPolicy RemoteSigned
「Y」を入力して有効に。
< Related Posts >