ईविल मार्करों को कैसे बनाए रखें?


10

मैं emacs सत्र / उदाहरणों में अपने बफर स्थानीय दुष्ट मार्करों को (किसी स्थान को चिह्नित करने के लिए और फिर 'या' उस पर कूदने के लिए) को बचाने में सक्षम होना चाहता हूं। मुझे यकीन नहीं है कि यह कैसे करना है। मैंने सत्र को स्थापित करने / उपयोग करने और उन्हें इस तरह जोड़ने की कोशिश की:

(add-to-list 'session-locals-include 'evil-markers-alist)

हालांकि यह काम नहीं करता है, और मुझे यकीन नहीं है कि और क्या प्रयास करना है। धन्यवाद।


विम स्वतः बफ़र-स्थानीय मार्करों को डिफ़ॉल्ट रूप से डिस्क पर सहेजता है। ईविल नहीं करता है, क्योंकि यह विम के + विमिनफो फीचर का अनुकरण नहीं करता है । क्या आपने ईविल इश्यू ट्रैकर के लिए एक सुविधा अनुरोध सबमिट किया है ? क्या उन्होंने जवाब दिया है?
अविस्मरणीयसुपोर्ट्समोनिका

@angelic_sedition वास्तव में, यह बुराई के बारे में नहीं है, यह लगातार बफर-स्थानीय-चर के बारे में है। उत्तरार्द्ध कहीं अधिक सामान्य और उपयोगी है, और मुझे उत्तर में काफी दिलचस्पी है। मैंने आपके प्रश्न के लिए एक टैग बनाया है।
पाइथननॉट

@PythonNut अच्छा मैंने पाया है कि समस्या विशेष रूप से मार्करों के साथ है (मुझे लगता है)। दोनों डेस्कटॉप और session.el की दुकान बुराई-मार्कर-एलेस्ट के लिए स्थानीय चर बफर करते हैं, लेकिन वे वास्तविक मूल्य (कुछ भी नहीं है। मुझे लगता है कि यह इसलिए है क्योंकि वे नहीं जानते कि मार्कर वस्तु को कैसे बचाया जा सकता है।
रात्रि

जवाबों:


1

यहाँ मेरा समाधान है: अपने .emacs या .spacemacs में नीचे कोड डालें।

आपको मैन्युअल रूप से ऊपरी-केस मार्कर नाम और लाइन में फ़ाइल नाम की आवश्यकता होगी: बुराई-ऐड-टू-एलिस्ट। मैंने एक बग को ठीक करने के लिए बुराई-गोटो-मार्क को भी संशोधित किया, जो सीधे सेट-मार्कर-एलीस्ट द्वारा प्रस्तुत किया गया था। पुराने कोड मान लेते हैं कि जब मार्कर एक विपक्ष है, तो बफर बंद कर दिया गया है। (जब बफर बंद हो जाता है, तो यह मार्कर को विपक्ष में बदल देता है)।

  (setq alist (default-value 'evil-markers-alist))
  (evil-add-to-alist 'alist ?E '("/path/to/yourfile" . 1))
  (setq-default evil-markers-alist alist)

  (evil-define-command evil-goto-mark (char &optional noerror)
    "Go to the marker specified by CHAR."
    :keep-visual t
    :repeat nil
    :type exclusive
    (interactive (list (read-char)))
    (let ((marker (evil-get-marker char)))
      (cond
       ((markerp marker)
        (switch-to-buffer (marker-buffer marker))
        (goto-char (marker-position marker)))
       ((numberp marker)
        (goto-char marker))
       ((consp marker)
        (when (or (and (find-buffer-visiting (car marker))
                       (switch-to-buffer (find-buffer-visiting (car marker)) )
                       )
                  (and (y-or-n-p (format "Visit file %s again? "
                                         (car marker)))
                       (find-file (car marker))))
          (goto-char (cdr marker))))
       ((not noerror)
        (user-error "Marker `%c' is not set%s" char
                    (if (evil-global-marker-p char) ""
                      " in this buffer"))))))
  )

मैं यह उल्लेख करना भूल जाता हूं कि यह केवल वैश्विक मार्कर के लिए काम करता है। (अपर केस मार्कर)
हाओ डेंग

1

Desktop.el स्टोरर्स / रिस्टोरिंग मार्कर्स (अब कम से कम) का समर्थन करता है। (add-to-list 'desktop-locals-to-save 'evil-markers-alist)या (cl-pushnew 'evil-markers-alist desktop-locals-to-save)मेरे लिए काम करते हैं।

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