web-dev-qa-db-fra.com

Commande de fenêtre immédiate de Visual Studio pour Tout effacer

Existe-t-il une commande pour effacer la fenêtre immédiate dans Visual Studio?

Je déteste avoir à prendre la souris pour un menu clic droit - préférerais simplement taper "cls" ou quelque chose.

84
Scott Ivey

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, custom aliases sont décrits dans un article séparé, cependant.) En parcourant, il y en a toute une série, dont certaines pourraient même avoir leurs racines dans MS-DOS DEBUG.EXE (plus précisément >d, >g, >p, >q et> t me viennent à l'esprit).


À noter également, car il suffit d'appuyer sur deux touches: Menu contextuel> Tout effacer pour invoquer la même commande, qui permet de naviguer à l'aide du clavier. Dans la fenêtre immédiate, vous pouvez appuyer sur context-menu, L.

Si vous n'avez pas de touche context-menu sur votre clavier (vous savez, celle entre right-alt et right-ctrl), vous pouvez utiliser shift + F10 à la place.

115
lc.
>cls 

semble le faire pour moi.

45
Martin Brown
  1. Placez le curseur de la souris dans la fenêtre immédiate.
  2. Faites un clic droit sur la souris et sélectionnez "Effacer tout".
13
rossco78

je l'ai trouvé ...

"> Edit.ClearAll"

ou 

"> cls"

9
Scott Ivey

Voici comment le faire au moment de l'exécution:

  1. Référencez les DLL EnvDTE dans votre application.

  2. 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
3
user1330634

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 l'ajout de références DTE au projet). Si cela ne fonctionne pas, essayez VisualStudio.DTE.8.0, VisualStudio.DTE.9.0, ... en fonction de votre version de visual studio.

1
Mojtaba Rezaeian

J'ai utilisé la dernière réponse à peu près verbatim et cela a fonctionné, même si je voulais revenir sur l'endroit où elle se trouvait. Voici la version très légèrement améliorée de C #. Je l'activer 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! */ }

fin si

0
Wade Hatler