;;
;; .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 "[Hh][1-6]>")
;; 見出しレベルの計算式
(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)
("?[uod]l>" 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 "?\\sw+\\>" 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))