Visual Studio'da hemen pencereyi temizlemek için bir komut var mı?
Orada bir sağ tıklama menüsü için fareyi tutmak zorunda kalmaktan nefret ediyorum - sadece "cls" veya başka bir şey yazmayı tercih ederim.
Visual Studio'da hemen pencereyi temizlemek için bir komut var mı?
Orada bir sağ tıklama menüsü için fareyi tutmak zorunda kalmaktan nefret ediyorum - sadece "cls" veya başka bir şey yazmayı tercih ederim.
Yanıtlar:
Hemen pencereyi temizlemek için, >cls
önceden tanımlanmış bir komut diğer adı olan kullanabilirsiniz >Edit.ClearAll
.
MSDN makalesi önceden tanımlanmış tüm diğer adları listeler ve siz de kendinizinkini tanımlayabilirsiniz. (VS 2010 ve önceki için, özel adlar olsa ayrı bir makalesinde açıklanmıştır.) Üzerinden Tarama, hatta MS-DOS DEBUG.EXE içinde kökleri (sahip olabilir bazıları onlardan bir bütün öldürdü, orada özellikle >d
, >g
, >p
, >q
, ve> t
akla gel).
Ayrıca, basılması gereken yalnızca iki tuş olduğu için dikkat çekmeye değer: Bağlam menüsü> Tümünü Temizle aynı komutu çağırır ve klavye kullanılarak gezinilebilir. Hemen penceresinde, basabilir context-menu
, L
.
Eğer bir yoksa context-menu
anahtarı klavyenizdeki (hani, aralarında bir right-alt
ve right-ctrl
) kullanabilirsiniz shift
+ F10
yerine.
>
önemlidir. Cevapta daha açık hale getirmenin doğal bir yolunu düşünemedim. Ayrıca, daha yararlı ipuçları için MSDN'de Anında Pencereye bakın .
>cls
benim için yapıyor gibi görünüyor.
buldum ...
"> Edit.ClearAll"
veya
"> cls"
İşte çalışma zamanında nasıl yapılacağı:
Uygulamanızdaki EnvDTE dll'lerine başvurun.
Bu işlevi gerekli şekilde oluşturun ve sonra kullanın.
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
için VisualStudio.DTE.11.0
ve işe yaradı. Ayrıca burada aynı cevaba sahip daha kısa bir sözdizimi buldum: http://stackoverflow.com/a/16873888/2721611
Visual Studio 2012 için kullanıyorum:
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
hemen pencereyi kodlardan otomatik olarak temizlemek için (projeye DTE referansları eklemeyi gerektirir). Denemek işleri Değilse VisualStudio.DTE.8.0
, VisualStudio.DTE.9.0
, ...
görsel stüdyo sürümüne göre.
Son cevabı neredeyse kelimesi kelimesine kullandım ve işe yarıyor, yine de nerede olduğuna odaklanmayı istedim. İşte çok az geliştirilmiş C # sürümü. Bir yapılandırma anahtarı ile etkinleştiriyorum.
#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! */ }