通常、新規項目として見出しを作る場合にはC-RET(Controlキーを押しながらEnterキー)またはM-RET(Altキーを押しながらEnterキー、またはEscキーを押した後、Enterキー)が必要になる。
Controlキーを使った操作は慣れているとはいえ、頻回Controlキーに左手小指を伸ばすのもつらい。
PowerPointなどはEnterを押すだけで新規見出しが作られる。
今回はorg-modeでこの動作が可能になるカスタマイズ方法を紹介する。
.emacsなどに以下を追加しよう。
__
(defun scimax/org-return ()
"Add new list or headline "
(interactive)
(cond
((org-in-item-p)
(if (org-element-property :contents-begin (org-element-context))
(org-insert-heading)
(beginning-of-line)
(kill-line)
(org-return)))
((org-at-heading-p)
(if (not (string= "" (org-element-property :title (org-element-context))))
(org-insert-heading)
(beginning-of-line)
(kill-line)
(org-return)))
((org-at-table-p)
(if (-any?
(lambda (x) (not (string= "" x)))
(nth
(- (org-table-current-dline) 1)
(org-table-to-lisp)))
(org-return)
;; empty row
(beginning-of-line)
(kill-line)
(org-return)))
(t
(org-return))))
(with-eval-after-load 'org
(define-key org-mode-map (kbd "RET") 'scimax/org-return))
(参考サイト)
https://emacs.stackexchange.com/questions/24574/org-mode-default-to-alt-enter-for-bullets
なお、こちらに改良版があるがbuffer-substringで警告が出るので当面は上のほうを使うことにする。
(参考サイト)
https://kitchingroup.cheme.cmu.edu/blog/2017/04/09/A-better-return-in-org-mode/
なお、org-autolistというパッケージもあるが、これはリストだけであって見出しには有効ではないようだ。
リストだけこの挙動になってほしい人は使ってみてほしい。