이맥스에서 코드를 폴드하는 데는 많은 방법이 있으며 개요 마이너 모드를 사용하여 해결했습니다 ... 훌륭합니다!이맥스 영구 폴딩 모드
그러나 파일을 닫고 다시 열 때 내 접기가 지속되도록해야합니다. Emacs를 다시 시작했을 때 폴드를 좋아하는 방식으로 파일에 폴딩을 설정하는 것은 상당히 실망 스럽습니다.
파일의 폴딩 상태를 영구히 유지하는 방법을 찾은 사람이 있습니까?
이맥스에서 코드를 폴드하는 데는 많은 방법이 있으며 개요 마이너 모드를 사용하여 해결했습니다 ... 훌륭합니다!이맥스 영구 폴딩 모드
그러나 파일을 닫고 다시 열 때 내 접기가 지속되도록해야합니다. Emacs를 다시 시작했을 때 폴드를 좋아하는 방식으로 파일에 폴딩을 설정하는 것은 상당히 실망 스럽습니다.
파일의 폴딩 상태를 영구히 유지하는 방법을 찾은 사람이 있습니까?
편집 : 이제 질문을 이해 ...
방법 다음 코드 nippet 같은 약. 때마다 파일 로컬 변수에 대한 메시지가 나타나지 않도록하는 방법을 찾지 못했지만 저에게는 효과가있는 것처럼 보입니다.
# Local Variables:
# omm-state:()
# mode:omm-state
# End:
Trey에게 의견을 보내 주셔서 감사합니다. 명확하게하기 - 나는 후크로 좋아하는 파일 형식에 대해 개요 마이너 모드를 활성화 할 수 있습니다. 내가 찾고있는 코드 항목을 접어 버퍼를 닫은 다음 나중에 파일을 다시 열면 해당 항목을 계속 접기를 원합니다. –
@Chris 나는 이해하고있다. 이것이 가능하다는 것을 모른다. –
이 지속성은 어디에 저장됩니까? 파일 자체? 나쁜 생각; 다른 파일? 가능 합니다만, 그런 일은 할 수있는 그런 갈고리가 아직 없습니다. 그리고 나는 그 파일들을 여기 저기에 떨어 뜨리는 것에 대해 의심 스러울 것입니다. 하나의 폴더에 모아 있다면 .. 거대한 것입니다. –
나는 이것이 이전 게시물을 실감하지만 FWIW 내가 HS-마이너 모드를 보완하는 사소한 모드를 생성, 개요 :
(defvar omm-state nil
"file local variable storing outline overlays")
(defun omm-state-mode (&optional arg)
"poor man's minor mode to re-apply the outline overlays "
(interactive)
(omm-re-enable-outline-state)
(add-hook 'before-save-hook 'omm-state-save))
(defun omm-get-all-overlays()
"return a list of outline information for all the current buffer"
(save-excursion
(let ((all-overlays (overlays-in (point-min) (point-max))))
(mapcar (lambda (o)
(list (overlay-start o) (overlay-end o) (overlay-get o 'invisible)))
(reverse all-overlays)))))
(defun omm-re-enable-outline-state (&optional arg)
"turn on outline-minor-mode and re-apply the outline information"
(outline-minor-mode 1)
(when (listp omm-state)
(mapcar (lambda (p)
(apply 'outline-flag-region p))
omm-state)))
(defun omm-state-save()
"save the outline state in a file local variable
Note: this just replaces the existing value, you need to start
it off by adding something like this to your file:
# Local Variables:
# omm-state:()
# mode:omm-state
# End:
"
(ignore-errors
(save-excursion
(goto-char (point-max))
(when (search-backward "omm-state:" nil t)
(goto-char (match-end 0))
(kill-sexp)
(princ (omm-get-all-overlays) (current-buffer)))))
nil)
이 솔루션은 같은 것을 사용하여 파일을 "시딩"요구 -mode 등. 또한 "파일을 닫고 다시 열 때 내 접기가 지속되도록해야합니다." :)
패키지는 오늘 MELPA에 있으며 영구 오버레이라고합니다.
이 직접 GitHub의에로도 주문 가능합니다 https://github.com/mneilly/Emacs-Persistent-Overlays
하지 정확한 대답,하지만 당신은 [orgfold.el]와 조직 모드 (http://www.emacswiki.org/emacs/orgfold.el을 사용할 수 있습니다) 또는 [orgfold-separate-file.el] (http://www.emacswiki.org/emacs/orgfold-separate-file.el) - 후자가 하나의 전역 상태 저장소로 작업하면 좋을 것입니다. 파일 (예 : [saveplace.el] (http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/saveplace.el)). – Mark