प्रभावी रूप से मार्क रिंग का उपयोग करना


29

मैंने एक बफर के क्षेत्रों का चयन करने के लिए चिह्न का उपयोग किया है। उदाहरण के लिए, मुझे पता है कि अनुक्रम C-<space> C-s fooका उपयोग वर्तमान बिंदु और बिंदु के बीच सभी पाठ का चयन करने के लिए किया जा सकता है foo

मैंने हाल ही में मार्क रिंग के अस्तित्व की खोज की है, इसलिए मैं C-<space> C-<space>एक निशान छोड़ सकता हूं , बिंदु को बफर में स्थानांतरित कर सकता हूं , और फिर C-u C-<space>वापस कूदने के लिए।

क्या मार्क रिंग के उपयोग से प्रभावी रूप से नेविगेट करने के लिए कोई सुझाव, गाइड या टिप्स हैं?


2
सवाल पूछने के लिए धन्यवाद। एक विचार जो मेरे साथ होता है, वह है "निशान जोड़ने" के लिए तेजी से बाध्यकारी बनाना, जैसे (global-set-key (kbd "s-m") '(lambda () (interactive) (push-mark)))
जो कॉर्नेल

जवाबों:


22

हेल्म में स्थानीय और वैश्विक दोनों मार्क-रिंग ब्राउज़ करने के लिए एक इंटरफ़ेस है helm-all-mark-rings:।

एक संक्षिप्त विवरण और एक स्क्रीनशॉट के लिए मिनी-गाइड देखें ।

और यदि आप आइवी / स्विपर / काउंसिल पसंद करते हैं , तो देखें counsel-mark-ring


बहुत बढ़िया। एक चीज जो इसमें सुधार कर सकती थी वह है मार्क रिंग से निशान हटाने की एक क्रिया ...
जो कॉर्नेल

12

जब आप set-mark-command-repeat-popके tमाध्यम से सेट करें

(setq set-mark-command-repeat-pop t)

मार्क रिंग में संग्रहीत पिछले स्थानों पर कूदने C-SPCके पहले आह्वान के बाद आप दबाए रख सकते हैं C-u C-SPC


10

मुझे स्थानों को चिह्नित करने के लिए रजिस्टरों का उपयोग करना आसान लगता है: C-x r <space>और फिर एक पत्र को चिह्नित करने के लिए, C-x r jऔर वापस कूदने के लिए एक पत्र। मैं कई बफ़र्स के बीच बारी-बारी से बहुत उपयोगी अंकों को बनाए रख सकता हूँ


2
मैं हमेशा अपने आप को अपने रजिस्टर को असाइन करने के लिए सबसे अच्छा पत्र तय करने के लिए
रुकता हूँ

@nispio कुछ समय पहले मैंने एक्सटेंशन git@github.com लागू किया है: atykhonov / iregister.el.git एक विचार था: निर्णय को छोड़ दें जो उपयोग करने के लिए रजिस्टर करें। हो सकता है कि एक्सटेंशन आपके लिए उपयोगी न हो लेकिन आप उस विचार को उधार ले सकते हैं जिसमें आपकी कस्टम स्क्रिप्ट बस किसी भी मुफ्त रजिस्टर का उपयोग कर सकती है और फिर यह उपयोग किए गए रजिस्टरों को ब्राउज़ करने और पुनर्स्थापित करने की अनुमति देगा।
एंड्री टाइखोनोव

9

C-x C-xके लिए exchange-mark-and-pointसमान उपयोग है C-u C-space। यह आपको एक बिंदु और अंतिम चिह्न के बीच उछाल देता है। यह उछलने के लिए थोड़ा अजीब है transient-mark-modeक्योंकि यह निशान को सक्रिय करता है और क्षेत्र का चयन करता है।


C-x C-xक्षणिक-निशान-मोड के साथ अंतिम चीज जिसे आपने या तो चयनित किया है (iedit मोड के साथ उपयोगी) या yanked को चुनने के लिए उत्कृष्ट है।
रूण कागार्ड

8

आपके द्वारा यहां प्राप्त अन्य युक्तियों के अलावा, मैंने सोचा कि मुझे उल्लेख करना चाहिए जो C-sआपके लिए चिह्न सेट करता है, इसलिए इसे स्पष्ट रूप से करने की कोई आवश्यकता नहीं है। साथ ही, कई कमांड जो "संभावित रूप से लंबा रास्ता तय करते हैं" ( beginning-of-bufferऔर end-of-bufferउदाहरण के लिए) उस चिह्न को भी सेट करता है जहां आपने शुरू किया था। मार्क (पॉप, एक्सचेंज प्वाइंट और मार्क, आदि) के साथ काम करने के अन्य तरीकों के साथ मिलकर यह बफर के साथ काम करने का एक बहुत शक्तिशाली तरीका है, एक बार जब आप समझते हैं कि यह कैसे काम करता है। यह भी ध्यान दें कि यदि आप टेक्स्ट को बफर में रखते हैं, तो पॉइंट और मार्क येंक्ड टेक्स्ट को घेर लेते हैं।


5

(आपका प्रश्न बहुत खुला हुआ है, इसलिए यह मुख्य रूप से राय-आधारित होने के कारण बंद हो सकता है।)

मैं क्या उपयोग करता हूं: किसी भी बफर ( ), और ( ) में वैश्विक निशान के बीच यात्रा करने के लिए इकोल्स मल्टी-कमांड icicle-goto-marker (बाउंड टू C-- C-SPC) यात्रा करने के लिए ।mark-ringicicle-goto-global-markerC-- C-x C-SPCglobal-mark-ring

पाठ की पंक्तियाँ जहाँ मार्कर स्थित हैं, को पूर्ण करने वाले उम्मीदवारों के रूप में उपयोग किया जाता है। आप उम्मीदवारों को मेल खाने वाली पंक्तियों को संकीर्ण करने के लिए कुछ पाठ (जैसे, सबस्ट्रिंग, regexp) टाइप कर सकते हैं। आप अपनी पसंद की किसी भी चीज़ पर जाकर, मेल खाने वाली लाइनों के बीच साइकिल चला सकते हैं। यदि आप पुस्तकालय का उपयोग करते हैं crosshairs.elतो आपके द्वारा देखी जाने वाली एक मार्कर की स्थिति को अस्थायी रूप से क्रॉसहेयर के साथ हाइलाइट किया जाता है, इसलिए आप जल्दी से देख सकते हैं कि यह कहाँ है।

यहाँ डॉक्टर स्ट्रिंग का हिस्सा है icicle-goto-marker:

Go to a marker in this buffer, choosing it by the line that includes it.
If `crosshairs.el' is loaded, then the target position is highlighted.

By default, candidates are sorted in marker order, that is, with
respect to their buffer positions.  Use `C-M-,' or `C-,' to change the
sort order.

During completion you can use these keys:

`C-RET'   - Goto marker named by current completion candidate
`C-down'  - Goto marker named by next completion candidate
`C-up'    - Goto marker named by previous completion candidate
`C-next'  - Goto marker named by next apropos-completion candidate
`C-prior' - Goto marker named by previous apropos-completion candidate
`C-end'   - Goto marker named by next prefix-completion candidate
`C-home'  - Goto marker named by previous prefix-completion candidate
`<S-delete>' - Delete marker named by current completion candidate

Use `mouse-2', `RET', or `S-RET' to choose a candidate as the final
destination, or `C-g' to quit.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.