markupでのメモ作業は、orgがメインだが、 たまにmarkdownと reStructuredText( rst )を直接使う。sphinxとPelicanを使ってるから。
emacsの設定方法は、 orgやmarkdownについては比較的容易に見付けることができるが、 rst の方はなんとも、 という状況みたい。コピペなんで。
これまでは、標準の rst-mode で yasnippet と flycheck (rstでは、sphinx-build) を 併せて使ってきている。
ちなみに、rst-mode の使っている機能は、
- headerの設定
- tocリスト (imenuで十分だったりする)
ぐらいで特に必須ではないように思う。 listさえ使ってない状況。 当然、効率は著しく悪い。 使い方は、 ネットで探すより rst.el に含まれる英語のドキュメントの方が 私には適切に思えたのだが。
一番不満なのが、outlineが使えないこと。 outlineは、一応、outline-minor-mode を使っているが、 headerを上手に認識してくれず、サポート外のように思える。
そこで今回 move-text を入れてみた。 line-up/down region-up/downが使えれば、 yank,paste とかとの併用で、それなりに改善されるかもと考えたから。
(use-package rst :ensure nil :defer t
:bind( :map rst-mode-map
("C-c r" . rst-preview-by-eww)
("C-M-<down>" . move-text-down)
("C-M-<up>" . move-text-up)
)
:mode
("\\.rst\\'" . rst-mode)
("\\.rest\\'" . rst-mode)
:config
(add-hook 'rst-adjust-hook 'rst-toc-update)
(setq indent-tabs-mode nil)
(setq electric-indent-mode t)
(setq electric-quote-mode nil)
;
(defun rst-preview-by-eww ()
(interactive)
(message (buffer-file-name))
(call-process "pandoc" nil nil nil
(buffer-file-name)
"-o"
"/tmp/rst.html")
(let ((buf (current-buffer)))
(eww-open-file "/tmp/rst.html")
(switch-to-buffer buf)
(pop-to-buffer "*eww*")))
;
(use-package move-text :ensure t)
)
結果として、随分ましになったように思う。 lineでもregionでも上下移動が可能になる。 で、慣れてくれば当然、 promote/demote が欲くなるが.....
rst.el 自体はメンテされているようで、 Debian(buster)のrst.elはemacs26.1までだが、 公式ページのヤツは26.2のようだ。 エキスパートの方達はどう使っているのか不思議。
なお、pandocを使ってewwでpreviewしている(どこかのコピペ)が、 これは、flycheckをオフにして、previewでチェックする、 という使い方になっている。まあ、短かい文章だし、 見た目の確認の必要性はそれほど感じなていない。
riv.vimの方が高機能みたいだが重い。
ちょっとだけ前進したかも。まだまだ先は長そう。 しかし、達人はどう使っているのだろう。
0 件のコメント:
コメントを投稿