less than 1 minute read

Doom Emacs는 org-mode 일 때, 소스코드 블록 이동을 ]c, [c 키에 바인딩한다. ]c 키를 누르면 문서에서 #+begin_src 문자열을 찾는다.

(use-package! evil-org
  (let-alist evil-org-movement-bindings
    (map! :map evil-org-mode-map
          :m "]c"  #'org-babel-next-src-block
          :m "[c"  #'org-babel-previous-src-block)))

소스코드 블록뿐만 아니라 #+begin_example, #+begin_quote 이런 다른 블록들도 이동할 수 있는 키바인딩이 있으면 편할 것 같다. org-babel-next-src-block 코드를 살펴보니 org-next-block 함수를 호출한다.

(defun org-next-block (arg &optional backward block-regexp)
  (interactive "p")
  (let ((re (or block-regexp "^[ \t]*#\\+BEGIN"))
        (case-fold-search t)
        (search-fn (if backward #'re-search-backward #'re-search-forward))

기본값인 #+begin 을 그대로 사용하면 된다. ]b, [b 키에 바인딩했다. 버퍼 이동 함수에 바인딩된 키인데 사용하지 않아서 뺏었다.

(after! org
  (map! :map org-mode-map
        :n "]b" #'org-next-block
        :n "[b" #'org-previous-block))

조금 더 이동이 민첩해졌다.

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