मैं कुछ इमैक फ़ंक्शंस में "डिफ़ॉल्ट" (पिछली बार उपयोग की गई) स्ट्रिंग से कैसे छुटकारा पा सकता हूं?


12

मुझे निम्नलिखित समस्या है: जब मैं 'Cx rt' (स्ट्रिंग-आयत) का उपयोग करता हूं, तो मुझे चयनित आयत को बदलने के लिए कुछ स्ट्रिंग दर्ज करने के लिए प्रेरित किया जाता है। आइए हम कहते हैं टाइप करें ";; (आयत बाहर टिप्पणी करने के लिए)। यह ठीक काम करता है, लेकिन अगली बार जब मैं एक ही फ़ंक्शन को कॉल करता हूं, और मैं कुछ भी नहीं (खाली स्ट्रिंग) के साथ बदलना चाहता हूं, तो मैं ऐसा नहीं कर सकता, क्योंकि "डिफ़ॉल्ट" स्ट्रिंग ";;" कि मैं पहले इस्तेमाल किया था, और अगर मैं सिर्फ हिट दर्ज कमांड का उपयोग करेगा कि; ";; खाली के बजाय स्ट्रिंग। मैं इसे खाली स्ट्रिंग पर कैसे सेट करूं?

इसी तरह की समस्या मुझे कुछ खोज / प्रतिस्थापित कार्यों के साथ थी। मूल रूप से, जब यह मेरे द्वारा उपयोग किए गए अंतिम स्ट्रिंग को याद करता है, और इसे डिफ़ॉल्ट रूप से सेट करता है, तो मैं इसके बजाय "स्ट्रिंग" कैसे दर्ज करूं?

संपादित करें:

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

यदि आप 'Mx rgrep' से जुड़े हैं, तो यह 3 इनपुट के लिए आपसे कहता है:

1) क्या खोजना है: जो भी आप यहां दर्ज करते हैं, अगली बार जब आप rgrep का उपयोग करते हैं तो डिफ़ॉल्ट रूप से उपयोग किया जाएगा। जैसा कि किसी ने बताया, यह खाली स्ट्रिंग की खोज करने का कोई मतलब नहीं है, इसलिए इस "डिफ़ॉल्ट" मान को साफ़ करना वास्तव में कभी भी आवश्यक नहीं है मुझे लगता है।

2) इसके बाद यह पूछेगा कि किन फाइलों को खोजना है। यह वास्तविक डिफ़ॉल्ट है "सभी" फाइलें। यदि मैं * .txt, और खोज दर्ज करता हूं, तो अगली बार जब मैं rgrep का उपयोग करता हूं, तो * .txt का उपयोग "डिफ़ॉल्ट" के रूप में किया जाएगा। अब मैं इसे "डिफ़ॉल्ट" * साफ़ करना चाहता हूँ, और अपने मूल डिफ़ॉल्ट, "सभी" पर लौटें, जैसा कि मैं स्पष्ट करने के लिए; ";" "डिफ़ॉल्ट" स्ट्रिंग-आयत फ़ंक्शन में यह वास्तविक डिफ़ॉल्ट, खाली स्ट्रिंग है।

बेशक, सभी फ़ाइलों के लिए यह विशिष्ट समस्या शायद टाइपिंग के साथ हल हो सकती है *? लेकिन यह सामान्य समस्या संभावित अन्य आदेशों के साथ बनी हुई है जो अंतिम उपयोग किए गए मूल्य को याद करते हैं।

3) यह अगले आधार निर्देशिका के लिए पूछेगा, यहाँ कोई समस्या नहीं है।

इसलिए, जिस तरह से मैं इसे देखता हूं, जब भी emacs कुछ कमांड में मेरे पिछले उपयोग किए गए मूल्य को याद करके मेरी मदद करने की कोशिश करता है (जो कि मैं ज्यादातर समय बहुत मददगार पाता हूं) तो उस तरीके को साफ करने का एक तरीका होना चाहिए जैसे कि मैंने कभी भी इस्तेमाल नहीं किया। पहले आज्ञा।

पुनश्च मैं अभी भी emacs के लिए नया हूँ, और शायद मुझे जिस कार्यक्षमता की आवश्यकता है, वह नहीं है, क्योंकि हमेशा कुछ वर्कअराउंड होता है?


1
मुझे विश्वास है कि यह मुश्किल है, क्योंकि पढ़ने और खाली स्ट्रिंग के लिए डिफ़ॉल्ट मूल्य का आदान-प्रदान ज्यादातर मामलों में एक ही फ़ंक्शन में नहीं होता है। इस विशिष्ट मामले delete-rectangleमें एक विकल्प है।
राजनेता

यदि आप चयनित आयत में स्थान सम्मिलित करने का इरादा रखते हैं, तो आप उपयोग कर सकते हैं clear rectangle
कौशल मोदी

यदि आप टिप्पणी / असहजता को रोकना चाहते हैं, तो उपयोग क्यों नहीं करते comment-dwim? खोज के लिए "खाली" स्ट्रिंग दर्ज करने से भी समझ में नहीं आएगा, लेकिन आप प्रतिस्थापित भाग के लिए एक रिक्त स्ट्रिंग दर्ज करने में सक्षम हैं। मैं अधिक उदाहरणों को देखने के लिए उत्सुक हूं जहां एक उपयोगकर्ता द्वारा खाली स्ट्रिंग दर्ज करना आवश्यक हो सकता है।
कौशल मोदी

3
बस अपने विवरण को जल्दी से देखा, लेकिन ऐसा लगता है कि कमांड के डिजाइन के साथ कोई समस्या हो सकती है string-rectangle। जब भी एक खाली स्ट्रिंग एक संभावित इनपुट के रूप में समझ में आता है तो इसे दर्ज करने का एक तरीका होना चाहिए, जैसा कि डिफ़ॉल्ट मान को स्वीकार करने से अलग है। कमांड के लिए डॉक्टर पर (और इसके स्रोत कोड पर, यदि आप उस के साथ सहज हैं) बारीकी से देखें, यह देखने के लिए कि क्या वास्तव में यहां कोई डिजाइन दोष है। यदि आपको लगता है कि है, तो कृपया इसकी रिपोर्ट करें M-x report-emacs-bug:।
आकर्षित किया

के लिए 2), आप सचमुच प्रवेश कर सकते हैं all, जो इससे थोड़ा अलग है *: यह .*भी मेल खाता है।
npostavs

जवाबों:


3

इसके बजाय C-x r t( string-rectangle), उपयोग C-x r k( kill-rectangle) का उपयोग न करें ।


1
मैंने केवल दिए गए विशिष्ट उदाहरण का उत्तर दिया क्योंकि IMO सामान्य मामला (शीर्षक में प्रश्न) कोई (सामान्य) उत्तर नहीं मानता है। फिर भी, मैं उल्लेख करना चाहता हूं कि C-j(इसके बजाय RET) कुछ मामलों में मदद कर सकता है, जैसे कि आईडी-मोड।
यंगफ्रॉग

3

सामान्य स्थिति में, आप जो चाहते हैं वह प्राप्त नहीं किया जा सकता है। ऐसा इसलिए है क्योंकि Emacs में कई उपयोगिताओं और मोड्स अपने रीड-कम्पलीट किए गए इतिहास को अलग-अलग वेरिएबल्स में स्टोर करते हैं, एक स्थान पर नहीं। आप मैन्युअल रूप से उन इतिहास चर को nil(आपके C-x r tउदाहरण के लिए (setq string-rectangle-history nil)) सेट कर सकते हैं , लेकिन यह पैमाना नहीं है। कोड को पढ़े बिना इतिहास चर के नामों की खोज करना भी आसान नहीं है।

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