Emacsでhowmファイルを任意のフォルダに作成を少し変更。
僕は、howmファイルを見やすくするために、見出しと小見出しの二つをつけている。**が見出しで***が小見出し。
- Ctrl+:を押せば行頭に**を挿入
- Ctrl+]を押せば行頭に*を挿入
し、また見出し行は色を変えて目立つようにxyzzyではしていた。
これをemacsでも実装してみる。前回のコードに
- キーバインド
- 色づけ
を付け足してます。
howm-create2dir.el
;;; howmファイルを作成
(defun make-howm-create2dir-file (&optional howm-dir)
(interactive)
(let* ((filename (format-time-string "%Y-%m-%d-%H%M%S.howm"))
(filepath
(if howm-dir
(concat (file-name-as-directory howm-dir) (format-time-string "%Y-%m-%d-%H%M%S.howm"))
(format-time-string "%Y-%m-%d-%H%M%S.howm"))))
(find-file filepath)
(if (eq (point-max) (point-min))
(progn
(insert (format-time-string "= \n\n[%Y-%m-%d %H:%M]\n"))
(goto-char (+ (point-min) 2))))
))
;;; 本体
(defun howm-create2dir (arg)
(if (file-directory-p arg)
(progn
(make-howm-create2dir-file arg)
(howm-create2dir-mode))))
;;; メジャーモード
(define-derived-mode howm-create2dir-mode nil "howm2dir"
"homu mode"
(define-key howm-create2dir-mode-map "\C-c,c" 'make-howm-create2dir-file)
(define-key howm-create2dir-mode-map (kbd "C-:") 'hateda-heading)
(define-key howm-create2dir-mode-map (kbd "C-]") 'hateda-heading2)
(font-lock-add-keywords
nil
'(("^\\*\\*\\*.*\n" . my-face-b-1)
("^\\*\\*.*\n" . my-face-b-2))))
;;; フェイス
(defface my-face-b-1 '((t (:foreground "white" :background "SteelBlue"))) nil)
(defface my-face-b-2 '((t (:foreground "white" :background "blue"))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
;;; 行頭に見出しをつける
(defun hateda-heading ()
(interactive "*")
(save-excursion
(beginning-of-line)
(insert "**")))
(defun hateda-heading2 ()
(interactive "*")
(save-excursion
(beginning-of-line)
(insert "*")))
(provide 'howm-create2dir)
(provide 'howm-create2dir-mode)
色の付け方は
- deffaceで色を設定
- font-lock-add-keywordsで割り当て
という順序らしい。

0 件のコメント:
コメントを投稿