2

全て!

v2 から v3 にアップグレードした後、Powershell、またはより具体的には、Powershell 内での貼り付けとタブ補完が、マシン上で非常に遅くなることに気付きました。procmonを開いて何が起こっているのかを確認しましたが、タブ補完または何かを貼り付けようとするたびに、Powershellがトリガーされ、件名で提供されたファイルのさまざまな順列が検出されることがわかりました. $PATH にいくつかのネットワーク フォルダーがあり、何かを貼り付けるたびにそれらのフォルダーを移動するのは理想的ではないようです。

このファイルにより、Powershell は Bash のように動作するようになります。これは非常に素晴らしいことであり、近いうちにこの機能を悪用することを楽しみにしていますが、このファイルを1 つのディレクトリでのみ検索するように Powershell を構成する方法はありますか?

ありがとう!

4

2 に答える 2

0

これは V3 での見落としでした。V4 は関数またはエイリアスのみを検索します。PSConsoleHostReadline を検索するときに、外部の exe を検索しません。

bash のようなエクスペリエンスをお探しの場合は、https://github.com/lzybkr/PSReadLineをご覧ください。

于 2013-10-23T17:42:51.553 に答える
0

PSConsoleHostReadLine は実際には関数です。PoSH がその名前のメソッド、エイリアス、またはその他の実行可能なものを見つけられない場合、編集などを行ってデフォルトの「調理された」readline にフォールバックします。

それを再定義するには、関数を作成します。

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

書かれているように、このメソッドは編集などを無効にします。自分の非常識な魔法を書いて、好きなことをしてください。

ENV:PSModulePath で知られているすべての場所で関数をチェックし、そのメソッドを含むモジュールを自動ロードする「モジュール自動ロード」を備えた Powershell 3 が原因で、余分な場所をすべて検索していると思います。

于 2013-07-12T21:03:15.417 に答える