Powershell_ise不会刷新外部修改

Sam*_*abu 7 powershell powershell-ise

如何刷新Powershell_ise以获取IDE外部修改的内容.

大多数时候我会打开Powershell_ise和notepad ++

如果我在Powershell_ise中做了更改,notepad ++会要求重新加载,但如果我在notepad ++中修改,则无法在Powershell_ise中刷新.

是否有任何方式来刷新内容或我是否忽略了提供此功能的任何功能?

red*_*888 5

这篇文章很旧,但我想我会发布这篇文章,因为谷歌把我带到了这里,遇到了同样的问题。

我最终只是写了这个小函数,它并不完全符合 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')
Run Code Online (Sandbox Code Playgroud)

它并不完美,但现在对我来说已经足够了。所做的就是创建一个键绑定来关闭,重新打开,然后执行当前文件。虽然它有点刺耳,因为当您运行它时,当文件关闭并重新打开时,您将丢失当前的光标位置。我相信你可以存储光标的列和行位置并在重新加载时恢复它,但我暂时懒得理会。

编辑:我不小心发布了我的代码的较旧的非工作版本。更新了工作版本。


rav*_*nth 3

PowerShell ISE 不支持自动刷新更改的文件。即使在 ISE v3 中也不存在。

有关于此主题的连接建议:https://connect.microsoft.com/PowerShell/feedback/details/711915/open-ise-files-should-update-when-edited-externally

但是,这可以使用 PowerShell ISE 对象模型和 PowerShell 事件来完成。探索 $psise.CurrentFile 和 $psise.CurrentPowerShellTab.Files 集合。这必须为您提供足够的信息来编写您自己的简单插件。