Emacs - एकाधिक कॉलम एक बफर


165

मैं कुछ असेंबली कोड को संपादित करने की कोशिश कर रहा हूं जो लंबे लेकिन पतले लिस्टिंग में स्वरूपित होता है। मेरे पास एक एकड़ क्षैतिज स्थान का उपयोग करने में सक्षम होना चाहिए और एक समय में स्क्रीन पर अधिक कोड देखना होगा। क्या मुझे एक ही बफर को इंगित करने के लिए मुझे कई कॉलम दिखाने के लिए Emacs (या वास्तव में एक अन्य संपादक) प्राप्त करने की एक विधि है?

Cx 3 (emacs) और: vsplit (vim) कोड में कई अलग-अलग विचारों के लिए महान हैं, लेकिन मैं इसे एक कॉलम से दूसरे में प्रवाहित करना पसंद करूंगा (जैसे अखबार में पाठ)।


1
Cx 3 और: कोड में कई अलग-अलग विचारों के लिए vsplit महान हैं, लेकिन मैं इसे एक कॉलम से दूसरे में प्रवाह करना पसंद करूंगा (जैसे अखबार में पाठ)
user119857

1
धन्यवाद! मुझे 4-6 कॉलम कोड के साथ प्यार हो गया, यह देखते हुए कि मैंने अपने सभी कोड को 30-40 चार्ट में प्रारूपित करने की कोशिश की, और मैं परिणाम को बेहद पसंद कर रहा हूं - सभी पंक्तियों को छोटा करके, न केवल स्वाभाविक रूप से छोटे लोगों को, बहुत कम जगह व्यर्थ है, और मेरे सभी स्क्रीन स्पेस का उपयोग टेक्स्ट प्रदर्शित करने के लिए किया जाता है; इसके अलावा, कोड ब्लॉक अधिक 2-आयामी, सहज दृश्य समझ और संरचनात्मक निरीक्षण बन जाते हैं।
एरिक कपलुन

जवाबों:


248

फॉलो-मोड देखें । अंश:

फॉलो मोड एक मामूली मोड है जो दो विंडो बनाता है, दोनों एक ही बफर दिखाते हैं, एक एकल "वर्चुअल विंडो" के रूप में स्क्रॉल करते हैं। फॉलो मोड का उपयोग करने के लिए, बस एक विंडो के साथ एक फ्रेम पर जाएं, इसे Cx 3 का उपयोग करके दो साइड-बाय-साइड विंडो में विभाजित करें और फिर Mx फॉलो-मोड टाइप करें। तब से, आप दोनों विंडो में या तो बफर को एडिट कर सकते हैं या किसी एक को स्क्रॉल कर सकते हैं; दूसरी विंडो इसका अनुसरण करती है। फॉलो मोड में, यदि आप एक विंडो में दिखाई देने वाले हिस्से के बाहर और दूसरी विंडो में दिखाई देने वाले हिस्से में, जो दूसरी विंडो को चुनते हैं, को फिर से आगे बढ़ाते हैं, तो दोनों का इलाज करते हुए मानो वे एक बड़ी खिड़की के हिस्से हैं।

3
क्या मैं इसे दो से अधिक विंडो के साथ उपयोग कर सकता हूं? क्या मेरे पास इसका उपयोग करने वाली चार खिड़कियां हो सकती हैं?
युकुला

मुझे आश्चर्य है कि अगर एक ही स्रोत के दो स्तंभों को अलग-अलग तरीके से संपादित करना संभव है, तो दो खिड़कियों में विभाजित नहीं। यह सबसे अच्छा उदाहरण नहीं है, लेकिन कल्पना करें कि मेरे पास स्क्रिप्ट कोड के लिए एक कॉलम है और टिप्पणियों के लिए दूसरा है तो अगर मैं दूसरे कॉलम में हूं तो मैं "एन्टर" दबाना चाहता हूं और अगली पंक्ति में जारी रख सकता हूं लेकिन दूसरे कॉलम में। क्या यह Emacs या अन्य टेक्स्ट एडिटर के साथ संभव है?
स्व।

लंबे लंबे फ़ंक्शन या विधि को संपादित करना बहुत उपयोगी है। मैं हमेशा इस विधा को खोजता हूँ और दो बफ़र को खोलता हूँ और अपने आप से ऐसा करता हूँ, धन्यवाद huaiyuan
Yuan He

17

मैं इस फ़ंक्शन का उपयोग करने के लिए करता हूँ follow-mode, हालाँकि इसके लिए अलग स्क्रीन आकार के लिए अनुकूलन की आवश्यकता होगी:

;;; I want a key to open the current buffer all over the screen.
(defun all-over-the-screen ()
  (interactive)
  (delete-other-windows)
  (split-window-horizontally)
  (split-window-horizontally)
  (balance-windows)
  (follow-mode t))

प्लस 1 (शेष-खिड़कियों) को इंगित करने के लिए अकेले! मुझे लगता है कि आप इसे कई बार एक पैरामीट्रिक संख्या विभाजित कर सकते हैं और फ़ंक्शन को इंटरैक्टिव बना सकते हैं। साथ ही, सेटिंग scroll-marginकरने 0से समझदारी आएगी follow-mode
एरिक कपलुन

15

Vim के लिए "Multipager" प्लगइन यह VIM विभाजन उन लोगों के लिए कर सकता है जो विम में इस व्यवहार को प्राप्त करना चाहते हैं।

डॉ। चिप के पेज से प्राप्त करें: http://mysite.verizon.net/astronaut/vim/index.html#MPAGE

डॉक्स: http://mysite.verizon.net/astronaut/vim/doc/mpage.txt.html


1
लेकिन एक सवाल Emacs नहीं Vim के बारे में था।
अलेक्जेंडर I. ग्रेफोव

2

विम इसका उपयोग :vsplitकर सकता है - और आप एक ही बफर को कई "विंडोज़" में खोल सकते हैं (जो वास्तव में एकल "विंडो" के भीतर अनुभाग हैं)।

यहाँ प्रलेखन


3
emacs ऐसा कर सकते हैं, जैसा कि प्रश्न में उल्लेख किया गया है, लेकिन ऐसा नहीं है जो पूछा जा रहा है।
justinhj

1
उस के साथ :scrollbind, और आप वहां हैं।
बस्टिबे

@Kragen - ऐसा करने की विधि है: 1. खिड़की को लंबवत रूप से विभाजित करें, इसलिए सिंगल बफर दो विंडो में दिखाई देता है। दूसरी विंडो में स्क्रॉल करें ताकि पहली विंडो में आखिरी पंक्ति के बाद दूसरी विंडो में पहली पंक्ति आए, 3। :set scrollbindप्रत्येक विंडो में कमांड जारी करें । अब विंडोज़ वांछित के रूप में एक साथ स्क्रॉल करेंगे। (नोट: स्क्रॉल-अप में 'ver' विकल्प होना चाहिए।)
Herbert Sitz

हम्म, वह काम करता है। ठंडा! धन्यवाद! किसी को यह करने के लिए स्वचालित रूप से एक स्क्रिप्ट लिखना चाहिए।
क्रैगन जेवियर सीटेकर

-1

एमएसीएस विकी पर एक त्वरित नज़र आपके वर्णन की तरह एक मोड नहीं दिखाती है। हालांकि, एक लिखना बहुत कठिन नहीं होना चाहिए ... आपको बस Cx 3 के साथ विंडो को विभाजित करने और पाठ को दूसरी विंडो में नीचे स्थानांतरित करने की आवश्यकता है, और जब भी आप पाठ को स्थानांतरित करते हैं, तो दूसरी विंडो पर भी ऐसा करें। ..

समस्याएँ तब हो सकती हैं जब आप बफर के निचले हिस्से में पहुँचते हैं, क्या आप चाहते हैं कि कर्सर तुरंत शीर्ष पर दूसरी विंडो पर जाए?

हम्म, शायद यह इतना आसान नहीं है। लेकिन यह अभी भी उल्लेखनीय होना चाहिए ...


1
... और इसलिए एलिस्फ़ को चीजों में जोड़ा जाता है-आई-
नीड

जाहिर है, किसी ने पहले से ही किया था, लेकिन हाँ, एक अद्भुत उपकरण है!
ब्रायन पोस्टो

-5

विंडो को विभाजित करते समय यह emacs का डिफ़ॉल्ट व्यवहार है (ऊर्ध्वाधर विभाजन के लिए Cx 3) आपको दो कॉलम मिलते हैं, जिसमें दोनों वर्तमान स्क्रीन खुले होते हैं


1
लेकिन उस मामले में, यह फॉलो-मोड में नहीं है। फॉलो-मोड यह सुनिश्चित करेगा कि प्रत्येक बफर "अगले पृष्ठ" पर स्थित होगा ताकि आप बिंदु को स्थानांतरित करने के बजाय अपनी आंखों को स्थानांतरित करके बफर के माध्यम से पढ़ सकें।
बजे

-7

Cx के साथ वर्टिकल-स्प्लिट का प्रयोग करें। यह वर्तमान बफर को दो कॉलमों में विभाजित करेगा जिन्हें आप Cx o के बीच स्विच कर सकते हैं।


2
यह एक कॉलम से दूसरे कॉलम में स्वचालित रूप से प्रवाहित नहीं होता है।
km
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.