Existe-t-il une commande pour effacer la fenêtre immédiate dans Visual Studio?
Je déteste avoir à saisir la souris pour un menu contextuel - je préfère taper simplement "cls" ou quelque chose comme ça.
Existe-t-il une commande pour effacer la fenêtre immédiate dans Visual Studio?
Je déteste avoir à saisir la souris pour un menu contextuel - je préfère taper simplement "cls" ou quelque chose comme ça.
Réponses:
Pour effacer la fenêtre immédiate, vous pouvez utiliser >cls
, qui est un alias de commande prédéfini à >Edit.ClearAll
.
L'article MSDN répertorie tous les alias prédéfinis et vous pouvez également définir le vôtre. (Pour VS 2010 et les versions antérieures, alias personnalisés sont décrits dans un article distinct, bien que.) Numérisation à travers, il y a toute une série d'entre eux, dont certains pourraient même avoir leurs racines dans MS-DOS DEBUG.EXE ( en particulier >d
, >g
, >p
, >q
, et> t
viens à l'esprit).
Il convient également de noter, car il n'y a que deux touches à appuyer: Menu contextuel> Effacer tout invoque la même commande et peut être parcourue à l'aide du clavier. Dans la fenêtre immédiate, vous pouvez appuyer sur context-menu
, L
.
Si vous n'avez pas de context-menu
touche sur votre clavier (vous savez, celle entre right-alt
et right-ctrl
), vous pouvez utiliser shift
+ à la F10
place.
>
est important. Impossible de penser à un moyen naturel de le rendre plus explicite dans la réponse. Consultez également Fenêtre immédiate sur MSDN pour obtenir des conseils plus utiles.
>cls
semble le faire pour moi.
l'a trouvé ...
"> Edit.ClearAll"
ou
"> cls"
Voici comment procéder au moment de l'exécution:
Référencez les DLL EnvDTE dans votre application.
Créez puis utilisez cette fonction si nécessaire.
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
pour VisualStudio.DTE.11.0
et cela a fonctionné. J'ai également trouvé ici une syntaxe plus courte de la même réponse: http://stackoverflow.com/a/16873888/2721611
Pour Visual Studio 2012, j'utilise:
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
pour effacer automatiquement la fenêtre immédiate des codes (nécessite d'ajouter des références DTE au projet). Si ça marche pas essayer VisualStudio.DTE.8.0
, VisualStudio.DTE.9.0
, ...
selon votre version de Visual Studio.
J'ai utilisé la dernière réponse à peu près mot pour mot et cela fonctionne, même si je voulais que le focus revienne là où il se trouvait. Voici la version C # très légèrement améliorée. Je l'active avec un commutateur de configuration.
#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! */ }