;;; HTML input support (defun search-tag-backward () "search tag backward" (if (re-search-backward "<\\(/?\\)\\([0-9a-zA-Z]+\\)" nil t) (list (match-string 1) (match-string 2)) ) ) (defun search-unterminatedtag-backward () "search unterminated tag backward" () (let ( (tags 0) (term t) ) (while (and (<= tags 0) term) (setq term (search-tag-backward)) (if term (setq tags (+ tags (if (string-equal "/" (car term)) -1 1))) (setq break t) ) ) term )) (defun insert-end-tag () "insert terminate tag." (interactive) (let ( (p0 (point)) (tag (search-unterminatedtag-backward)) ) (goto-char p0) (if tag (insert (concat "</" (cadr tag) ">"))) )) (global-set-key [?\C-1] '(lambda () (interactive) (insert "<h1>"))) (global-set-key [?\C-2] '(lambda () (interactive) (insert "<h2>"))) (global-set-key [?\C-3] '(lambda () (interactive) (insert "<h3>"))) (global-set-key [?\C-.] '(lambda () (interactive) (insert-end-tag))) (global-set-key [?\C-<] '(lambda () (interactive) (re-search-backward "<"))) (global-set-key [?\C->] '(lambda () (interactive) (re-search-forward ">"))) (global-unset-key [?\C-0]) (global-set-key [?\C-0 ?\C-p] '(lambda () (interactive) (insert "<p></p>") (backward-char 4))) (global-set-key [?\C-0 C-return] '(lambda () (interactive) (insert "<br>")))while がダサい(- -;;;)
input とか終了タグがない要素が困る
コメントをかく