Добавить в корзинуПозвонить
Найти в Дзене
Windows 11, 10, etc

▶️ #PowerShell: как включить отдельную команду в историю ввода, не выполняя ее

Это третий эпизод мини-сериала про фишки модуля PSReadLine. Ранее в канале: 🔹 Автодополнение команд из истории ввода (п. 3) 🔹 PowerShell: как исключить отдельную команду из истории ввода Однажды в чате PowerShell я упомянул, что обещал опубликовать трюк с исключением команд из истории ввода. И сдержал обещание↑ На это Василий Гусев заметил, что у него есть обратная задача! Процитирую его сообщение с незначительными правками. О, еще можешь наоборот написать, чтобы команда не выполнилась, но попала в историю ;) Я себе сделал Ctrl+Shift+H для этого. Бывает, пишешь команду блабла и тут -Credentials. И понимаешь, что креды хорошо бы в отдельный объект сунуть, потому что еще понадобятся. И что, стирать команду, делать $cred = get-credentials... потом набирать? Или перемотать в начало, поставить #, жать Enter, а потом из истории и убирать #? Ctrl+Shift+H заносит набранную в данный момент строку в историю и стирает её. Сделал что нужно и пару раз жмёшь ⬆️ Код Василий прислал скриншотом

▶️ #PowerShell: как включить отдельную команду в историю ввода, не выполняя ее

Это третий эпизод мини-сериала про фишки модуля PSReadLine. Ранее в канале:

🔹 Автодополнение команд из истории ввода (п. 3)

🔹 PowerShell: как исключить отдельную команду из истории ввода

Однажды в чате PowerShell я упомянул, что обещал опубликовать трюк с исключением команд из истории ввода. И сдержал обещание↑ На это Василий Гусев заметил, что у него есть обратная задача! Процитирую его сообщение с незначительными правками.

О, еще можешь наоборот написать, чтобы команда не выполнилась, но попала в историю ;) Я себе сделал Ctrl+Shift+H для этого.

Бывает, пишешь команду блабла и тут -Credentials. И понимаешь, что креды хорошо бы в отдельный объект сунуть, потому что еще понадобятся. И что, стирать команду, делать $cred = get-credentials... потом набирать? Или перемотать в начало, поставить #, жать Enter, а потом из истории и убирать #?

Ctrl+Shift+H заносит набранную в данный момент строку в историю и стирает её. Сделал что нужно и пару раз жмёшь ⬆️

Код Василий прислал скриншотом - наверное, с рабочей машины. Но вам не придётся делать OCR. Добавьте этот код в свой профиль:

# Save line to history but don't execute

Set-PSReadLineKeyHandler -Key Ctrl+Shift+H `

-BriefDescription SaveInHistory

-LongDescription "Save current line in history but do not execute" `

-ScriptBlock {

param($key, $arg)

$line = $null

$cursor = $null

[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState(

[ref]$line,

[ref]$cursor

)

[Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)

[Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()

}

Напомню, что речь здесь про модуль PSReadLine и его историю ввода. В Get-History это не попадет.

Знаете другие полезные фишки модуля PSReadLine? Поделитесь ими в обсуждении и попадите в телевизор ✌