如何在VS2010中的F#交互界面清屏?

23

有没有办法在VS2010中清除F#交互窗口?

#cls;;#clear;;无效。

通过#quit;;退出会导致F#交互重新启动,而且窗口内容没有被清除。

尝试使用“delete”或“backspace”删除文本会出现错误消息,指出该文本是只读的。


5
右键点击后选择“清除全部”有问题吗? - pad
@pad 唯一的问题是我自己没有找到它。奇怪的是,我也无法通过合理的谷歌搜索找到它 - 因此在这里开始了一个主题。 - Alexander Galkin
答案是,在 fsi 中没有相应的指令。不过,Visual Studio 提供了一个上下文菜单来帮助解决这个问题。另外,如果使用 Reset Session 菜单,F# 交互式控制台也会被清除。 - pad
@pad 其实有点可惜,因为我使用 fsi 进行调试并在我的 F# 代码中使用详细日志记录 -- 如果能够通过脚本以编程方式删除内容将会很有帮助。但是在搜索此问题时,我甚至无法找到上下文菜单技巧。 - Alexander Galkin
1
如果你想要摆脱烦人的声明,这个线程 https://dev59.com/gXA85IYBdhLWcg3wCe9Z 可能会有帮助。 - pad
5个回答

19

清除全部

右键单击并选择“清除全部”。


12

如果您在VS F#交互窗口中,可以使用鼠标右键单击并选择

Clear All

很遗憾,这在独立控制台FSI窗口中将不起作用。所以你可以在控制台FSI窗口中输入以下命令:

抱歉,这将无法在独立的控制台FSI窗口中工作。因此,您可以在控制台FSI窗口中执行以下命令

System.Console.Clear();;

3
你是否考虑过打印30个换行符?这只是一个简单的想法。

那其实不是个坏主意,Brian。我的意思是我知道他在问什么,有时候我自己也想在FSI中使用“#clear;;”。 :-) - Onorio Catenacci
11
在fsi.exe中,System.Console.Clear();;是有效的。 - kkm
3
在VS2012中,使用System.Console.Clear()会出现以下错误:System.IO.IOException: 句柄无效。 - Gustavo Guerra
@Brian 哈哈哈 - 即使 System.Console 可能是正确的选择,我现在会始终使用一个函数来执行 30 个换行符的操作,这是超越常规思考的体现。然后,如果你决定保留,你可以更容易地引用过去的方法,所以...... +1 - schmoopy

1
在VS 2022中,您只需按下此键,希望适用于所有版本。
CTRL + ALT + C

1
这个问题是关于 VS 2010 而不是 VS 2022 的。 - Hansel Palencia
1
这仍然是一个很好的答案,因为许多人(包括我,十年前提出这个问题的我)已经转换到了VS 2022 :) - Alexander Galkin

0

谢谢你的提示。我使用F#进行编译程序的快速原型设计,也经常有这样的需求。现在我需要在会话开始时粘贴一个函数:

let cls = System.Console.Clear();;

没有按预期工作,但这只是为了好玩: type blank()= member this.cls() = System.Console.Clear();;在fsi中使用blank().cls();;调用。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接