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


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

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


158
2018-06-09 14:09


मूल


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


जवाब:


देख पालन-मोड। अंश:

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

241
2018-06-09 15:07



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


मैं इस समारोह का उपयोग करने के लिए उपयोग करता हूं 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))

16
2017-07-24 18:33



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


विम के लिए "मल्टीपाजर" प्लगइन उन लोगों के लिए वीआईएम स्प्लिट के साथ ऐसा कर सकता है जो इस व्यवहार को विम में प्राप्त करना चाहते हैं।

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

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


15
2017-07-23 22:22



लेकिन एक प्रश्न Emacs विम नहीं था के बारे में एक सवाल था। - Alexander I.Grafov
ओपी ने विम का उल्लेख किया: बनाम कमांड इसलिए मैंने इसे उचित मान लिया। - bheeshmar


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

यहां दस्तावेज़ीकरण


2
2018-06-09 14:16



प्रश्नोत्तरी में उल्लिखित एमएसी भी ऐसा कर सकते हैं, लेकिन यह नहीं पूछा जा रहा है कि क्या किया जा रहा है। - justinhj
जवाब देने के बाद सवाल संपादित किया गया था। - inkedmn
उस के साथ मिलकर :scrollbind, और तुम वहाँ हो - bastibe
E492: Not an editor command: scrollbind - Kragen Javier Sitaker
@ क्रैगन - ऐसा करने का तरीका यह है: 1. विंडो को लंबवत विभाजित करें, इसलिए दो विंडो में एकल बफर दिखाई देता है 2. दूसरी विंडो में स्क्रॉल करें ताकि दूसरी विंडो में पहली पंक्ति पहली विंडो में अंतिम पंक्ति के बाद आती है। 3। मुद्दा कमांड :set scrollbind खिड़कियों में से प्रत्येक में। अब खिड़कियां वांछित के रूप में एक साथ स्क्रॉल करेंगे। (नोट: स्क्रोलोपट में 'ver' विकल्प होना चाहिए।) - Herbert Sitz


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

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

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


-1
2018-06-09 14:59



... और इसलिए एलिसप चीजों में जोड़ा गया है- मुझे-सीखने की सूची-सूची :) बहुत धन्यवाद ब्रायन;) - user119857
जाहिर है, किसी ने पहले से ही यह किया है, लेकिन हाँ, elisp एक अद्भुत उपकरण है! - Brian Postow


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


-5
2018-06-09 14:12



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


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


-7
2018-06-09 14:17



यह स्वचालित रूप से एक कॉलम से दूसरे तक नहीं बहता है। - kmarsh