;; $Id: prime-style.el,v 1.4 2003/05/08 19:50:57 komatsu Exp $ (defcustom prime-style nil "PRIME の入力スタイル 'default, 'capital-only, 'komatsu から選択可能. 'default: デフォルトの入力スタイル 'capital-only: 大文字のみが日本語入力開始キー 'komatsu: 小松 (PRIME の作者) の入力スタイル") (defcustom prime-style-kutouten-autochange-p nil "自動的に句読点を変更する") (defcustom prime-style-kutouten '("。" . "、") "句点(。)と読点(、)のペア") (defvar prime-style-kutouten-local nil "バッファローカルの句読点") (make-variable-buffer-local 'prime-style-kutouten-local) (defun prime-style-default () "デフォルトの入力スタイル" (interactive) (setq prime-style-kutouten '("。" . "、")) (setq prime-direct-key-alist '((?] "」") (?[ "「"))) (setq prime-fix-by-capital-p t) (setq prime-enum-mode t) ) (defun prime-style-capital-only () "大文字のみを日本語入力開始キーとする. by 平岡さん " (interactive) (let ((symbols "0123456789!@#$%^&*()_=+\\|[{]};:'\"`,.<>~/?") (alphabets "abcdefghijklmnopqrstuvwxyz-")) (mapcar '(lambda (c) (define-key prime-fund-mode-map (string c) nil)) (concat alphabets symbols)) (setq prime-direct-key-alist (mapcar (lambda (c) (list c (string c))) symbols)) )) (defun prime-style-komatsu () "小松 (PRIME の作者) の入力スタイル" (interactive) (setq prime-style-kutouten '("." . ", ")) (setq prime-style-kutouten-autochange-p t) (setq prime-direct-key-alist (append (mapcar (lambda (c) (list c (string c))) "!@#$%^&*(_=+\\|{;:'\"`.<~") '((?[ "「") (?] "」") (?? "? ") (?> "> ") (?\) ") ") (?\} "} ")))) (setq prime-language-always-hiragana nil) ) ;;;; 句読点 ======================================== (defun mell-match-score-region (regexp-list start end &optional buffer) (and buffer (set-buffer buffer)) (sort (mapcar '(lambda (symbol) (let ((symbol-output (if (consp symbol) (car symbol) symbol)) (symbol-regexp (if (consp symbol) (cdr symbol) symbol))) (cons symbol-output (mell-match-count-region symbol-regexp start end)))) regexp-list) '(lambda (val1 val2) (> (cdr val1) (cdr val2))) )) (defun mell-match-score-buffer (regexp-list &optional buffer) (and buffer (set-buffer buffer)) (mell-match-score-region regexp-list (point-min) (point-max))) ;; mell 行き? (defvar prime-style-kuten-list '("。" "." ("." . "\\cj\\. \\|\\cj\\.$"))) (defvar prime-style-touten-list '("、" "," (", " . "\\cj\\, \\|\\cj\\,$"))) ;; mell 行き? (defun prime-style-kutouten-guess () (cons (car (car (mell-match-score-region prime-style-kuten-list (max (point-min) (- (point) 1000)) (min (point-max) (+ (point) 1000)) ))) (car (car (mell-match-score-region prime-style-touten-list (max (point-min) (- (point) 1000)) (min (point-max) (+ (point) 1000)) ))) )) (defun prime-style-kutouten-set (kuten touten) (interactive "s句点 (。など): \ns読点 (、など): ") (setq prime-style-kutouten-local (cons kuten touten)) ) (defun prime-style-kutouten-set-automatically () (interactive) (if (null prime-style-kutouten-local) (let ((kutouten (prime-style-kutouten-guess))) (prime-style-kutouten-set (car kutouten) (cdr kutouten)) ))) (provide 'prime-style)