Esiste un comando per cancellare la finestra immediata in Visual Studio?
Odio dover afferrare il mouse per un menu di scelta rapida lì - preferirei semplicemente digitare "cls" o qualcosa del genere.
Esiste un comando per cancellare la finestra immediata in Visual Studio?
Odio dover afferrare il mouse per un menu di scelta rapida lì - preferirei semplicemente digitare "cls" o qualcosa del genere.
Risposte:
Per cancellare la finestra immediata, è possibile utilizzare >cls
, che è un alias di comando predefinito per >Edit.ClearAll
.
L'articolo di MSDN elenca tutti gli alias predefiniti e puoi anche definirne uno personalizzato. (Per VS 2010 e in precedenza, alias personalizzati sono descritti in un articolo a parte, però.) La scansione attraverso, c'è una grande quantità di loro, alcune delle quali potrebbero anche avere le loro radici in MS-DOS DEBUG.EXE (in particolare >d
, >g
, >p
, >q
, e> t
vieni in mente).
Vale anche la pena notare, poiché sono solo due i tasti da premere: Il menu contestuale> Cancella tutto richiama lo stesso comando e può essere navigato utilizzando la tastiera. Nella finestra immediata, è possibile premere context-menu
, L
.
Se non hai un context-menu
tasto sulla tastiera (sai, quello tra right-alt
e right-ctrl
), puoi invece usare shift
+ F10
.
>
è importante. Impossibile pensare a un modo naturale per renderlo più esplicito nella risposta. Inoltre, vedere Finestra immediata su MSDN per suggerimenti più utili.
>cls
sembra farlo per me.
trovato...
"> Modifica.Cancella tutto"
o
"> cls"
Ecco come farlo in fase di esecuzione:
Fare riferimento alle DLL EnvDTE nell'applicazione.
Creare e quindi utilizzare questa funzione secondo necessità.
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
per VisualStudio.DTE.11.0
e ha funzionato. Anche qui ho trovato una sintassi più breve della stessa risposta: http://stackoverflow.com/a/16873888/2721611
Per visual studio 2012 utilizzo:
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
per cancellare automaticamente la finestra immediata dai codici (richiede l'aggiunta di riferimenti DTE al progetto). Se non funziona VisualStudio.DTE.8.0
, prova VisualStudio.DTE.9.0
, ...
secondo la versione del tuo studio visivo.
Ho usato l'ultima risposta quasi letteralmente e funziona, anche se volevo concentrarmi di nuovo su dove si trovava. Ecco la versione C # leggermente migliorata. Lo abilito con un interruttore di configurazione.
#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! */ }