มีคำสั่งให้ล้างหน้าต่างทันทีใน Visual Studio หรือไม่
ฉันเกลียดการจับเมาส์เพื่อคลิกเมนูขวาที่นั่น - อยากจะพิมพ์แค่ "cls" หรืออะไรสักอย่าง
มีคำสั่งให้ล้างหน้าต่างทันทีใน Visual Studio หรือไม่
ฉันเกลียดการจับเมาส์เพื่อคลิกเมนูขวาที่นั่น - อยากจะพิมพ์แค่ "cls" หรืออะไรสักอย่าง
คำตอบ:
เพื่อล้างหน้าต่างทันทีคุณสามารถใช้>cls
ซึ่งเป็นที่กำหนดไว้ล่วงหน้านามแฝงคำสั่ง>Edit.ClearAll
ไปยัง
บทความ MSDNแสดงรายการนามแฝงที่กำหนดไว้ล่วงหน้าทั้งหมดและคุณสามารถกำหนดของคุณเองได้เช่นกัน (สำหรับ VS ปี 2010 และก่อนหน้านี้นามแฝงที่กำหนดเองที่อธิบายไว้ในบทความแยกแม้ว่า.) การสแกนผ่านมีฆ่าทั้งของพวกเขาซึ่งบางส่วนก็อาจจะมีรากของพวกเขาใน MS-DOS DEBUG.EXE (เฉพาะ>d
, >g
, >p
, >q
, และ> t
ทำใจ)
นอกจากนี้ที่น่าสังเกตเนื่องจากมีเพียงสองปุ่มให้กด: เมนูบริบท> ล้างทั้งหมดเรียกใช้คำสั่งเดียวกันและสามารถนำทางได้โดยใช้แป้นพิมพ์ ในหน้าต่างทันทีคุณสามารถกด,context-menu
L
หากคุณไม่มีcontext-menu
คีย์บนแป้นพิมพ์ (คุณรู้ไหมว่าปุ่มระหว่างright-alt
และright-ctrl
) คุณสามารถใช้shift
+ F10
แทนได้
>
สำคัญคือ ไม่สามารถคิดวิธีที่เป็นธรรมชาติเพื่อให้คำตอบชัดเจนยิ่งขึ้น นอกจากนี้โปรดดูหน้าต่างทันทีบน MSDN สำหรับคำแนะนำที่เป็นประโยชน์เพิ่มเติม
>cls
ดูเหมือนจะทำเพื่อฉัน
เจอแล้ว ...
"> Edit.ClearAll"
หรือ
"> cls"
นี่คือวิธีการดำเนินการ:
อ้างอิง EnvDTE dlls ในแอปพลิเคชันของคุณ
สร้างและใช้ฟังก์ชันนี้ตามความจำเป็น
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
เป็นVisualStudio.DTE.11.0
และใช้งานได้ นอกจากนี้ฉันพบไวยากรณ์ที่สั้นกว่าของคำตอบเดียวกัน: http://stackoverflow.com/a/16873888/2721611
สำหรับ Visual Studio 2012 ฉันใช้:
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
เพื่อล้างหน้าต่างทันทีจากรหัสโดยอัตโนมัติ (ต้องเพิ่มการอ้างอิง DTE ไปยังโครงการ) ถ้ามันไม่ทำงานลองVisualStudio.DTE.8.0
, VisualStudio.DTE.9.0
, ...
ตามรุ่นสตูดิโอของคุณภาพ
ฉันใช้คำตอบสุดท้ายเกี่ยวกับคำต่อคำและได้ผลแม้ว่าฉันต้องการโฟกัสกลับไปที่จุดนั้น นี่คือเวอร์ชัน C # ที่ได้รับการปรับปรุงเล็กน้อย ฉันเปิดใช้งานด้วยสวิตช์การกำหนดค่า
#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! */ }