;; ;; .emacs20 : Emacs 初期設定 ;; ;; ;; 基本設定 ;; ;; ロードパスの追加 (setq load-path (append '("/usr/local/share/emacs/site-lisp" "/usr/local/share/emacs/20.7/site-lisp" "/usr/local/lib/wnn7/elisp/emacs20") load-path)) ;; 言語設定 (set-language-environment "Japanese") (put 'eval-expression 'disabled nil) (line-number-mode 1) (setq default-tab-width 4) ;; KOI8-R 環境のときのインプットメソッドは Yawerty (set-language-info-alist "Cyrillic-KOI8" `((input-method . "cyrillic-yawerty")) '("Cyrillic")) ;; 強調 (global-font-lock-mode t) ;;(require 'paren) (show-paren-mode 1) ;; ! で対応する括弧に移動 (global-set-key "!" 'match-paren) (defun match-paren (arg) "Go to the matching paren if on a paren; otherwise insert !." (interactive "p") (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) (t (self-insert-command (or arg 1))))) ;; Backup control (fset 'make-backup-file-name '(lambda (file) (concat (expand-file-name "/tmp/edback/") (file-name-nondirectory file)) )) (if (file-exists-p "/tmp/edback/") (setq auto-save-list-file-prefix "/tmp/edback/")) ;;(setq version-control t) ;;(setq kept-new-versions 2) ;; .save.. ファイルを作らない (setq auto-save-list-file-name nil) (setq auto-save-list-file-prefix nil) ;; Frame (setq default-frame-alist (append (list '(foreground-color . "#330000") ; '(background-color . "mistyrose") '(border-color . "red") '(mouse-color . "mediumpurple") '(cursor-color . "#8B0000") ) default-frame-alist)) ;; ;; UNICODE Mule-UCS 設定 ;; (setq unicode-basic-translation-charset-order-list '(ascii latin-iso8859-1 latin-iso8859-2 latin-iso8859-3 latin-iso8859-4 cyrillic-iso8859-5 greek-iso8859-7 hebrew-iso8859-8 latin-iso8859-9 ipa thai-tis620 ethiopic indian-is13194 vietnamese-viscii-lower vietnamese-viscii-upper japanese-jisx0208 korean-ksc5601 chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7 chinese-gb2312 chinese-big5-1 chinese-big5-2 chinese-sisheng japanese-jisx0212 japanese-jisx0213-1 japanese-jisx0213-2 latin-jisx0201 katakana-jisx0201 mule-unicode-0100-24ff mule-unicode-2500-33ff mule-unicode-e000-ffff )) (require 'un-define) (require 'un-tools) (require 'jisx0213) ;; ;; JIS X 0213 ;; (require 'egg-sim-jisx0213) (let (fontset) (when (setq fontset (query-fontset "-*-*-medium-r-*-*-16-*-*-*-*-*-*-*")) (set-fontset-font fontset 'japanese-jisx0213-1 "*jisx0213.2000-1") (set-fontset-font fontset 'japanese-jisx0213-2 "*jisx0213.2000-2") ) (when (setq fontset (query-fontset "-*-*-medium-r-*-*-24-*-*-*-*-*-*-*")) (set-fontset-font fontset 'japanese-jisx0213-1 "*shiftjis-0") (set-fontset-font fontset 'japanese-jisx0213-2 "*shiftjis-0") )) ;; ;; Coding system ;; (set-terminal-coding-system 'utf-8-unix) (set-default-coding-systems 'utf-8-unix) (set-buffer-file-coding-system 'utf-8-unix) ;; by masuyama (put 'utf-8 'eol-type [utf-8-unix utf-8-dos utf-8-mac]) (put 'utf-8-unix 'eol-type 0) (put 'utf-8-dos 'eol-type 1) (put 'utf-8-mac 'eol-type 2) (coding-system-put 'utf-8 'alias-coding-systems '(utf-8)) (coding-system-put 'utf-8-dos 'alias-coding-systems '(utf-8)) (coding-system-put 'utf-8-mac 'alias-coding-systems '(utf-8)) (coding-system-put 'utf-8-unix 'alias-coding-systems '(utf-8)) ;; raw text の場合 utf8 とみなす (setq coding-category-raw-text 'utf-8-unix) ;; ;; HTML/XML utf-8 判別 (by masuyama) ;; (defvar html-xml-charset-decl-alist '(("\\.s?html?$" nil "]+content-type[^>]+charset *= *\\([a-zA-Z0-9_.-]+\\)") ("\\.xml$" utf-8 "<\\?xml\\b[^>]+encoding=['\"]\\([a-zA-Z0-9_.-]+\\)"))) (defvar html-xml-auto-coding-chain) (defun html-xml-auto-coding (filename size) (or (funcall html-xml-auto-coding-chain filename size) (let ((case-fold-search t) (alist html-xml-charset-decl-alist) search-limit pat cs string) (while (and alist (not pat)) (if (string-match (car (car alist)) filename) (setq pat (cdr (car alist)))) (setq alist (cdr alist))) (when pat (goto-char (point-min)) (setq search-limit (+ (min size 4096) (point))) (if (not (search-forward-regexp (cadr pat) search-limit t)) (car pat) (setq string (downcase (match-string 1))) (while (string-match "^x-" string) (setq string (substring string 2))) (setq cs (intern string)) (if (coding-system-p cs) cs)))))) (setq html-xml-auto-coding-chain set-auto-coding-function set-auto-coding-function 'html-xml-auto-coding) ;; ;; Egg (Wnn フロントエンド) の設定 ;; ;; Wnn7 (global-set-key "\C-\\" 'toggle-input-method) (load "wnn7egg-leim") (set-input-method "japanese-egg-wnn7") (set-language-info "Japanese" 'input-method "japanese-egg-wnn7") ;; 楽々入力を使用 (egg-use-input-predict) ;; isearch で日本語入力 (define-key isearch-mode-map "\C-k" 'isearch-edit-string) ;; 句読点: ., (setq use-touten-for-comma nil) (setq use-kuten-for-period nil) ;; 文字入力関数 -- 環境によっては使用不可 (defun insert-zenkaku-space () ; 全角スペース入力 (interactive) (insert " ")) (defun insert-zenkaku-comma () ; 全角コンマ入力 (interactive) (insert ",")) (defun insert-zenkaku-period () ; 全角ピリオド入力 (interactive) (insert ".")) (defun insert-zenkaku-toten () ; 全角読点入力 (interactive) (insert "、")) (defun insert-zenkaku-kuten () ; 全角句点入力 (interactive) (insert "。")) (defun insert-zenkaku-chuten () ; 全角中点入力 (interactive) (insert "・")) (defun insert-zenkaku-nijukagi () ; 全角『』入力 (interactive) (insert "『』")) (global-set-key "\C-c\C-s" 'insert-zenkaku-space) (global-set-key "\C-c\C-m" 'insert-zenkaku-comma) (global-set-key "\C-c\C-p" 'insert-zenkaku-period) (global-set-key "\C-c\C-t" 'insert-zenkaku-toten) (global-set-key "\C-c\C-k" 'insert-zenkaku-kuten) (global-set-key "\C-c\C-o" 'insert-zenkaku-chuten) (global-set-key "\C-c\C-[" 'insert-zenkaku-nijukagi) ;; ;; coded on 11 Aug 2001 by Junichi Uekawa ;; Copyright 2001 Junichi Uekawa ;; (defun translate-comma-japanese-ronbun () "translate maru and ten to comma and period so that the document gives a decent feeling" (interactive) (goto-line 1) (while (search-forward "。" nil t) (replace-match "." nil t)) (goto-line 1) (while (search-forward "、" nil t) (replace-match "," nil t)) ) (defun translate-comma-japanese-ippan () "translate maru and ten to comma and period so that the document gives a decent feeling" (interactive) (goto-line 1) (while (search-forward "." nil t) (replace-match "。" nil t)) (goto-line 1) (while (search-forward "," nil t) (replace-match "、" nil t)) ) (global-set-key [f11] 'translate-comma-japanese-ronbun) (global-set-key [f12] 'translate-comma-japanese-ippan) ;; ;; Change input method ;; (defun set-cyrillic-input () "cyrillic yawerty" (interactive) (set-input-method "cyrillic-yawerty") ) (defun set-japanese-input () "japanese egg wnn7" (interactive) (set-input-method "japanese-egg-wnn7") ) (defun set-latin1-input () "latin-1" (interactive) (set-input-method "latin-1-postfix") ) (defun set-latin2-input () "latin-2" (interactive) (set-input-method "latin-2-postfix") ) (global-set-key [f5] 'set-cyrillic-input) (global-set-key [f6] 'set-japanese-input) (global-set-key [f7] 'set-latin1-input) (global-set-key [f8] 'set-latin2-input) ;; ;; Egg for FreeWnn ;; ;;(setq its-hira-comma ",") ;;(setq its-hira-period ".") ;;(setq its-hira-enable-zenkaku-alphabet nil) ;;(defun toggle-kutoten () ;; "句読点を 「,」「.」にするか「、」「。」にするか切り替える。" ;; (interactive) ;; (if (equal its-hira-comma "、") ;; (progn ;; (setq its-hira-comma ",") ; “,”を“,”に変換 ;; (setq its-hira-period ".") ; “.”を“.”に変換 ;; (message ",.モード")) ;; (setq its-hira-comma "、") ; “,”を“、”に変換 ;; (setq its-hira-period "。") ; “.”を“。”に変換 ;; (message "、。モード"))) ;; ;; JDE ;; ;;(require 'jde) ;; ;; Mode ;; (setq auto-mode-alist (append '(("\\.C$" . c++-mode) ("\\.cc$" . c++-mode) ("\\.cpp$" . c++-mode) ("\\.hh$" . c++-mode) ("\\.c$" . c-mode) ("\\.h$" . c-mode) ("\\.m$" . objc-mode) ;; ("\\.java$" . jde-mode) ("\\.java$" . java-mode) ("\\.pl$" . perl-mode) ("\\.perl$" . perl-mode) ("\\.tex$" . yatex-mode) ("\\.sty$" . yatex-mode) ("\\.cls$" . yatex-mode) ("\\.clo$" . yatex-mode) ("\\.dtx$" . yatex-mode) ("\\.fdd$" . yatex-mode) ("\\.ins$" . yatex-mode) ("\\.s?html?$" . yahtml-mode) ) auto-mode-alist)) ;; c/c++, java (autoload 'c++-mode "cc-mode" "C++ Editing Mode" t) (autoload 'c-mode "cc-mode" "C Editing Mode" t) (autoload 'objc-mode "cc-mode" "Objective-C Editing Mode" t) (autoload 'java-mode "cc-mode" "Java Editing Mode" t) ;;(autoload 'jde-mode "cc-mode" "Java Editing Mode" t) (setq c-tab-always-indent t) (setq c-default-style "bsd") (setq c-block-comments-indent-p 3) (setq c-mode-hook (function (lambda () (c-set-style-1 '((c-basic-offset . 4) ; change (c-offsets-alist . ((statement-block-intro . +) (knr-argdecl-intro . 5) (substatement-open . +) (label . 0) (statement-case-open . +) (statement-cont . +) (arglist-intro . +) ; change (arglist-close . 0) ; change (access-label . 0)) )))))) (setq c++-mode-hook c-mode-hook) (setq java-mode-hook (function (lambda () (c-set-style-1 '((c-basic-offset . 4) ; change (c-offsets-alist . ((statement-block-intro . +) (knr-argdecl-intro . 5) (substatement-open . +) (label . 0) (statement-case-open . +) (statement-cont . +) (arglist-intro . +) ; change (arglist-close . 0) ; change (access-label . 0)) )))))) ;; ;; JSP Java/html multi-mode ;; ;;(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t) (autoload 'multi-mode "multi-mode" "Allowing multiple major modes in a buffer." t) (defun jsp-mode () (multi-mode 1 'yahtml-mode ;;your choice of modes for java and html '("<%" java-mode) ;;'("<%" jde-mode) '("%>" yahtml-mode))) (setq auto-mode-alist (append '(("\\.jsp$" . jsp-mode)) auto-mode-alist)) ;; ;; YaTeX の設定 ;; (autoload 'yatex-mode "yatex" "Yet Another LaTeX Mode" t) ;; EUC 漢字コード (setq YaTeX-kanji-code 3) (setq tex-command "platex") (setq dvi2-command "xdvi") (setq section-name "documentclass") (setq mode-name "YaTeX") (setq YaTeX-fill-column 240) ;; bold, italic にしない (setq YaTeX-font-lock-bold-face 'bold YaTeX-font-lock-italic-face 'italic YaTeX-use-italic-bold nil) (defface YaTeX-font-lock-bold-face '((((class color) (background dark)) (:foreground "lightgoldenrod")) (((class color) (background light)) (:foreground "DarkGoldenrod")) (t (:bold nil))) "Font Lock mode face used to express bold itself." :group 'font-lock-faces) (defvar YaTeX-font-lock-bold-face 'YaTeX-font-lock-bold-face) (defface YaTeX-font-lock-italic-face '((((class color) (background dark)) (:foreground "Plum1")) (((class color) (background light)) (:foreground "purple")) (t (:italic t))) "Font Lock mode face used to express italic itself." :group 'font-lock-faces) (defvar YaTeX-font-lock-italic-face 'YaTeX-font-lock-italic-face) ;; ;; YaHTML の設定 ;; (autoload 'yahtml-mode "yahtml" "Yet Another HTML Mode" t) (setq yahtml-www-browser "mozilla") (setq yahtml-path-url-alist '(("/home/user/src/" . "http://dddd.ne.jp/~user/"))) ;; 漢字コードの指定(1=sjis, 2=jis, 3=euc) (setq yahtml-kanji-code 2) ;; HTML のタグを大文字にする ;; (setq yahtml-prefer-upcases t) ;; 属性指定子を大文字にする ;; (setq yahtml-prefer-upcase-attributes t) ;; 自動改行はしない (setq yahtml-fill-column nil) ;; yahtml-mode 初期化時の設定 (add-hook 'yahtml-mode-hook (function (lambda () ;; outline-minor-mode の設定(使用しない場合は不要) (outline-minor-mode t) ; outline-minor-mode を起動 ;; 見出しの正規表現 (make-local-variable 'outline-regexp) (setq outline-regexp "^.*<[Hh][1-6]\\>") ;; 見出し終わりの正規表現 (make-local-variable 'outline-heading-end-regexp) (setq outline-heading-end-regexp "") ;; 見出しレベルの計算式 (make-local-variable 'outline-level) (setq outline-level (function (lambda () (char-after (1- (match-end 0)))))) ;; font-lock の設定 (setq YaTeX-use-font-lock t)))) ;; font-lock (defvar yahtml-hilit-patterns-alist '( 'case-fold ;; comments ("" comment) ;; include&exec ("" include) ;; string (hilit-string-find ?\\ string) ;; bold にはしない ;; (yahtml-hilit-region-tag "<\\(em\\|strong\\|b\\)\\>" bold) ("" 0 decl) ("<\\(di\\|dt\\|li\\|dd\\)>" 0 label) (yahtml-hilit-region-tag "<\\(i\\>\\)" italic) ;("" crossref) ;good for hilit19, but odd for font-lock.. (yahtml-hilit-region-tag "<\\(a\\)\\s +href" crossref) (yahtml-hilit-region-tag-itself "" decl) )) ;; ;; Mew の設定 ;; (autoload 'mew "mew" nil t) (autoload 'mew-send "mew" nil t) (setq mew-name "Isao YASUDA") ;; (user-full-name) (setq mew-user "isao") ;; (user-login-name) (setq mew-mail-domain "foo.net") (setq mew-pop-user "xxxx") ;; (user-login-name) (setq mew-pop-auth 'pass) (setq mew-smtp-server "laura") ;; if not localhost ;; See also mew-config-alist for advanced use (setq mew-mail-domain-list '("aaa.bbbb.co.jp" "cccc.or.jp" "dddd.ne.jp")) (setq mew-icon-directory "/usr/local/share/emacs/20.7/etc/Mew") ;; いちいちパスワードをきかないで (setq mew-use-cached-passwd t) ;; リプライ時 Cc: に自分のアドレスをいれない (setq mew-mail-address-list '("xxx@foo.net")) (setq mew-reply-to "yyy@dddd.ne.jp") (setq mew-from "Isao YASUDA ") (setq mew-fcc "+Backup") ;; draft mode で subject に漢字を入力できない問題の対策 ;;(setq mew-use-overlay-keymap nil) ;; メールの印刷設定 (setq mew-print-command-format "a2ps-j | lpr -Pps") (defun mew-print-region (begin end) (interactive "r") (shell-command-on-region begin end mew-print-command-format)) (defun mew-print-buffer () (interactive) (mew-print-region (point-min) (point max))) (setq mew-print-function (function mew-print-buffer)) ;; 引用設定 (setq mew-cite-fields '("From:" "Message-ID:" "Subject:" "Date:")) (setq mew-cite-format "%s san wrote at :\n- Message-ID: %s\n- Subject: %s\n- Date: %s\n") ;;(setq mew-cite-prefix-function 'mew-cite-prefix-username) (setq mew-cite-prefix ">") ;; Using "Mozilla" (add-hook 'mew-message-mode-hook (function (lambda () (local-set-key [mouse-2] 'browse-url-at-mouse)))) (require 'mew-browse) (setq mew-ext-prog-url "/usr/X11R6/bin/mozilla") ;; ;; Ispell ;; ;; 個人辞書 (setq ispell-personal-dictionary "~/.ispell-dict-personal") ;; 標準辞書 ロシア語 (setq ispell-dictionary "russian") ;; ;; SKK 11 ;; ;;(require 'skk-setup) (global-set-key "\C-x\C-j" 'skk-mode) (global-set-key "\C-xj" 'skk-auto-fill-mode) (global-set-key "\C-xt" 'skk-tutorial) (autoload 'skk-mode "skk" nil t) (autoload 'skk-auto-fill-mode "skk" nil t) (autoload 'skk-tutorial "skk-tut" nil t) (autoload 'skk-isearch-mode-setup "skk-isearch" nil t) (autoload 'skk-isearch-mode-cleanup "skk-isearch" nil t) (add-hook 'isearch-mode-hook (function (lambda () (and (boundp 'skk-mode) skk-mode (skk-isearch-mode-setup) )))) (add-hook 'isearch-mode-end-hook (function (lambda () (and (boundp 'skk-mode) skk-mode (skk-isearch-mode-cleanup) (skk-set-cursor-properly) )))) (setq skk-egg-like-newline t) (setq skk-large-jisyo "/usr/local/share/skk/SKK-JISYO.L") ;; ;; autoinsert ;; (require 'autoinsert) (add-hook 'find-file-hooks 'auto-insert) (setq auto-insert-directory "~/docs/template/") (setq auto-insert-alist (append '( ("\\.tex$" . "latex-insert.tex") ("\\.sty$" . "latex-insert.tex") ("\\.cls$" . "latex-insert.tex") ("\\.clo$" . "latex-insert.tex") ("\\.dtx$" . "latex-insert.tex") ("\\.fdd$" . "latex-insert.tex") ("\\.ins$" . "latex-insert.tex") ("\\.s?html?$" . "html-insert.html") ) auto-insert-alist))