Emacs में स्क्रॉल करते समय कर्सर की स्थिति को न बदलें


18

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

मैंने निम्नलिखित सुझाव का परीक्षण किया, जिसमें कोई सफलता नहीं है:

(setq scroll-preserve-screen-position t
scroll-conservatively 0)

(मैं EmacsUbuntu पर और OS X पर 24.2 चला रहा हूं )

जवाबों:


11

मुझे लगता है कि आप चाहते हैं कि कर्सर (बिंदु) और दृश्यमान क्षेत्र का व्यवहार दूसरों की तरह हो notepad, geditआधुनिक संपादक: बिंदु स्थिति से स्वतंत्र रूप से दृश्य क्षेत्र को बदलने की क्षमता और चलती बिंदु के बाद दिखाई देने वाले क्षेत्र को तुरंत वापस करने की क्षमता। लेकिन emacsएक और गर्भाधान है: दृश्य क्षेत्र हमेशा बिंदु स्थिति और विसे वर्सा का अनुसरण करता है।

यह भी देखें /programming/9616623/ctrl-up-down-style-scrolling-in-emacs

पिछला उत्तर विशेष मुहावरे को दर्शाता है: यदि आप दृश्य क्षेत्र (बिंदु के साथ) को वर्तमान स्थिति से दूर ले जाना चाहते हैं और फिर बिंदु को वापस उसी स्थिति में लौटना चाहते हैं, जिसमें आपको उपयोग करने की आदत होनी चाहिए mark-ring। वहाँ हमेशा के माध्यम से एक रास्ता है mark ringवर्तमान कार्यशील स्थिति के लिए: कई आदेश, जैसे isearch-forward, beginning-of-buffer, ace-jump-modeमें पिछली स्थिति को बचाने के लिए स्वचालित रूप mark ringऔर आप उपयोग नहीं करना चाहिए C-<SPC> C-<SPC>से पहले, लेकिन केवल C-u C-<SPC>कूद वापस लिए। स्क्रॉलिंग कमांड, जैसे scroll-upया mwheel-scroll, स्वचालित रूप से पिछली स्थिति को डिफ़ॉल्ट रूप से सहेजना नहीं है क्योंकि यह बहुत अधिक मार्क्स का उत्पादन कर सकता है।

आप कुछ जगहों पर बफर के साथ कमांड clone-indirect-bufferया view-buffer-other-windowस्वतंत्र काम के लिए उपयोग कर सकते हैं। और दृश्य क्षेत्र के केंद्र में बिंदु को लगातार पकड़ने के लिए कमांड recenter-top-bottom( C-l) का उपयोग करें ।


2
धन्यवाद। दिलचस्प जवाब। मेरे Emacs के साथ एक समस्या प्रतीत होती है, हालाँकि (मैक और उबंटू में दोनों): C-u C-<SPC>काम नहीं करता है। मुझे नहीं पता कि यह समस्या है cua-modeया कुछ और। मैंने -qविकल्प के साथ Emacs चलाने की कोशिश की , लेकिन कुछ भी नहीं बदला। कोई विचार?
NVaughan

यह बहुत बुरा है ... मुझे यह सुपर कष्टप्रद लगता है, क्योंकि मैं उपयोग करता हूं highlight-symbol-mode। मैंने कर्सर को एक चर पर सेट किया है और यह सभी घटनाओं को उजागर करता है। जब मैं स्क्रॉल करना शुरू करता हूं, तो कर्सर चर छोड़ देता है और सभी हाइलाइट खो जाते हैं। कम से कम यह स्क्रॉलिंग सामान के बारे में अन्य समकालीन संपादकों की तरह व्यवहार करेगा तो बेहतर होगा।
itmuckel

7

मुझे नहीं पता कि स्क्रॉल करते समय अपनी बात को स्थानांतरित करने से emacs को रोकने का कोई तरीका है। लेकिन अगर आप बाद में वापस लौटने के लिए अपना स्थान सहेजना चाहते हैं, तो आप मार्क रिंग का उपयोग कर सकते हैं ।

यानी, C-<SPC> C-<SPC>मार्क रिंग पर करंट पॉइंट लोकेशन को पुश करने के लिए टाइप करें, फिर बाद C-u C-<SPC>में मार्क रिंग में पिछले स्थान पर पॉइंट सेट करने के लिए टाइप करें।


3

मैं इसका उपयोग करता हूं:

;;; scrollers - M-f, M-b
(global-set-key "\M-f" "\C-u1\C-v")
(global-set-key "\M-b" "\C-u1\M-v")

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