2

全部!

我注意到从 v2 升级到 v3 后,Powershell,或者更具体地说,在 Powershell 中粘贴和完成制表符,在我的机器上要慢得多。我打开procmon看看发生了什么,却发现每次尝试使用制表符完成或粘贴任何内容都会触发 Powershell 来查找主题中提供的文件的各种排列。我的 $PATH 中有一些网络文件夹,每次粘贴某些内容时遍历这些文件夹似乎并不理想。

似乎这个文件允许 Powershell 表现得更像 Bash。虽然这绝对是太棒了,我期待在不久的将来滥用这个功能,有没有办法配置 Powershell,使它只尝试在一个目录中找到这个文件?

谢谢!

4

2 回答 2

0

PSConsoleHostReadLine 实际上是一个函数。如果 PoSH 找不到方法、别名或任何其他具有该名称的可执行文件,它会退回到它的默认“熟”读行,并进行编辑等。

要重新定义它,请创建一个函数:

function PSConsoleHostReadline {
    [Console]::Readline()
}

如所写,此方法禁用编辑等。编写你自己的疯狂魔法来做你想做的任何事情。

我猜它正在搜索所有额外的位置,因为 Powershell 3 具有“模块自动加载”,它检查 ENV:PSModulePath 中所有已知位置的功能,并自动加载包含所述方法的模块。

于 2013-07-12T21:03:15.417 回答
0

这是 V3 中的一个疏忽。V4 将仅搜索函数或别名 - 在查找 PSConsoleHostReadline 时不会搜索外部 exe。

如果您正在寻找类似 bash 的体验 - 请查看https://github.com/lzybkr/PSReadLine

于 2013-10-23T17:42:51.553 回答