在 PowerShell 6.0.1 中,开箱即用的行为是,当我Delete在插入符号不在行尾时按下,它会按预期删除插入符号上方的字符。但是,一旦我删除了该行的最后一个字符,它就会将插入符号移回一个位置。我觉得这很烦人,因为我不能再坚持Delete删除直到行尾。有没有办法改变它,使它的行为与我按下时一样EndDelete- 即它什么都不做?
我在 backspace 上看到Disable PowerShell beep,并认为也许还有我想要的设置,但在阅读PSReadLine cmdlet 上的文档后,我发现没有。
然后我查看了键绑定,然后跑去Get-PSReadLineKeyHandler检查Delete当前分配给什么,然后在代码库中搜索 DeleteCharPSReadLine,查看该函数的定义,并浏览类似的东西。我找到了DeleteCharOrExit,并运行Set-PSReadLineKeyHandler -Key Delete -Function DeleteCharOrExit它并没有退出“删除”进程 - 正如我从不清楚的文档评论中所假设的 - 它退出了PowerShell控制台进程......
我还发现了https://github.com/lzybkr/PSReadLine/issues/486,这表明它已被修复,但显然不是......
也许我需要注入一些自定义键绑定代码,如https://github.com/lzybkr/PSReadLine/blob/46d232c22ac3f24a95e32d773c594ad306dfc327/PSReadLine/SamplePSReadLineProfile.ps1#L257-L291?