स्पष्ट सभी के लिए विजुअल स्टूडियो तत्काल विंडो कमांड


100

क्या विजुअल स्टूडियो में तत्काल विंडो को खाली करने की आज्ञा है?

मैं एक राइट क्लिक मेनू के लिए माउस को हथियाने से नफरत करता हूं - बल्कि "cls" या कुछ और टाइप करना होगा।


14
एहसास नहीं था कि एक राइट-क्लिक मेनू था!
जोनिरा

जवाबों:


133

तत्काल विंडो को खाली करने के लिए, आप उपयोग कर सकते हैं >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


1
जब मैं कार्यालय में होता हूं, तो मैं सामान्य रूप से संदर्भ कुंजी का उपयोग करता हूं - लेकिन मैं पिछले कुछ महीनों से एक ग्राहक कार्यालय से लैपटॉप पर काम कर रहा हूं, और मेरे पास इस पर संदर्भ कुंजी नहीं है। यह आखिरकार मुझे एक समाधान के लिए देखने के लिए काफी परेशान किया ...
स्कॉट Ivey

1
>महत्वपूर्ण है। उत्तर में इसे और अधिक स्पष्ट करने के लिए एक प्राकृतिक तरीके के बारे में नहीं सोच सकता था। इसके अलावा, अधिक उपयोगी सुझावों के लिए MSDN पर तत्काल विंडो देखें ।
पालिक


17
  1. माउस कर्सर को तत्काल विंडो में रखें।
  2. माउस पर राइट क्लिक करें और "क्लियर ऑल" चुनें।


3

यहां बताया गया है कि इसे रन टाइम पर कैसे करें:

  1. अपने आवेदन में EnvDTE dll का संदर्भ लें।

  2. बनाएं और फिर इस फ़ंक्शन का उपयोग आवश्यकतानुसार करें।

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

मेरे लिए काम नहीं कर रहा है। त्रुटि है: " मार्शल की तरह वस्तु प्राप्त करते समय " पहला मौका अपवाद 'System.Runtime.InteropServices.COMException' mscorlib.dll में हुआ
Mojtaba Rezaeian

मेरा दृश्य स्टूडियो संस्करण 2012 है इसलिए मैंने इसे बदल VisualStudio.DTE.10.0दिया VisualStudio.DTE.11.0और इसने काम किया। यहाँ भी मुझे एक ही उत्तर का एक छोटा वाक्यविन्यास मिला: http://stackoverflow.com/a/16873888/2721611
Mojtaba Rezaeian

1

दृश्य स्टूडियो 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, ...अपने दृश्य स्टूडियो संस्करण के अनुसार।


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! */ }

अगर अंत


1
बस एक गोत्र; यदि आपके पास वीएस खुला के एक से अधिक उदाहरण हैं, तो मर्फी का नियम यह बताता है कि यह दूसरे को साफ कर देगा और आपको यह पता लगाने की कोशिश करेगा कि एफ ^ और $% ** क्यों है! यह काम नहीं करता है। कम से कम मैं पिछले 20 मिनट से यही कर रहा हूं।
ल्यूक वीडीवी

और अब यह काम करता है, लेकिन मुझे लगता है कि केवल तभी वीएस सक्रिय खिड़की है। यदि इस कोड के निष्पादित होने पर एक और विंडो (उदाहरण के लिए मैं प्रोजेक्ट डीबगिंग कर रहा हूं) सक्रिय है, तो मुझे "HRESULT से अपवाद: 0x80010001 (RPC_E_CALL_REJECTED) मिलता है"।
ल्यूक वीडीवी

आप सही हे। यदि आप 2 इंस्टेंसेस चला रहे हैं, तो आपको एक से दूसरे को बताने के लिए तर्कसंगत तरीके से काम करना होगा। मुझे लगता है कि आपको सभी मुख्य खिड़कियों को पुनरावृत्त करना होगा और उच्चतम ZOrder के साथ जांच करनी होगी। मैंने कुछ समय पहले इसका उपयोग करना छोड़ दिया क्योंकि मैं बेहतर तरीके से आया था। मैंने यह इसलिए लिखा क्योंकि Visual Studio ने डीबग संदेश चुरा लिया। अन्य सभी उपकरणों के लिए मैं उन्हें DbgView (SysInternals) के माध्यम से चलाता हूं। मैंने एक बैक एंड प्रोसेस लिखी जो उन्हें विजुअल स्टूडियो द्वारा चुराए जाने से पहले कैप्चर करता है, और उन्हें DbgView को फॉरवर्ड करता है, इसलिए मुझे वही मिला जो मैं पहली बार में चाहता था।
वेड हैटलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.