Gibt es einen Befehl zum Löschen des unmittelbaren Fensters in Visual Studio?
Ich hasse es, die Maus für ein Rechtsklick-Menü dort greifen zu müssen - würde lieber einfach "cls" oder so etwas eingeben.
Gibt es einen Befehl zum Löschen des unmittelbaren Fensters in Visual Studio?
Ich hasse es, die Maus für ein Rechtsklick-Menü dort greifen zu müssen - würde lieber einfach "cls" oder so etwas eingeben.
Antworten:
Zum Löschen des unmittelbaren Fensters können Sie >cls
einen vordefinierten Befehlsalias verwenden für verwenden>Edit.ClearAll
.
Der MSDN-Artikel listet alle vordefinierten Aliase auf, und Sie können auch Ihre eigenen definieren. (Für VS 2010 und früher, benutzerdefinierte Aliase werden in einem separaten Artikel beschrieben, though.) Scannen durch, gibt es eine ganze Reihe von ihnen, von denen einige sogar ihre Wurzeln in MS-DOS DEBUG.EXE haben könnte (speziell >d
, >g
, >p
, >q
, und>t
in den Sinn kommen).
Ebenfalls erwähnenswert, da nur zwei Tasten gedrückt werden müssen: Kontextmenü> Alle löschen ruft denselben Befehl auf und kann über die Tastatur navigiert werden. Im unmittelbaren Fenster können Sie drücken context-menu
,L
.
Wenn Sie keine context-menu
Taste auf Ihrer Tastatur haben (Sie wissen, die zwischen right-alt
und right-ctrl
), können Sie stattdessen shift
+ F10
verwenden.
>
ist wichtig. Konnte mir keinen natürlichen Weg vorstellen, um es in der Antwort deutlicher zu machen. Siehe auch Direkt - Fenster auf MSDN für mehr nützliche Tipps.
>cls
scheint es für mich zu tun.
fand es...
"> Edit.ClearAll"
oder
"> cls"
So geht's zur Laufzeit:
Verweisen Sie auf die EnvDTE-DLLs in Ihrer Anwendung.
Erstellen Sie diese Funktion und verwenden Sie sie nach Bedarf.
Public Sub ClearImmediateWindow()
Try
Dim vsWindowKindImmediateWindow As String _
= "{ECB7191A-597B-41F5-9843-03A4CF275DDE}"
Try
Dim obj As Object = System.Runtime.InteropServices.Marshal._
GetActiveObject("VisualStudio.DTE.10.0")
If obj IsNot Nothing Then
Dim DTE2 As EnvDTE80.DTE2 = CType(obj, EnvDTE80.DTE2)
For Each wndw As EnvDTE.Window In DTE2.Windows
If wndw.ObjectKind = vsWindowKindImmediateWindow Then
wndw.Activate()
DTE2.ExecuteCommand("Edit.ClearAll")
Exit For
End If
Next
End If
Catch comEx As COMException
' Not running from within the VS IDE?
Catch ex As Exception
Throw ex
End Try
Catch ex As Exception
' Handle this as you desire.
End Try
End Sub
End Sub
VisualStudio.DTE.10.0
auf VisualStudio.DTE.11.0
und es funktionierte. Auch hier fand ich eine kürzere Syntax der gleichen Antwort: http://stackoverflow.com/a/16873888/2721611
Für Visual Studio 2012 verwende ich:
Public Sub ClearImmediateWindow()
Dim dte As EnvDTE80.DTE2 = Marshal.GetActiveObject("VisualStudio.DTE.11.0")
dte.Windows.Item("Immediate Window").Activate() 'Activate Immediate Window
dte.ExecuteCommand("Edit.SelectAll")
dte.ExecuteCommand("Edit.ClearAll")
Marshal.ReleaseComObject(dte)
End Sub
um das sofortige Fenster automatisch aus den Codes zu löschen (erfordert das Hinzufügen von DTE-Referenzen zum Projekt). Wenn es nicht funktioniert versuchen VisualStudio.DTE.8.0
, VisualStudio.DTE.9.0
, ...
entsprechend Ihrer Visual Studio - Version.
Ich habe die letzte Antwort fast wörtlich verwendet und sie funktioniert, obwohl ich mich wieder darauf konzentrieren wollte, wo sie war. Hier ist die leicht verbesserte C # -Version. Ich aktiviere es mit einem Konfigurationsschalter.
#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! */ }