org-blank-be-new-entry는 TODO 목록과 텍스트 개요를 구별합니까?


10

우리 중 많은 사람들처럼, 나는 두 가지 다른 일에 org-mode를 사용합니다.

  1. TODO 목록 관리자로서
  2. 텍스트 아웃 라이너로서

빈 줄이 문맥에 따라 다르게 작동하기를 원합니다.

  1. TODO 목록 : 빈 줄 없음
  2. 텍스트 개요 : 제목이 아닌 텍스트가 제목보다 앞에 오면 빈 줄 1을 자동으로 삽입

다시 말해서, 많은 제목이 연속으로있을 때 TODO 목록을 수행 할 때 그 사이에 줄 바꿈을 원하지 않습니다.

TODO 목록 모드, 줄 바꿈 없음 :

* Organize Party [33%]
 ** TODO Call people [1/2]
 *** TODO Peter
 *** DONE Sarah
 ** TODO Buy food
 ** DONE Talk to neighbor 

그러나 텍스트를 작성할 때 시각적 공백 / 읽기 쉽도록 줄 바꿈을 원합니다.

개요 모드, 제목 앞의 빈 줄 :

* Heading 
This is a document that has a heading, and a body. The body will consist of two paragraphs with sub-headings.

* Body  
This is an introduction to the body. The body has two sub-headings, each of which have their own paragraph.  

** The First Paragraph  
This is the first of two paragraphs. 

** The Second Paragraph
This is the second of two paragraphs.  

이미 org-blank-be-new-entry를 auto로 설정했습니다.

 ((heading . auto)
 (plain-list-item . auto))

그러나 나는 새로운 항목 이전의 org-blank가 그 지역의 다른 빈 줄을 감지하여 작동한다고 생각합니다. 앞의 텍스트 줄이 제목인지 아닌지를 감지하고 싶습니다.

제목만으로 구성된 TODO 목록에있을 때 org-meta-return줄 바꿈을 추가하지 않도록 org-blank-new-before-new-entry를 수정하려면 어떻게해야 합니까? 그러나 텍스트 블록 후에는 그렇지 않습니까?


이것에 대한 해결책을 찾았습니까? 나는 emacs subreddit 에 대해 같은 질문을 잠시 시도했지만 아무 소용이 없었다.
MajorBriggs

예, 사용자 정의 기능을 통해. 게시하겠습니다.
incandescentman

답변:


5

이는 조직 제목에 있는지 확인하는 사용자 정의 함수를 작성하여 수행 할 수 있습니다.

(setq org-blank-before-new-entry
      '((heading . always)
       (plain-list-item . nil)))

(defun call-rebinding-org-blank-behaviour (fn)
  (let ((org-blank-before-new-entry
         (copy-tree org-blank-before-new-entry)))
    (when (org-at-heading-p)
      (rplacd (assoc 'heading org-blank-before-new-entry) nil))
    (call-interactively fn)))

(defun smart-org-meta-return-dwim ()
  (interactive)
  (call-rebinding-org-blank-behaviour 'org-meta-return))

(defun smart-org-insert-todo-heading-dwim ()
  (interactive)
  (call-rebinding-org-blank-behaviour 'org-insert-todo-heading))

(define-key org-mode-map (kbd "M-<return>") 'smart-org-meta-return-dwim) 

1
C-ret(org-insert-heading-respect-content), M-S-return(org-insert-todo-heading) 및 C-S-return(org-insert-todo-heading-respect ) 제목을 삽입하는 다른 세 가지 방법 으로이 작업을 어떻게 수행 할 수 있습니까? -함유량)?
MajorBriggs

명확히하려면 다음 org-insert-todo-heading과 같이 키에 바인딩해도 작동하지 않습니다. (define-key org-mode-map (kbd "MS- <return>") 'smart-org-insert-todo-heading-dwim)
MajorBriggs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.