(Original: Sun Sep 19 00:43:38 JST 2010)
Last modified: Sun Oct 06 10:21:46 JST 2019

.emacs の設定

;; -*- mode: lisp-interaction; syntax: elisp; coding: iso-2022-7bit -*-
;; last modified: Sun Sep 06 10:21:46 JST 2019
;;
;; .emacs	for Meadow-3.02-dev (RINDOU)
;;
;; Netinstall を使ってパッケージをインストールした場合, パッケージ毎に
;; 自動設定ファイル(auto-autoload.el)が作られ, これが meadow 立ち上げ時に
;; 自動的に読み込まれます. このため .emacs で行うべき設定は非常に少なく
;; なっています.
;; 但し, ここでは不要になった設定もコメントアウトするだけで残しています.
;; (自分で何をやっているか分からなくなるのが嫌なので :-)
;;

;; default.el, auto-autoload.el を無効にする
;; (setq inhibit-default-init t)

;;==========================
;; 日本語環境設定(MULE-UCS)
;;==========================
;; unicode 機能のみ有効
;(require 'un-define)
;; unicode 機能と JIS X 0213 を有効
(require 'jisx0213)
(set-language-environment "Japanese")

;; スタート画面を表示しない
(setq inhibit-startup-message t)
;;==============
;; gnuserv 設定
;;==============
;; auto-autoload.el で以下は不要に
;;(require 'gnuserv)
;;(gnuserv-start)
;; 新しいフレームを開かない
(setq gnuserv-frame (selected-frame))

;;================
;; 日本語入力設定
;;================
;;----------
;; IME 設定
;;----------
;; 今は使っていない
;(mw32-ime-initialize)
;(setq default-input-method "MW32-IME")
;(setq-default mw32-ime-mode-line-state-indicator "[--]")
;(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
;(add-hook 'mw32-ime-on-hook
;	  (function (lambda () (set-cursor-height 2))))
;(add-hook 'mw32-ime-off-hook
;	  (function (lambda () (set-cursor-height 4))))

;;----------
;; SKK 設定
;;----------
;; 今は使っていない
;(require 'skk-autoloads)
;;; SKK.tut と辞書ファイルの場所を指定
;(setq skk-tut-file "C:/Meadow/packages/etc/skk/SKK.tut")
;(setq skk-large-jisyo "C:/Meadow/packages/etc/skk/SKK-JISYO.L")
;
;(global-set-key "\C-x\C-j" 'skk-mode)
;(global-set-key "\C-xj" 'skk-mode)
;(global-set-key "\C-xt" 'skk-tutorial)

;;------------------------------------
;; YC (Yet another Canna client) 設定
;;------------------------------------
(setq yc-server-host "localhost") ; かんなサーバホスト名
;;(setq yc-server-host "unix") ; かんなサーバホスト名
(setq yc-rK-trans-key "\C-j")
(setq yc-use-color t)
(setq yc-use-fence (not (eq window-system 'x)))
(load "yc") ; これでフェンスモードは使用可能
(global-yc-mode 1) ; 全バッファで ANK-漢字変換を有効にする
(global-set-key "\M-\ " 'yc-mode)
(setq yc-canna-lib-path "/var/lib/canna/") ; かんなの初期設定パス
(setq yc-canna-dic-path "/var/lib/canna/dic") ; かんなの辞書パス
(setq yc-select-count 2)
(setq yc-stop-chars "(){}<>")

;;==============
;; カーソル設定
;;==============
;(set-cursor-type 'box)            ; Meadow-1.10互換 (SKK等で色が変る設定)
;(set-cursor-type 'hairline-caret) ; 縦棒キャレット
(setq w32-hide-mouse-on-key t) ; マウスカーソルを消す
(setq w32-hide-mouse-timeout 5000) ; マウスカーソルを消す

;;==============
;; フォント設定
;;==============
;;----------------------------------
;; font-lock 設定(ファイルに色づけ)
;;----------------------------------
(global-font-lock-mode t)

;;-----------------------
;; TrueType フォント設定
;;-----------------------
;; 今は使っていない
;(w32-add-font
; "private-fontset"
; '((spec
;    ((:char-spec ascii :height 105)
;     strict
;     (w32-logfont "Courier New" 0 -11 400 0 nil nil nil 0 1 3 49))
;    ((:char-spec ascii :height 105 :weight bold)
;     strict
;     (w32-logfont "Courier New" 0 -11 700 0 nil nil nil 0 1 3 49))
;    ((:char-spec ascii :height 105 :slant italic)
;     strict
;     (w32-logfont "Courier New" 0 -11 400 0   t nil nil 0 1 3 49))
;    ((:char-spec ascii :height 105 :weight bold :slant italic)
;     strict
;     (w32-logfont "Courier New" 0 -11 700 0   t nil nil 0 1 3 49))
;    ((:char-spec japanese-jisx0208 :height 105)
;     strict
;     (w32-logfont "MS ゴシック" 0 -14 400 0 nil nil nil 128 1 3 49))
;    ((:char-spec japanese-jisx0208 :height 105 :weight bold)
;     strict
;     (w32-logfont "MS ゴシック" 0 -14 700 0 nil nil nil 128 1 3 49)
;     ((spacing . -1)))
;    ((:char-spec japanese-jisx0208 :height 105 :slant italic)
;     strict
;     (w32-logfont "MS ゴシック" 0 -14 400 0   t nil nil 128 1 3 49))
;    ((:char-spec japanese-jisx0208 :height 105 :weight bold :slant italic)
;     strict
;     (w32-logfont "MS ゴシック" 0 -14 700 0   t nil nil 128 1 3 49)
;     ((spacing . -1))))))
;;(set-face-attribute 'variable-pitch nil :family "*")
;(set-face-attribute 'variable-pitch nil :font "private-fontset")

;;------------------------
;; メイリオ フォント設定
;;------------------------
(w32-add-font  "meiryo-consolas" nil)
(w32-change-font
 "meiryo-consolas"
 '((spec
    ((:char-spec ascii :height 105)
     strict
     (w32-logfont "Consolas" 0 -12 400 0 nil nil nil 0 1 3 49))
    ((:char-spec ascii :height 105 :weight bold)
     strict
     (w32-logfont "Consolas" 0 -12 700 0 nil nil nil 0 1 3 49))
    ((:char-spec ascii :height 105 :slant italic)
     strict
     (w32-logfont "Consolas" 0 -12 400 0 t nil nil 0 1 3 49))
    ((:char-spec ascii :height 105 :weight bold :slant italic)
     strict
     (w32-logfont "Consolas" 0 -12 700 0 t nil nil 0 1 3 49))
    ((:char-spec japanese-jisx0208 :height 105)
     strict
     (w32-logfont "meiryo" 13 -12 400 0 nil nil nil 128 1 3 49))
    ((:char-spec japanese-jisx0208 :height 105 :weight bold)
     strict
     (w32-logfont "meiryo" 13 -12 700 0 nil nil nil 128 1 3 49))
    ((:char-spec japanese-jisx0208 :height 105 :slant italic)
     strict
     (w32-logfont "meiryo" 13 -12 400 0 t nil nil 128 1 3 49))
    ((:char-spec japanese-jisx0208 :height 105 :weight bold :slant italic)
     strict
     (w32-logfont "meiryo" 13 -12 700 0 t nil nil 128 1 3 49)))))
(set-face-attribute 'variable-pitch nil :font "meiryo-consolas")

;;------------------------
;; 東雲(BDF) フォント設定
;;------------------------
;; 今は使っていない
;; 東雲フォントのファイルを置いたディレクトリ
;; $MEADOW/fonts/shinonome 以下に置いた場合は設定不要。
;; (setq bdf-font-directory-shinonome "C:/fonts/shinonome")
;(setq bdf-font-directory-shinonome "C:/Meadow/fonts/shinonome/bdf")
;
;; 作成するフォントセット(不要なら nil にする)
;(setq bdf-use-shinonome12     t
;      bdf-use-shinonome12min  nil
;      bdf-use-shinonome12maru nil
;      bdf-use-shinonome14     t
;      bdf-use-shinonome14min  nil
;      bdf-use-shinonome16     t
;      bdf-use-shinonome16min  nil)
;
;; フォントセット作成ファイルを load する
;(load "meadow2-shinonome-fontset")

;;==============
;; フレーム設定
;;==============
;;------------------
;; 初期フレーム設定
;;------------------
(setq default-frame-alist
      (append (list '(foreground-color . "black")
		    '(background-color . "LemonChiffon")
		    '(background-color . "gray")
		    '(border-color . "black")
		    '(mouse-color . "white")
		    '(cursor-color . "black")
;;		    '(ime-font . (w32-logfont "MS ゴシック"
;;					      0 16 400 0 nil nil nil
;;					      128 1 3 49)) ; TrueType のみ
;;		    '(font . "bdf-fontset")    ; BDF
;;		    '(font . "shinonome12")    ; BDF
;;		    '(font . "private-fontset"); TrueType
		    '(font . "meiryo-consolas"); TrueType
;		    '(line-spacing . 0)
		    '(width . 80)
		    '(height . 40)
		    '(top . 0)
		    '(left . 100))
	      default-frame-alist))

;;------------------------------
;; メニューバー, スクロールバー
;;------------------------------
(tool-bar-mode -1)
(menu-bar-mode -1)
;(scroll-bar-mode -1)

;;============
;; shell 設定
;;============
;;---------------
;; bash (Cygwin)
;;---------------
(setq explicit-shell-file-name "bash")
(setq shell-file-name "sh")
(setq shell-command-switch "-c") 

;;-----------------------
;; argument-editing 設定
;;-----------------------
(require 'mw32script)
(mw32script-init)

;;--------------------
;; coding-system 設定
;;--------------------
;(add-hook 'shell-mode-hook
;	  (lambda ()
;	    (set-buffer-process-coding-system 'undecided-dos 'sjis-unix)))
;; ^M をとる
(add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t)
;; shell-modeでの補完 (for drive letter)
(setq shell-file-name-chars "~/A-Za-z0-9_^$!#%&{}@'`.,;()-")

;;==================
;; 外部ブラウザ設定
;;==================
;; 今は使っていない
;(require 'w3m-load)
;(setq w3m-key-binding 'info)
;(setq w3m-icon-directory (expand-file-name "etc/w3m" "C:/meadow/packages/"))
;;(setq w3m-icon-directory (expand-file-name "etc/w3m" netinstall-pkg-dir))
;(setq browse-url-browser-function 'w3m-browse-url)
;(global-set-key "\C-xm" 'browse-url-at-point)

(setq browse-url-browser-function 'browse-url-msie)
(setq browse-url-msie-program
;;      "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE")
;;      "C:\\Program Files\\Fenrir & Co\\Sleipnir\\bin\\Sleipnir.exe")
      "C:\\Program Files \(x86\)\\Mozilla Firefox\\firefox.exe")
(defun browse-url-msie (url arg)
  (interactive (browse-url-interactive-arg "URL: "))
  (if browse-url-msie-program
      (let ((w32-start-process-show-window t))
	(start-process (concat browse-url-msie-program url)
		       nil browse-url-msie-program url))))
(global-set-key [S-mouse-2] 'browse-url-at-mouse)
(global-set-key [S-mouse-3] 'browse-url-at-mouse)

;;-------
;; 印刷設定
;;-------
;; 今は使っていない
;; この設定で M-x print-buffer RET などでの印刷ができるようになります
;;  notepad に与えるパラメータの形式の設定
;(define-process-argument-editing "notepad"
;  (lambda (x) (general-process-argument-editing-function x nil t)))
;(defun w32-print-region (start end
;			       &optional lpr-prog delete-text buf display
;			       &rest rest)
;  (interactive)
;  (let ((tmpfile (convert-standard-filename (buffer-name)))
;	(w32-start-process-show-window t)
;	;; もし、dos 窓が見えていやな人は上記の `t' を `nil' にします
;	;; ただし、`nil' にすると Meadow が固まる環境もあるかもしれません
;	(coding-system-for-write w32-system-coding-system))
;    (while (string-match "[/\\]" tmpfile)
;      (setq tmpfile (replace-match "_" t nil tmpfile)))
;    (setq tmpfile (expand-file-name (concat "_" tmpfile "_")
;				    temporary-file-directory))
;    (write-region start end tmpfile nil 'nomsg)
;    (call-process "notepad" nil nil nil "/p" tmpfile)
;    (and (file-readable-p tmpfile) (file-writable-p tmpfile)
;	 (delete-file tmpfile))))
;(setq print-region-function 'w32-print-region)

;;==========
;; 詳細設定
;;==========
;;------------------
;; バックアップ不要
;;------------------
(setq make-backup-files nil)

;;--------------------
;; タイムスタンプ挿入
;;--------------------
(if (not (memq 'time-stamp write-file-hooks))
    (setq write-file-hooks
          (cons 'time-stamp write-file-hooks)))
;(setq time-stamp-format "%3a %3b %02d %02H:%02M:%02S %Z %:y")
(defun time-stamp-lc-3a ()
  "Return a day of the week"
  (let ((aw (string-to-number (format-time-string "%w" (current-time)))))
    (cond
     ((= aw 0) "Sun") ((= aw 1) "Mon") ((= aw 2) "Tue") ((= aw 3) "Wed")
     ((= aw 4) "Thu") ((= aw 5) "Fri") ((= aw 6) "Sat"))))
(defun time-stamp-lc-3b ()
  "Return a month"
  (let ((am (string-to-number (format-time-string "%m" (current-time)))))
    (cond
     ((= am 01) "Jan") ((= am 02) "Feb") ((= am 03) "Mar")
     ((= am 04) "Apr") ((= am 05) "May") ((= am 06) "Jun")
     ((= am 07) "Jul") ((= am 08) "Aug") ((= am 09) "Sep")
     ((= am 10) "Oct") ((= am 11) "Nov") ((= am 12) "Dec"))))
(setq time-stamp-format (concat (time-stamp-lc-3a)
				" "
				(time-stamp-lc-3b)
				" %02d %02H:%02M:%02S %Z %:y"))
;(setq time-stamp-format "%:y/%02m/%02d %02H:%02M:%02S")
(setq time-stamp-start "last modified:[ \t]")
(setq time-stamp-end "$")
(setq time-stamp-line-limit 100)

;;-------------------------
;; ChangeLog Memo(C-x 4 a)
;;-------------------------
(setq user-full-name "私の名前")
(setq user-mail-address "私のメールアドレス")
;; memo
(defun memo ()
  (interactive)
  (let ((add-log-current-defun-function 'ignore)
        (memo-file "~/doc/memo.txt"))
    (set-buffer (find-file-noselect memo-file))
    (add-change-log-entry
     nil
     (expand-file-name memo-file))))
(define-key ctl-x-map "M" 'memo)

;;====================================
;; CMigemo 日本語インクリメンタル検索
;;====================================
;; auto-autoload.el で以下は不要に
;(setq migemo-command "cmigemo")
;(setq migemo-options '("-q" "--emacs"))
;(setq migemo-dictionary "c:/Meadow/packages/etc/cmigemo/dict/migemo-dict")
;(setq migemo-user-dictionary nil)
;(setq migemo-regex-dictionary nil)
;(setq migemo-use-pattern-alist t)
;(setq migemo-use-frequent-pattern-alist t)
;(setq migemo-pattern-alist-length 1024)
;(setq migemo-coding-system 'euc-jp-unix)
;(load-library "migemo")
;(migemo-init)
;; 起動時 migemo を OFF に
;(setq migemo-isearch-enable-p nil)

;;==================
;; html-helper-mode
;;==================
;; auto-autoload.el で以下は不要に
;(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist
      (append '(
		("\\.htm$" . html-helper-mode)
		("\\.html$" . html-helper-mode)
		)auto-mode-alist))
(setq html-helper-do-write-file-hooks t)
(setq html-helper-build-new-buffer t)
(setq html-helper-timestamp-start "\n")
(setq html-helper-timestamp-end "\n")

;;=====
;; Mew
;;=====
(setq mw32-process-wrapper-alist
      '(("/\\(bash\\|tcsh\\|svn\\|ssh\\|gpg[esvk]?\\)\\.exe" .
	 (nil . "fakecygpty.exe"))))
;; auto-autoload.el で以下は不要に
;(autoload 'mew "mew" nil t)
;(autoload 'mew-send "mew" nil t)
;(setq mew-demo nil)
;; Optional setup (e.g. C-xm for sending a message):
(autoload 'mew-user-agent-compose "mew" nil t)
(if (boundp 'mail-user-agent)
    (setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
    (define-mail-user-agent
      'mew-user-agent
      'mew-user-agent-compose
      'mew-draft-send-message
      'mew-draft-kill
      'mew-send-hook))
;; Summary Line
;(defun mew-summary-form-num ()
;  (MEW-NUM))
;(setq mew-summary-form
;      `((-5 num) " " type (5 date) " " (14 from) " " t (30 subj)
;	,mew-summary-form-body-starter (0 body)))
(setq mew-msg-rm-policy 'always)

;; EOF