我想知道是否有其他人注意到,在PSReadLine中安装PowerShell模块似乎破坏了本机功能,它允许我们在使用箭头向上查找和执行之前的命令(Windows提示符也具有此功能)之后,通过后续命令进行向下箭头操作。
如果我们只是向上箭头而不执行任何操作的话,箭头向下的效果很好,但是如果我们箭头向上说出3条命令并执行它,那么之后的箭头就不会像我所期望的那样产生#2和#1命令,相反,它的作用就好像我们已经在历史缓冲区的末尾了一样。好像我们的“历史位置”在使用箭头向上执行之前的命令后不再保存。
通过一些测试,我设法找到了PSReadLine作为罪魁祸首。当我从会话中删除这个模块时,上述功能可以正常工作。
这是在Windows10 v20H2、PSv5.1 (以及许多其他操作系统版本一直追溯到Win7 SP1,以及其他PS版本一直到/包括PSv7.1)上复制的。问题显然似乎与模块有关。
通过搜索,我只找到了另一条提到以下内容的线程:
...but没有决议。我有点惊讶这上面没有更多的东西。
有人知道是什么原因造成的吗?我是否可以在PSReadLine中更改一些配置以使旧的行为恢复?
任何帮助都是非常感谢的!
发布于 2021-02-10 22:46:24
最简单的解决方法是暂时禁用PSReadLine和Remove-Module PSReadLine。然后可以使用Install-Module PSReadLine重新启用它。
在我看来,这是一个有意的设计选择,但您应该考虑将其作为PSReadLine的GitHub:https://github.com/PowerShell/PSReadLine上的一个问题来报告。提供一个清晰的、一步一步的、可重复的行为序列,说明你所看到的行为和你期待的行为。我的猜测是,他们选择了模仿其他shell的行为来建模PSReadLine,所以我不希望得到太多的支持。不管怎样,你可能会得到一个解释。
https://stackoverflow.com/questions/66144873
复制相似问题