less than 1 minute read

org mode 구획 제목(heading) 사이에 빈 줄을 넣는 걸 선호한다. org mode로 볼 때야 있던 없던 상관이 없다. 간혹 그냥 텍스트를 볼 때가 있는데, 빈 줄이 있고 없고가 가독성에 큰 영향을 준다. 그래서 구획 제목 사이에 빈 줄을 넣는 걸 선호한다.

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

org-blank-before-new-entry 심볼에 리스트를 바인딩해서 빈 줄을 추가할지 말지를 결정할 수 있다. 구획 제목은 빈 줄을 추가하고 리스트 아이템은 빈 줄을 추가하지 않는 걸로 설정했다.

하지만 이렇게 설정해도 원하는 대로 동작하지 않는다.

(map! :map org-mode-map
      ;; textmate-esque newline insertion
      "C-RET"      #'+org/insert-item-below
      "C-S-RET"    #'+org/insert-item-above
      [C-return]   #'+org/insert-item-below
      [C-S-return] #'+org/insert-item-above)

원인은 키를 바인딩한 doom emacs에서 만든 +org/insert-item-below, +org/insert-item-above 함수다. 이 함수에서 org-blank-before-new-entry 심볼값을 참조하지 않아서 설정을 변경해도 동작하지 않았다.

(after! evil-org
  (map! :map evil-org-mode-map
        :ni [C-return]   #'org-insert-heading-respect-content
        :ni [C-S-return] #'org-insert-todo-heading-respect-content
        )
  )

org-mode-map 을 변경할까 했는데, evil-mode 키 바인딩만 변경해도 잘 동작하길래 여기까지만 세팅했다. doom emacs에서 추가한 함수가 아니라 디폴트 함수를 키에 바인딩해서 해결했다.

참고

C-x C-s C-x C-c