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 件のコメント:
コメントを投稿