Visual studio Visual Studio立即窗口命令,用于清除所有
在VisualStudio中是否有清除即时窗口的命令 我讨厌在那里用鼠标右键点击菜单——宁愿键入“cls”之类的东西。找到了 “>Edit.ClearAll” 或Visual studio Visual Studio立即窗口命令,用于清除所有,visual-studio,visual-studio-2008,immediate-window,Visual Studio,Visual Studio 2008,Immediate Window,在VisualStudio中是否有清除即时窗口的命令 我讨厌在那里用鼠标右键点击菜单——宁愿键入“cls”之类的东西。找到了 “>Edit.ClearAll” 或 “>cls”要清除即时窗口,您可以使用>cls,它是>编辑的预定义工具。ClearAll 列出所有预定义的别名,您也可以定义自己的别名。(对于VS 2010和更早版本,在另一篇文章中进行了描述。)浏览一下,有一大堆,其中一些甚至可能源于MS-DOS DEBUG.EXE(特别是>d,>g,>p,>q,以及>t) 另外值得注意的是,只需
“>cls”要清除即时窗口,您可以使用
>cls
,它是>编辑的预定义工具。ClearAll
列出所有预定义的别名,您也可以定义自己的别名。(对于VS 2010和更早版本,在另一篇文章中进行了描述。)浏览一下,有一大堆,其中一些甚至可能源于MS-DOS DEBUG.EXE(特别是>d
,>g
,>p
,>q
,以及>t
)
另外值得注意的是,只需按两个键:上下文菜单>清除所有调用相同的命令,并且可以使用键盘进行导航。在即时窗口中,您可以按
上下文菜单
,L
如果您的键盘上没有a(您知道,right-alt
和right-ctrl
),您可以使用shift
+F10
>cls
似乎是为我做的。以下是如何在运行时执行此操作:
公共子ClearImmediateWindow()
尝试
Dim VSWindowKind立即以字符串形式显示\u
=“{ECB7191A-597B-41F5-9843-03A4CF275DDE}”
尝试
Dim obj As Object=System.Runtime.InteropServices.Marshal.\u
GetActiveObject(“VisualStudio.DTE.10.0”)
如果obj不是什么,那么
将DTE2的尺寸标注为EnvDTE80.DTE2=CType(obj,EnvDTE80.DTE2)
对于每个wndw作为DTE2.Windows中的EnvDTE.Window
如果wndw.ObjectKind=vsWindowKindImmediateWindow,则
wndw.Activate()
DTE2.ExecuteCommand(“Edit.clearlall”)
退出
如果结束
下一个
如果结束
将comEx捕获为COMException
'不在VS IDE中运行?
特例
投手
结束尝试
特例
“你想怎么办就怎么办。
结束尝试
端接头
端接头
对于visual studio 2012,我使用:
公共子ClearImmediateWindow()
将dte调暗为EnvDTE80.DTE2=Marshal.GetActiveObject(“VisualStudio.dte.11.0”)
dte.Windows.Item(“即时窗口”).Activate()“激活即时窗口”
dte.ExecuteCommand(“Edit.SelectAll”)
dte.ExecuteCommand(“Edit.ClearAll”)
封送官发布对象(dte)
端接头
从代码中自动清除即时窗口(需要向项目中添加DTE引用)。如果它不起作用,请根据您的visual studio版本,尝试
VisualStudio.DTE.8.0
,VisualStudio.DTE.9.0
,…
。我使用了上一个答案,几乎是一字不差的,它可以起作用,尽管我想把重点放回原来的位置。这是稍微改进的C版本。我使用配置开关启用它
#if DEBUG
if (GetIni("Debug", "ClearImmediateWindow", true)) {
try {
var dte = (EnvDTE.DTE) Marshal.GetActiveObject("VisualStudio.DTE.15.0");
var me = dte.ActiveWindow;
dte.Windows.Item("Immediate Window").Activate();
dte.ExecuteCommand("Edit.ClearAll");
me.Activate();
}
catch { /* Meh! */ }
endif那些想知道如何在Visual Studio Mac上清除即时窗口的人,只需在窗口内右键单击并选择选项清除我通常在办公室时使用上下文键-但过去几个月我一直在客户办公室使用笔记本电脑,而我没有上下文键。最后,我终于为寻找解决方案而烦恼不已。
非常重要。我想不出一个自然的方法来让答案更明确。此外,更多有用的提示请参见MSDN。我不知道有一个右键单击菜单!不为我工作。错误是:“从封送处理中获取对象时,mscorlib.dll中发生了类型为“System.Runtime.InteropServices.COMException”的第一次意外异常。我的visual studio版本是2012,因此我将VisualStudio.DTE.10.0
更改为VisualStudio.DTE.11.0
,并且成功了。在这里我还发现了一个相同答案的简短语法:gotcha;如果您有多个VS open实例,墨菲定律规定它将清除另一个实例,并让您尝试找出为什么F^&$%**!它不起作用。至少这是我在过去20分钟里一直在做的。现在它可以工作了,但我认为只有在VS是活动窗口的情况下。如果在执行此代码时另一个窗口(例如,我正在调试的项目)处于活动状态,则会得到“来自HRESULT的异常:0x80010001(RPC_E_调用被拒绝)”。您是对的。如果您正在运行两个实例,那么您必须找到一种合理的方法来区分其中一个。我想您必须迭代所有主窗口,并检查具有最高ZOrder的主窗口。一段时间前我放弃了使用它,因为我想出了一个更好的方法。我写这篇文章是因为VisualStudio窃取了调试消息。对于所有其他工具,我都通过DbgView(SysInternals)运行它们。我编写了一个后端流程,在VisualStudio窃取它们之前捕获它们,并将它们转发给DbgView,所以我回到了我首先想要的东西。