以前は「行頭に**を付ける」「行頭に*を付ける」を2つのキーに割り振り、見出し、小見出しの調整を自力でやっていた。今回は、行頭にある文字を判断して行頭に見出しを付けたり、戻したりできるようにした。
Ctrl+:を押すたびに、見出し(## )→小見出し(### )→解除 の順番で切り替わる。
markdown-kihou.l
; -*- Mode: Lisp -*-
;
;; MarkDown記法の見出しの実装(色づけとキーバインド)
;;
;; 行頭が"##"か"###"ならばその行に色をつける
;;
;; キーバインド
;; C-: 行頭に見出しを付けたり、戻したりする
;; 見出し(## )→小見出し(### )→解除 の順番
;;
;; Installation:
;;
;; ~/.xyzzy または $XYZZY/site-lisp/siteinit.l に以下のコードを追加
;;
;; (require "markdown-kihou")
(defun markdown-heading ()
(interactive "*")
(save-excursion
(save-restriction
(narrow-to-region
(progn (beginning-of-line) (point))
(progn (end-of-line) (point)))
(beginning-of-line)
(cond
((scan-buffer "^[ \t]*### ?" :regexp t) (replace-match ""))
((scan-buffer "^[ \t]*## ?" :regexp t) (insert "#"))
(t (insert "## "))))))
(global-set-key #\C-: 'markdown-heading)
(defvar *text-mode-formats*
(compile-regexp-keyword-list
'(
("^[=].*" t (:color 14 7 :line :bold ))
("^[#][#][#][^*].*" t (:color 7 14 :line ))
("^[#][#][^*].*" t (:color 7 4 :line ))
)
)
)
(defun my-color-text-mode ()
(make-local-variable 'regexp-keyword-list)
(setq regexp-keyword-list *text-mode-formats*)
)
(setq regexp-keyword-list *text-mode-formats*)
(add-hook 'text-mode-hook 'my-color-text-mode)
参考
xyzzyで現在行をコメントアウトしたり戻したりする設定 - phithonの日記
0 件のコメント:
コメントを投稿