Làm thế nào để kiên trì đánh dấu ác?


10

Tôi muốn có thể lưu các điểm đánh dấu ác cục bộ đệm của mình (m để đánh dấu một vị trí và sau đó 'hoặc' để nhảy tới đó) qua các phiên / trường hợp emacs. Tôi không thực sự chắc chắn làm thế nào để làm điều này. Tôi đã thử cài đặt / sử dụng phiên và thêm chúng như vậy:

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

Điều này không hoạt động mặc dù, và tôi không chắc chắn những gì khác để thử. Cảm ơn.


Vim tự động lưu các điểm đánh dấu cục bộ vào đĩa theo mặc định. Evil không, bởi vì nó không mô phỏng tính năng + viminfo của Vim . Bạn đã gửi yêu cầu tính năng cho trình theo dõi vấn đề Evil chưa? Họ đã trả lời chưa?
không thể quênSupportsMonica

@angelic_sedition thực sự, đây không phải là về cái ác, mà là về các biến đệm cục bộ liên tục. Cái sau này chung chung và hữu ích hơn nhiều, và tôi khá thích thú với câu trả lời. Tôi đã tạo một thẻ cho câu hỏi của bạn.
PythonNut 14/07/2015

@PythonNut Vâng, tôi đã thấy rằng vấn đề cụ thể là với các điểm đánh dấu (tôi nghĩ). Cả máy tính để bàn và session.el đều lưu trữ các biến cục bộ cho các dấu hiệu đánh dấu ác, nhưng cuối cùng chúng không khớp với giá trị thực tế (bất cứ thứ gì như (108. # <Marker tại 54991 trong file.org>) đều bị bỏ qua). Tôi đoán điều này là do họ không thể hoặc không biết cách lưu đối tượng đánh dấu.
noctuid

1
Kể từ tháng 5 năm 2017, đây là một vấn đề mở .
Mirzhan Irkegulov

Câu trả lời:


1

Đây là giải pháp của tôi: Đặt mã bên dưới vào .emacs hoặc .spacemacs của bạn.

Bạn sẽ cần đặt thủ công tên và chữ đánh dấu chữ hoa trên dòng: evil-add-to-alist. Tôi cũng đã sửa đổi cái ác-goto-mark để sửa một lỗi được giới thiệu bằng cách đặt trực tiếp bộ đánh dấu ác-alist. Mã cũ giả sử khi điểm đánh dấu là một khuyết điểm, bộ đệm đã bị đóng. (khi bộ đệm đóng, nó chuyển đổi điểm đánh dấu sang nhược điểm).

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

Tôi quên đề cập đến điều này chỉ hoạt động cho đánh dấu toàn cầu. (đánh dấu chữ hoa)
Hao Đặng

1

desktop.el hỗ trợ lưu trữ / khôi phục các điểm đánh dấu (ít nhất là bây giờ). (add-to-list 'desktop-locals-to-save 'evil-markers-alist)hoặc (cl-pushnew 'evil-markers-alist desktop-locals-to-save)làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.