はじめてのorg-mode:Enterだけで新規項目

onlyenter.png
通常、新規項目として見出しを作る場合には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というパッケージもあるが、これはリストだけであって見出しには有効ではないようだ。
リストだけこの挙動になってほしい人は使ってみてほしい。

コメント

タイトルとURLをコピーしました