วิธียังคงมีตัวบ่งชี้ความชั่วร้าย


10

ฉันต้องการที่จะสามารถบันทึกบัฟเฟอร์เครื่องหมายความชั่วร้ายในพื้นที่ของฉัน (m เพื่อทำเครื่องหมายตำแหน่งแล้ว 'หรือ `เพื่อข้ามไปยังตำแหน่งนั้น) ข้ามเซสชัน / อินสแตนซ์ของ emacs ฉันไม่แน่ใจจริงๆว่าจะทำอย่างไร ฉันพยายามติดตั้ง / ใช้งานเซสชันและเพิ่มเข้าไปเช่น:

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

สิ่งนี้ไม่ได้ผลและฉันไม่แน่ใจว่าจะลองอะไรอีก ขอบคุณ


Vim จะบันทึกตัวทำเครื่องหมายบัฟเฟอร์ท้องถิ่นลงดิสก์โดยอัตโนมัติ Evil ไม่ได้เพราะไม่ได้เลียนแบบคุณลักษณะ+ viminfoของ Vim คุณได้ส่งคำขอคุณสมบัติไปยังตัวติดตามปัญหาEvilหรือไม่? พวกเขาตอบสนองหรือไม่?
ลืมไปข้างหน้า

@angelic_sedition จริงๆมันไม่ได้เกี่ยวกับความชั่วร้ายมันเกี่ยวกับตัวแปรบัฟเฟอร์ท้องถิ่น หลังมีทั่วไปและมีประโยชน์มากขึ้นและฉันค่อนข้างสนใจในคำตอบ ฉันสร้างแท็กสำหรับคำถามของคุณแล้ว
PythonNut

@PythonNut ดีฉันพบว่าปัญหานี้เกิดจากตัวทำเครื่องหมายโดยเฉพาะ (ฉันคิดว่า) ทั้งเดสก์ท็อปและ session.el เก็บตัวแปรโลคัลบัฟเฟอร์สำหรับ evil-markers-alist แต่พวกเขาไม่ได้ลงเอยด้วยการจับคู่ค่าจริง (เช่น 108 108 # <marker ที่ 54991 ใน file.org>) ฉันเดาว่านี่เป็นเพราะพวกเขาไม่สามารถหรือไม่รู้วิธีการบันทึกวัตถุทำเครื่องหมาย
noctuid

1
ณ พฤษภาคม 2017 ก็เปิดประเด็น
Mirzhan Irkegulov

คำตอบ:


1

นี่คือทางออกของฉัน: ใส่รหัสด้านล่างใน. emacs หรือ. spacemacs ของคุณ

คุณจะต้องใส่ชื่อเครื่องหมายบนตัวพิมพ์ใหญ่และชื่อไฟล์ที่บรรทัด: evil-add-to-alist ฉันยังแก้ไข evil-goto-mark เพื่อแก้ไขข้อผิดพลาดที่แนะนำโดย set evil-marker-alist โดยตรง รหัสเก่าจะถือว่าเมื่อเครื่องหมายเป็นข้อเสียบัฟเฟอร์ถูกปิด (เมื่อบัฟเฟอร์ปิดจะแปลงเครื่องหมายเป็นข้อเสีย)

  (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"))))))
  )

ฉันลืมที่จะพูดถึงเรื่องนี้ใช้งานได้เฉพาะกับเครื่องหมายระดับโลกเท่านั้น (เครื่องหมายตัวพิมพ์ใหญ่)
Hao Deng

1

desktop.el รองรับการจัดเก็บ / เรียกคืนเครื่องหมาย (อย่างน้อยตอนนี้) (add-to-list 'desktop-locals-to-save 'evil-markers-alist)หรือ(cl-pushnew 'evil-markers-alist desktop-locals-to-save)ทำงานให้ฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.