From: rubikitch Date: 2000-05-09T09:01:43+09:00 Subject: [ruby-list:22403] rd-mode.el るびきちです。 rd-mode.el の rd-insert-xxx を因数分解(笑)してみた。 他にちょいと手直しを。 取り込んでくれるとありがたい。 パッチにしたかったけど、いろんなバージョンがありそうなので(^^;) これで好きなインターフェースを選択できる。 t ならばプロンプトを表示。 デフォルトはnilで従来のインターフェース (defvar rd-use-prompt-when-insertion-p nil "Whether to use prompt when inserting inline.") やっぱり関数にくるむべきだと思う。 (defun rd-setup-keys () (interactive) (define-key rd-mode-map "\t" 'rd-indent-line) (define-key rd-mode-map "\C-j" 'rd-newline-and-indent) (define-key rd-mode-map "\C-cv" 'rd-cite-region) (define-key rd-mode-map "\C-cie" 'rd-insert-emphasis) (define-key rd-mode-map "\C-cic" 'rd-insert-code) (define-key rd-mode-map "\C-civ" 'rd-insert-var) (define-key rd-mode-map "\C-cik" 'rd-insert-keyboard) (define-key rd-mode-map "\C-cii" 'rd-insert-index) (define-key rd-mode-map "\C-cir" 'rd-insert-ref) (define-key rd-mode-map "\C-ciu" 'rd-insert-reftourl) (define-key rd-mode-map "\C-cif" 'rd-insert-footnote) (define-key rd-mode-map "\C-cib" 'rd-insert-verb) (define-key rd-mode-map "\C-cy" 'rd-yank-as-url) (define-key rd-mode-map "\C-c\C-y" 'rd-yank-pop-as-url) (define-key rd-mode-map "\C-c\C-u" 'rd-insert-url)) んでもって↓に追加する。 (define-derived-mode rd-mode text-mode "RD" "Major mode for RD editing." 省略 (rd-setup-keys) ) これで因数分解(笑) かなり見やすくなったと思う。 (defun rd-insert-inline (beg end str) "Insert Inline Inline (general)." (if str (insert (concat beg str end)) (progn (if rd-use-prompt-when-insertion-p (rd-insert-inline beg end (read-string (concat beg " elm " end ": "))) (insert beg end) (backward-char (length end)))))) (defun rd-insert-emphasis (&optional str) "Insert Inline Emphasis." (interactive "*") (rd-insert-inline "((*" "*))" str)) (defun rd-insert-code (&optional str) "Insert Inline Code." (interactive "*") (rd-insert-inline "(({" "}))" str)) (defun rd-insert-var (&optional str) "Insert Inline Var." (interactive "*") (rd-insert-inline "((|" "|))" str)) (defun rd-insert-keyboard (&optional str) "Insert Inline Keyboard." (interactive "*") (rd-insert-inline "((%" "%))" str)) (defun rd-insert-index (&optional str) "Insert Inline Index." (interactive "*") (rd-insert-inline "((:" ":))" str)) (defun rd-insert-ref (&optional str) "Insert Inline Reference." (interactive "*") (rd-insert-inline "((<" ">))" str)) (defun rd-insert-reftourl (&optional str) "Insert Inline RefToURL." (interactive "*") (rd-insert-inline "(())" str)) (defun rd-insert-footnote (&optional str) "Insert Inline Footnote." (interactive "*") (rd-insert-inline "((-" "-))" str)) (defun rd-insert-verb (&optional str) "Insert Inline Verb." (interactive "*") (rd-insert-inline "(('" "'))" str)) るびきち☆ http://i.am/rubikitch