10

IDE の外部で変更されたコンテンツの Powershell_ise を更新する方法。

ほとんどの場合、Powershell_ise と notepad++ の両方を開いていました。

Powershell_ise で変更を行うと、notepad++ はリロードを要求しますが、notepad++ で変更すると、Powershell_ise で更新する方法がありません。

コンテンツを更新する方法はありますか、それともこれを提供する機能を見落としていますか?

4

3 に答える 3

5

この投稿は古いですが、Googleが同じ問題でここに連れてきたので、これを投稿すると思いました。

私は最終的に、OPが望んでいたことを正確に実行しないこの小さな関数を作成しましたが、他のグーグル社員はそれが役立つと思うでしょう:

function Build {
    #Reload file
    $CurrentFile = $psise.CurrentFile
    $FilePath = $CurrentFile.FullPath
    $PsISE.CurrentPowerShellTab.Files.remove($CurrentFile)
    $PsISE.CurrentPowerShellTab.Files.add($FilePath)

    iex $PsISE.CurrentPowerShellTab.Files.Editor.Text
}

$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Clear()
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Reload file and run",{Build},'f4')

完璧ではありませんが、今のところ私には十分です。現在のファイルを閉じ、再度開き、実行するキーバインディングを作成するだけです。ただし、実行すると、ファイルを閉じて再度開くと、現在のカーソル位置が失われるため、少し不快です。カーソルの列と行の位置を保存して、リロード時に復元できると確信していますが、当面それを気にするのは面倒です。

編集: コードの動作しない古いバージョンを誤って投稿してしまいました。作業バージョンで更新されました。

于 2014-05-30T17:03:18.323 に答える
3

PowerShell ISE は、変更されたファイルの自動更新をサポートしていません。ISE v3 にもありません。

このトピックに関する接続の提案があります: https://connect.microsoft.com/PowerShell/feedback/details/711915/open-ise-files-should-update-when-edited-externally

ただし、これは PowerShell ISE オブジェクト モデルと PowerShell イベントを使用して行うことができます。$pise.CurrentFile および $pise.CurrentPowerShellTab.Files コレクションを探索します。これにより、独自の単純なアドオンを作成するのに十分な情報が得られるはずです。

于 2012-01-09T14:48:01.600 に答える