Có lệnh nào để xóa cửa sổ ngay lập tức trong Visual Studio không?
Tôi ghét phải lấy chuột để có menu chuột phải ở đó - thà chỉ gõ "cls" hoặc một cái gì đó.
Có lệnh nào để xóa cửa sổ ngay lập tức trong Visual Studio không?
Tôi ghét phải lấy chuột để có menu chuột phải ở đó - thà chỉ gõ "cls" hoặc một cái gì đó.
Câu trả lời:
Để xóa sổ ngay lập tức, bạn có thể sử dụng >cls
, đó là một xác định trước lệnh alias để >Edit.ClearAll
.
Bài báo MSDN liệt kê tất cả các bí danh được xác định trước và bạn cũng có thể xác định bí danh của riêng mình. (Đối với VS 2010 trở về trước, bí danh tùy chỉnh được mô tả trong một bài viết riêng biệt, mặc dù.) Quét qua, có một loạt toàn bộ trong số họ, một số trong đó thậm chí có thể có nguồn gốc từ MS-DOS DEBUG.EXE (cụ thể là >d
, >g
, >p
, >q
, và> t
nghĩ đến).
Cũng cần lưu ý, vì nó chỉ có hai phím để nhấn: Menu ngữ cảnh> Xóa tất cả sẽ gọi cùng một lệnh và nó có thể được điều hướng bằng bàn phím. Trong cửa sổ ngay lập tức, bạn có thể nhấn context-menu
, L
.
Nếu bạn không có context-menu
phím trên bàn phím (bạn biết đấy, phím ở giữa right-alt
và right-ctrl
), bạn có thể sử dụng shift
+ F10
để thay thế.
>
quan trọng. Không thể nghĩ ra một cách tự nhiên để làm cho nó rõ ràng hơn trong câu trả lời. Ngoài ra, hãy xem Cửa sổ ngay lập tức trên MSDN để biết thêm các mẹo hữu ích.
>cls
dường như làm điều đó cho tôi.
Tìm thấy rồi...
"> Chỉnh sửa.ClearAll"
hoặc là
"> cls"
Đây là cách thực hiện vào lúc chạy:
Tham khảo các dlls EnvDTE trong ứng dụng của bạn.
Tạo và sau đó sử dụng chức năng này khi cần thiết.
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
sang VisualStudio.DTE.11.0
và nó hoạt động. Cũng tại đây, tôi đã tìm thấy một cú pháp ngắn hơn của cùng một câu trả lời: http://stackoverflow.com/a/16873888/2721611
Đối với studio trực quan 2012, tôi sử dụng:
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
để tự động xóa cửa sổ ngay lập tức khỏi mã (yêu cầu thêm tham chiếu DTE vào dự án). Nếu nó không hoạt động VisualStudio.DTE.8.0
, hãy thử VisualStudio.DTE.9.0
, ...
theo phiên bản studio trực quan của bạn.
Tôi đã sử dụng câu trả lời cuối cùng chỉ về nguyên văn và nó hoạt động, mặc dù tôi muốn tập trung trở lại vị trí của nó. Đây là phiên bản C # được cải tiến rất nhẹ. Tôi kích hoạt nó bằng một công tắc cấu hình.
#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! */ }