2009-10-15 13 views
7

तो मेरे पास आमतौर पर Emacs में 3 बफर खुलते हैं।मैं विंडो आंदोलन आदेश कैसे एक निश्चित विंडो को अनदेखा कर सकता हूं?

  1. वास्तविक कोड के लिए एक बफर जो मैं लिख रहा हूं।
  2. कहा कोड के लिए यूनिट परीक्षण के लिए एक बफर।
  3. एक तीसरा बफर जो यूनिट परीक्षण के परिणाम प्रदर्शित करता है। जब मैं अपना यूनिट टेस्ट सी-एक्स स्पेस चलाता हूं तो यह बफर दो अन्य बफर के नीचे होने लगता है।

कैसे जब मैं प्रेस ऐसी है कि मैं इस तीसरे बफर को निष्क्रिय कर सी-एक्स ओ मैं केवल बफर 1 और बफ़र 2 के बीच स्विच कर रहा हूँ? वर्तमान में, मैं बफर 1 के बीच स्विच, तो 2 बफ़र, तो, 3 बफ़र तो बफ़र 1, आदि विशिष्ट होना करने के लिए, मैं बफर 1 और 2

के बीच केवल स्विच करने के लिए सी-एक्स ओ चाहते धन्यवाद।

+0

कोई उत्तर नहीं बल्कि एक कामकाज जो आपकी मदद कर सकता है: http://stackoverflow.com/questions/91071/emacs-switch-active-window –

+0

ऐसा लगता है जैसे आप * विंडो * को छोड़ने के लिए कह रहे हैं एक विशेष बफर जिसे आप स्विच नहीं करना चाहते हैं। सही बात? –

+0

स्टीफन, क्या मैं सुझाव दे सकता हूं कि आप बफर के बजाए विंडो डालने के लिए शीर्षक और प्रश्न अपडेट करें? बफर/विंडो/फ्रेम में emacs में एक विशिष्ट अर्थ होता है: फ़्रेम एक विंडो प्रबंधक जो खिड़की को कॉल करता है उसके समतुल्य समतुल्य होता है (जो संलग्नक आप आम तौर पर घूम सकते हैं)। खिड़की वह है जिसका आप उल्लेख कर रहे हैं: फ्रेम का सबसेट जो कुछ पाठ दिखाता है। एक बफर दिखाया गया वास्तविक सामग्री का प्रतिनिधित्व करता है। यह आमतौर पर एक नाम से पहचाना जाता है, जो मॉडलिन में दिखाता है। आप 2 विंडो पर एक ही बफर दिखा सकते हैं, उदा। – Bahbar

उत्तर

7

एक यह करने के लिए सामान्य समाधान (देख सकते हैं) निम्नलिखित की तरह कुछ:

(defvar ignore-windows-containing-buffers-matching-res '("\\*Help") 
     "List of regular expressions specifying windows to skip (if window contains buffer that matches, skip)") 

(defadvice other-window (before other-window-ignore-windows-containing activate) 
    "skip over windows containing buffers which match regular expressions in 'ignore-windows-containing-buffers-matching-res" 
    (if (and (= 1 (ad-get-arg 0)) (interactive-p)) 
     (let* ((win (next-window)) 
      (bname (buffer-name (window-buffer win)))) 
     (when (some 'identity (mapcar '(lambda (re) 
             (string-match re bname)) 
            ignore-windows-containing-buffers-matching-res)) 
      (ad-set-arg 0 2))))) 

चर अनुकूलित एक नियमित रूप से बफर नाम आप छोड़ना चाहते मिलान अभिव्यक्ति हो।

+0

मैंने इसे अपनी .emacs फ़ाइल में कॉपी किया। मैंने फिर "* रूबी-टेस्ट *" के साथ "* सहायता" को प्रतिस्थापित किया (जो बफर का नाम था जिसमें रूबी परीक्षण चल रहा था)। अब जब मैं बफर स्विच करता हूं, तो यह केवल बफर 1 और 2 के बीच स्विच करता है। एक अच्छा समाधान की तरह लगता है। धन्यवाद। –

5

ट्रे का जवाब वही करेगा जो आप चाहते हैं (कम से कम ऐसा लगता है कि यह होगा; मैंने कोशिश नहीं की है)। या मेरे swbuff-advice के साथ swbuff का उपयोग करने के लिए एक और सामान्य समाधान होगा। सभी तीनों के बारे में जानकारी Emacs Wiki swbuff page पर मिल सकती है।

संबंधित मुद्दे

 संबंधित मुद्दे