Есть ли команда для очистки немедленного окна в 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
.
>
важно. Не мог придумать естественного способа сделать это более явным в ответе. Также см. Immediate Window на MSDN для получения дополнительных полезных советов.
>cls
кажется, делает это за меня.
нашел это ...
"> Edit.ClearAll"
или
"> cls"
Вот как это сделать во время выполнения:
Ссылайтесь на библиотеки DLL EnvDTE в своем приложении.
Создайте, а затем используйте эту функцию по мере необходимости.
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! */ }