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