.emacs の設定
;; -*- mode: lisp-interaction; syntax: elisp; coding: iso-2022-7bit -*-
;; last modified: Sun Sep 06 10:47:07 JST 2019
;;
;; .emacs for "Meadow-3.02-dev (RINDOU) (2009-06-17 Rev.4261)"
;;
;; 各種 lisp を package からインストールすると, こちらにはほとんど
;; 何も書かなくて良くなります. 必要なものは auto-autoloads.el に書かれ,
;; 自動的に読み込まれます.
;; (でも昔の名残りで, 設定をコメントアウトして残しています.
;; 何をやっているか知っていた方が良いので :-)
;;================
;; 日本語環境設定
;;================
;;---------------------------------
;; 日本語環境設定(+ Mule-UCS 設定)
;;---------------------------------
;; Mule-UCS の Unicode 機能のみ利用
;;(require 'un-define)
;; Unicode 機能と JIS X 0213 を利用
(require 'jisx0213)
(set-language-environment "Japanese")
;; スタート画面を禁止
;;(setq inhibit-startup-message t)
;==============
;; gnuserv 設定
;;==============
; package を導入したら以下は不要
;(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))
;; 高さ(第 3 引数)を 14 にすると, 横幅が英数字と合う
;; (w32-logfont "meiryo" 0 -14 400 0 nil nil nil 128 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)
; ((spacing . -1)))
)
((: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)
; ((spacing . -1))))))
))))
(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 . "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_^$!#%&{}@'`.,;()-")
;;==================
;; 外部ブラウザ設定
;;==================
(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 日本語インクリメンタル検索
;;====================================
; package を導入したら以下は不要
;(setq migemo-command "cmigemo")
;(setq migemo-options '("-q" "--emacs"))
;(setq migemo-dictionary "c:/meadow/packages/etc/migemo/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
;;==================
; package からの導入の場合 auto-autoloads.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
;;=====
; package からの導入の場合 auto-autoloads.el と一部重複.
(setq mw32-process-wrapper-alist
'(("/\\(bash\\|tcsh\\|svn\\|ssh\\|gpg[esvk]?\\)\\.exe" .
(nil . "fakecygpty.exe"))))
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-demo nil)
;; If using XEmacs/Emacs 21
;(setq mew-icon-directory "icon directory")
;; Optional setup (Read Mail menu for Emacs 21):
(if (boundp 'read-mail-command)
(setq read-mail-command 'mew))
;; 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