Обновление PSReadLine
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 2s

This commit is contained in:
2025-08-16 18:47:29 +03:00
parent 5877dd00ba
commit 86506f744a

View File

@@ -2,7 +2,7 @@
## Установка Powershell ## Установка Powershell
По умолчанию в Windows установлен устаревший Windows PowerShell. Установить новый Powershell можно по [инструкции в репозитории](https://github.com/PowerShell/PowerShell?tab=readme-ov-file#get-powershell). По умолчанию в Windows установлен устаревший Windows PowerShell с кучей багов и отсутствующей поддержкой базовых операторов (`&&`, `|`, `||`). Установить новый Powershell можно по [инструкции в репозитории](https://github.com/PowerShell/PowerShell?tab=readme-ov-file#get-powershell).
```powershell ```powershell
winget search Microsoft.PowerShell winget search Microsoft.PowerShell
@@ -18,10 +18,21 @@ winget install --id Microsoft.PowerShell --source winget
} }
``` ```
## Обновление PSReadLine
## Мой Powershell profile На старых версиях PSReadLine, который используется под капотом PowerShell, возникают различные баги: [иногда не печатаются заглавные буквы](https://github.com/PowerShell/PowerShell/issues/10794#issuecomment-542319327), [не работает `Ctrl + C` при запуске с русской раскладкой](https://github.com/PowerShell/PSReadLine/issues/1393#issuecomment-2065423282). Так что стоит сразу его обновить.
Открыть файл настроек Powershell: Закрыть открытые PowerShell, в том числе внутри VS Code или других IDE. Запустить `cmd` от имени администратора и выполнить:
```cmd
"C:\Program Files\PowerShell\7\pwsh.exe" -noprofile -command "Install-Module PSReadLine -Force -SkipPublisherCheck -AllowPrerelease"
```
Баг с `Ctrl + C` исправлен частично. Если открыть PowerShell с русской раскладкой, то вместо `Ctrl + C` всё равно будет появляться буква `с`, но теперь достаточно переключить раскладку на английскую и всё заработает.
## Мой PowerShell profile
Открыть файл настроек PowerShell:
```powershell ```powershell
code $profile # или notepad $profile code $profile # или notepad $profile
``` ```
@@ -69,7 +80,7 @@ Import-Module DockerCompletion
# Более удобное автодополнение # Более удобное автодополнение
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
# Перемещаться по истории использования команды с помощью стрелочек # Удобный поиск по истории команд с помощью стрелочек
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
``` ```
@@ -80,21 +91,6 @@ Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-ExecutionPolicy RemoteSigned Set-ExecutionPolicy RemoteSigned
``` ```
## Баг с uppercase
В какой-то момент заглавные буквы просто перестают печататься в Powershell, это означает, что нужно обновить `PSReadLine`.
Запустить Powershell от имени администратора и выполнить:
```powershell
Install-Module -Name PowerShellGet -Force
```
Перезапустить от имени администратора и выполнить:
```powershell
Install-Module PSReadLine -AllowPrerelease -Force
```
## Крутой аналог grep - ripgrep ## Крутой аналог grep - ripgrep
[Скачать](https://github.com/BurntSushi/ripgrep/releases/) релиз для винды и добавить в PATH [Скачать](https://github.com/BurntSushi/ripgrep/releases/) релиз для винды и добавить в PATH