;;; -*- Mode: Emacs-Lisp -*- ;;; This mode is to tag articles for Named Entity, and Scenario Template. ;;; These emacs-lisp functions are created by Mr.Shinnou, ;;; and modified by Mr.Sekine, and Mr.Nobata. ;;; To use this mode, please add the following description ;;; to your .emacs file. ;;; ;;; (autoload 'pntag-mode "pntag-mode" nil t) ;;; (setq auto-mode-alist (append (list '("\\.key$" . pntag-mode)) ;;; auto-mode-alist)) (defvar pntag-mode-map () "keymap used in pntag mode.") (if pntag-mode-map () (setq pntag-mode-map (make-sparse-keymap)) (define-key pntag-mode-map "\C-x\C-x" 'pntag-organization) (define-key pntag-mode-map "\C-x\C-b" 'pntag-person) (define-key pntag-mode-map "\C-x\C-v" 'pntag-location) (define-key pntag-mode-map "\C-x\C-a" 'pntag-artifact) (define-key pntag-mode-map "\C-x\C-d" 'pntag-date) (define-key pntag-mode-map "\C-x\C-t" 'pntag-time) (define-key pntag-mode-map "\C-x\C-e" 'pntag-money) (define-key pntag-mode-map "\C-x\C-r" 'pntag-percent) (define-key pntag-mode-map "\C-x\C-q" 'pntag-uncertainty) (define-key pntag-mode-map "\C-x\C-o" 'pntag-optional) ) (defun pntag-mode () "Major mode for tagging text." (interactive) (kill-all-local-variables) (use-local-map pntag-mode-map) (setq major-mode 'pntag-mode) (setq mode-name "pntag") (run-hooks 'pntag-mode-hook)) (defun pntag-person () (interactive) (pntag "PERSON")) (defun pntag-artifact () (interactive) (pntag "ARTIFACT")) (defun pntag-location () (interactive) (pntag "LOCATION")) (defun pntag-organization () (interactive) (pntag "ORGANIZATION")) (defun pntag-date () (interactive) (pntag "DATE")) (defun pntag-time () (interactive) (pntag "TIME")) (defun pntag-money () (interactive) (pntag "MONEY")) (defun pntag-percent () (interactive) (pntag "PERCENT")) (defun pntag-uncertainty () (interactive) (pntag "?")) (defun pntag-optional () (interactive) (pntag "OPTIONAL")) (defun pntag (str) (interactive) (let ((name)) (if (null (mark)) (error "No mark set in this buffer") (setq name (buffer-substring (mark) (point)))) (delete-region (mark) (point)) (goto-char (mark)) (insert (concat "<" str ">" name "")) ) )