diff --git a/bin/install.ps1 b/bin/install.ps1 index 72cda8c..0aa87d8 100644 --- a/bin/install.ps1 +++ b/bin/install.ps1 @@ -26,8 +26,15 @@ Install-Module -Name posh-git Write-Output "Pscx" Install-Module -Name Pscx -AllowPrerelease Write-Output "z" -Install-Module -Name z +Install-Module -Name ZLocation +Write-Output "PSFzf" Install-Module -Name PSFzf -RequiredVersion 2.5.10 +Write-Output "Latest PSReadLine" +Install-Module -Name PSReadLine -Force # Override default version to get the latest one +Write-Output "CompletionPredictor" +Install-Module -Name CompletionPredictor + + # install scoop if(!(Get-Command scoop -ErrorAction SilentlyContinue)) { diff --git a/dotfiles/pwsh/README.md b/dotfiles/pwsh/README.md index fcd08ab..70c7973 100644 --- a/dotfiles/pwsh/README.md +++ b/dotfiles/pwsh/README.md @@ -2,6 +2,7 @@ some notable features ## Key-Bindings +- `F2` to toggle InlineView and ListView of predictions - tab completion like fish - `Ctrl + D` to exit - `Ctrl + G` to Invoke-FzfTabCompletion @@ -31,4 +32,4 @@ Especially useful for piping into linux commands like `less` - chezmoi - git - winget -- chocolatey \ No newline at end of file +- chocolatey diff --git a/dotfiles/pwsh/powershell_profile.ps1 b/dotfiles/pwsh/powershell_profile.ps1 index f1e3b7d..ea5f655 100644 --- a/dotfiles/pwsh/powershell_profile.ps1 +++ b/dotfiles/pwsh/powershell_profile.ps1 @@ -1,14 +1,19 @@ # ============================================================== # PSReadLine Settings # ============================================================== -Import-Module PSReadLine -Set-PSReadLineOption -PredictionSource History +Import-Module PSReadLine # >= 2.2.2 +Import-Module CompletionPredictor +Set-PSReadLineOption -EditMode Windows +Set-PSReadLineOption -PredictionSource HistoryAndPlugin # require PowerShell ≧ 7.2 and PSReadLine ≧ 2.2.2 Set-PSReadlineOption -HistoryNoDuplicates Set-PSReadLineOption -DingTone 880 # beep frequency -Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord # like fish +Set-PSReadLineKeyHandler -Chord "Ctrl+u" -Function BackwardKillInput # like emacs +Set-PSReadLineKeyHandler -Chord "Ctrl+p" -Function PreviousHistory # like emacs +Set-PSReadLineKeyHandler -Chord "Ctrl+n" -Function NextHistory # like emacs +Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function AcceptSuggestion # like fish Set-PSReadLineKeyHandler -Chord "Tab" MenuComplete Set-PSReadLineKeyHandler -Chord "Ctrl+d" DeleteCharOrExit -Set-PSReadLineKeyHandler -Chord "Ctrl+g" -ScriptBlock { Invoke-FzfTabCompletion } +Set-PSReadLineKeyHandler -Chord "Ctrl+g" -ScriptBlock { Invoke-FzfTabCompletion } -BriefDescription "Fzf tab completion" -Description "Invoke fzf tab completion. Need some input first." # PsFzf Options # 'Ctrl+t' for provider path, 'Ctrl+r' for reverse history