; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-
;; 起動時間を測定
(defun my-time-lag ()
(let* ((now (current-time))
(min (- (car now) (car my-time-zero)))
(sec (- (car (cdr now)) (car (cdr my-time-zero))))
(msec (/ (- (car (cdr (cdr now)))
(car (cdr (cdr my-time-zero))))
1000))
(lag (+ (* 60000 min) (* 1000 sec) msec)))
(message "'.emacs.el' loading time: %d msec." lag)))
(setq my-time-zero (current-time))
;; ------------------------------------------------------------------------
;; @ coding system
;; 日本語入力のための設定
(set-keyboard-coding-system 'japanese-shift-jis)
;; ------------------------------------------------------------------------
;; @ ime
;; 標準IMEの設定
(setq default-input-method "W32-IME")
;; IMEの初期化
(w32-ime-initialize)
;; IME OFF時の初期カーソルカラー
(set-cursor-color "red")
;; IME ON/OFF時のカーソルカラー
(add-hook 'input-method-activate-hook
(lambda() (set-cursor-color "green")))
(add-hook 'input-method-inactivate-hook
(lambda() (set-cursor-color "red")))
;; バッファ切り替え時にIME状態を引き継ぐ
(setq w32-ime-buffer-switch-p nil)
;; ------------------------------------------------------------------------
;; @ encode
;; 機種依存文字
(require 'cp5022x)
(define-coding-system-alias 'euc-jp 'cp51932)
;; decode-translation-table の設定
(coding-system-put 'euc-jp :decode-translation-table
(get 'japanese-ucs-jis-to-cp932-map 'translation-table))
(coding-system-put 'iso-2022-jp :decode-translation-table
(get 'japanese-ucs-jis-to-cp932-map 'translation-table))
(coding-system-put 'utf-8 :decode-translation-table
(get 'japanese-ucs-jis-to-cp932-map 'translation-table))
;; encode-translation-table の設定
(coding-system-put 'euc-jp :encode-translation-table
(get 'japanese-ucs-cp932-to-jis-map 'translation-table))
(coding-system-put 'iso-2022-jp :encode-translation-table
(get 'japanese-ucs-cp932-to-jis-map 'translation-table))
(coding-system-put 'cp932 :encode-translation-table
(get 'japanese-ucs-jis-to-cp932-map 'translation-table))
(coding-system-put 'utf-8 :encode-translation-table
(get 'japanese-ucs-jis-to-cp932-map 'translation-table))
;; charset と coding-system の優先度設定
(set-charset-priority 'ascii 'japanese-jisx0208 'latin-jisx0201
'katakana-jisx0201 'iso-8859-1 'cp1252 'unicode)
(set-coding-system-priority 'utf-8 'euc-jp 'iso-2022-jp 'cp932)
;; PuTTY 用の terminal-coding-system の設定
(apply 'define-coding-system 'utf-8-for-putty
"UTF-8 (translate jis to cp932)"
:encode-translation-table
(get 'japanese-ucs-jis-to-cp932-map 'translation-table)
(coding-system-plist 'utf-8))
(set-terminal-coding-system 'utf-8-for-putty)
;; East Asian Ambiguous
(defun set-east-asian-ambiguous-width (width)
(while (char-table-parent char-width-table)
(setq char-width-table (char-table-parent char-width-table)))
(let ((table (make-char-table nil)))
(dolist (range
'(#x00A1 #x00A4 (#x00A7 . #x00A8) #x00AA (#x00AD . #x00AE)
(#x00B0 . #x00B4) (#x00B6 . #x00BA) (#x00BC . #x00BF)
#x00C6 #x00D0 (#x00D7 . #x00D8) (#x00DE . #x00E1) #x00E6
(#x00E8 . #x00EA) (#x00EC . #x00ED) #x00F0
(#x00F2 . #x00F3) (#x00F7 . #x00FA) #x00FC #x00FE
#x0101 #x0111 #x0113 #x011B (#x0126 . #x0127) #x012B
(#x0131 . #x0133) #x0138 (#x013F . #x0142) #x0144
(#x0148 . #x014B) #x014D (#x0152 . #x0153)
(#x0166 . #x0167) #x016B #x01CE #x01D0 #x01D2 #x01D4
#x01D6 #x01D8 #x01DA #x01DC #x0251 #x0261 #x02C4 #x02C7
(#x02C9 . #x02CB) #x02CD #x02D0 (#x02D8 . #x02DB) #x02DD
#x02DF (#x0300 . #x036F) (#x0391 . #x03A9)
(#x03B1 . #x03C1) (#x03C3 . #x03C9) #x0401
(#x0410 . #x044F) #x0451 #x2010 (#x2013 . #x2016)
(#x2018 . #x2019) (#x201C . #x201D) (#x2020 . #x2022)
(#x2024 . #x2027) #x2030 (#x2032 . #x2033) #x2035 #x203B
#x203E #x2074 #x207F (#x2081 . #x2084) #x20AC #x2103
#x2105 #x2109 #x2113 #x2116 (#x2121 . #x2122) #x2126
#x212B (#x2153 . #x2154) (#x215B . #x215E)
(#x2160 . #x216B) (#x2170 . #x2179) (#x2190 . #x2199)
(#x21B8 . #x21B9) #x21D2 #x21D4 #x21E7 #x2200
(#x2202 . #x2203) (#x2207 . #x2208) #x220B #x220F #x2211
#x2215 #x221A (#x221D . #x2220) #x2223 #x2225
(#x2227 . #x222C) #x222E (#x2234 . #x2237)
(#x223C . #x223D) #x2248 #x224C #x2252 (#x2260 . #x2261)
(#x2264 . #x2267) (#x226A . #x226B) (#x226E . #x226F)
(#x2282 . #x2283) (#x2286 . #x2287) #x2295 #x2299 #x22A5
#x22BF #x2312 (#x2460 . #x24E9) (#x24EB . #x254B)
(#x2550 . #x2573) (#x2580 . #x258F) (#x2592 . #x2595)
(#x25A0 . #x25A1) (#x25A3 . #x25A9) (#x25B2 . #x25B3)
(#x25B6 . #x25B7) (#x25BC . #x25BD) (#x25C0 . #x25C1)
(#x25C6 . #x25C8) #x25CB (#x25CE . #x25D1)
(#x25E2 . #x25E5) #x25EF (#x2605 . #x2606) #x2609
(#x260E . #x260F) (#x2614 . #x2615) #x261C #x261E #x2640
#x2642 (#x2660 . #x2661) (#x2663 . #x2665)
(#x2667 . #x266A) (#x266C . #x266D) #x266F #x273D
(#x2776 . #x277F) (#xE000 . #xF8FF) (#xFE00 . #xFE0F)
#xFFFD
))
(set-char-table-range table range width))
(optimize-char-table table)
(set-char-table-parent table char-width-table)
(setq char-width-table table)))
(set-east-asian-ambiguous-width 2)
;; emacs-w3m
(eval-after-load "w3m"
'(when (coding-system-p 'cp51932)
(add-to-list 'w3m-compatible-encoding-alist '(euc-jp . cp51932))))
;; Gnus
(eval-after-load "mm-util"
'(when (coding-system-p 'cp50220)
(add-to-list 'mm-charset-override-alist '(iso-2022-jp . cp50220))))
;; SEMI (cf. http://d.hatena.ne.jp/kiwanami/20091103/1257243524)
(eval-after-load "mcs-20"
'(when (coding-system-p 'cp50220)
(add-to-list 'mime-charset-coding-system-alist
'(iso-2022-jp . cp50220))))
;; 全角チルダ/波ダッシュをWindowsスタイルにする
(let ((table (make-translation-table-from-alist '((#x301c . #xff5e))) ))
(mapc
(lambda (coding-system)
(coding-system-put coding-system :decode-translation-table table)
(coding-system-put coding-system :encode-translation-table table)
)
'(utf-8 cp932 utf-16le)))
;; ------------------------------------------------------------------------
;; @ font
;; 標準フォントの設定
;; (set-default-font "M+2VM+IPAG circle-12")
;; IME変換時フォントの設定(テストバージョンのみ)
;; (setq w32-ime-font-face "M+2VM+IPAG circle")
;; (setq w32-ime-font-height 18)
;; 固定等幅フォントの設定
;; (set-face-attribute 'fixed-pitch nil :family "M+2VM+IPAG circle")
;; 可変幅フォントの設定
;; (set-face-attribute 'variable-pitch nil :family "M+2VM+IPAG circle")
;; ------------------------------------------------------------------------
;; @ frame
;; フレームタイトルの設定
(setq frame-title-format "%b")
;; ------------------------------------------------------------------------
;; @ buffer
;; バッファ画面外文字の切り詰め表示
(setq truncate-lines nil)
;; ウィンドウ縦分割時のバッファ画面外文字の切り詰め表示
(setq truncate-partial-width-windows t)
;; 同一バッファ名にディレクトリ付与
(require 'uniquify)
(setq uniquify-buffer-name-style 'forward)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)
(setq uniquify-ignore-buffers-re "*[^*]+*")
;; ------------------------------------------------------------------------
;; @ fringe
;; バッファ中の行番号表示
(global-linum-mode t)
;; 行番号のフォーマット
(set-face-attribute 'linum nil :foreground "red" :height 0.8)
(setq linum-format "%4d")
;; ------------------------------------------------------------------------
;; @ modeline
;; 行番号の表示
(line-number-mode t)
;; 列番号の表示
(column-number-mode t)
;; 時刻の表示
(require 'time)
(setq display-time-24hr-format t)
(setq display-time-string-forms '(24-hours ":" minutes))
(display-time-mode t)
;; cp932エンコード時の表示を「P」とする
(coding-system-put 'cp932 :mnemonic ?P)
(coding-system-put 'cp932-dos :mnemonic ?P)
(coding-system-put 'cp932-unix :mnemonic ?P)
(coding-system-put 'cp932-mac :mnemonic ?P)
;; ------------------------------------------------------------------------
;; @ cursor
;; カーソル点滅表示
(blink-cursor-mode 0)
;; スクロール時のカーソル位置の維持
(setq scroll-preserve-screen-position t)
;; スクロール行数(一行ごとのスクロール)
(setq vertical-centering-font-regexp ".*")
(setq scroll-conservatively 35)
(setq scroll-margin 0)
(setq scroll-step 1)
;; 画面スクロール時の重複行数
(setq next-screen-context-lines 1)
;; ------------------------------------------------------------------------
;; @ default setting
;; 起動メッセージの非表示
(setq inhibit-startup-message t)
;; スタートアップ時のエコー領域メッセージの非表示
(setq inhibit-startup-echo-area-message -1)
;; ------------------------------------------------------------------------
;; @ backup
;; 変更ファイルのバックアップ
(setq make-backup-files nil)
;; 変更ファイルの番号つきバックアップ
(setq version-control nil)
;; 編集中ファイルのバックアップ
(setq auto-save-list-file-name nil)
(setq auto-save-list-file-prefix nil)
;; 編集中ファイルのバックアップ先
(setq auto-save-file-name-transforms
`((".*" ,temporary-file-directory t)))
;; 編集中ファイルのバックアップ間隔(秒)
(setq auto-save-timeout 30)
;; 編集中ファイルのバックアップ間隔(打鍵)
(setq auto-save-interval 500)
;; バックアップ世代数
(setq kept-old-versions 1)
(setq kept-new-versions 2)
;; 上書き時の警告表示
;- (setq trim-versions-without-asking nil)
;; 古いバックアップファイルの削除
(setq delete-old-versions t)
;; ------------------------------------------------------------------------
;; @ key bind
;; 標準キーバインド変更
(global-set-key "\C-z" 'scroll-down)
;; ------------------------------------------------------------------------
;; @ hiwin-mode
(require 'hiwin)
;; 非アクティブwindowの背景色(hiwin-modeの実行前に設定が必要)
(setq hiwin-deactive-color "gray30")
;; hiwin-modeを有効にする
(hiwin-mode)
;; ------------------------------------------------------------------------
;; @ tabbar
; (require 'cl)
; (require 'tabbar)
;
; ;; scratch buffer 以外をまとめてタブに表示する
; (setq tabbar-buffer-groups-function
; (lambda (b) (list "All Buffers")))
; (setq tabbar-buffer-list-function
; (lambda ()
; (remove-if
; (lambda(buffer)
; (unless (string-match (buffer-name buffer) "\\(*scratch*\\|*Apropos*\\|*shell*\\|*eshell*\\|*Customize\\)")
; (find (aref (buffer-name buffer) 0) " *"))
; )
; (buffer-list))))
;
; ;; tabbarを有効にする
; (tabbar-mode)
;
; ;; ボタンをシンプルにする
; (setq tabbar-home-button-enabled "")
; (setq tabbar-scroll-right-button-enabled "")
; (setq tabbar-scroll-left-button-enabled "")
; (setq tabbar-scroll-right-button-disabled "")
; (setq tabbar-scroll-left-button-disabled "")
;
; ;; Ctrl-Tab, Ctrl-Shift-Tab でタブを切り替える
; (dolist (func '(tabbar-mode tabbar-forward-tab tabbar-forward-group tabbar-backward-tab tabbar-backward-group))
; (autoload func "tabbar" "Tabs at the top of buffers and easy control-tab navigation"))
; (defmacro defun-prefix-alt (name on-no-prefix on-prefix &optional do-always)
; `(defun ,name (arg)
; (interactive "P")
; ,do-always
; (if (equal nil arg)
; ,on-no-prefix
; ,on-prefix)))
; (defun-prefix-alt shk-tabbar-next (tabbar-forward-tab) (tabbar-forward-group) (tabbar-mode 1))
; (defun-prefix-alt shk-tabbar-prev (tabbar-backward-tab) (tabbar-backward-group) (tabbar-mode 1))
; (global-set-key [(control tab)] 'shk-tabbar-next)
; (global-set-key [(control shift tab)] 'shk-tabbar-prev)
;; -------------------------------
;; -------------------------------
;; -------------------------------
;; -------------------------------
;; -------------------------------
;; 基本設定
;; -------------------------------
(setq inhibit-startup-message t) ; スタートアップ時のメッセージを抑制
(setq initial-scratch-message nil) ; 起動時のscratch のメッセージを空にする
(tool-bar-mode nil) ; メニューバー、ツールバー非表示
(scroll-bar-mode t) ; スクロールバーの表示
(setq visible-bell nil) ; ヴィジブルベルを抑制
(setq ring-bell-function '(lambda ())) ; ビープ音を抑制
(iswitchb-mode) ; buffer切り替えを使い易く
; C-f, C-b, C-n, C-p で候補を切り替えることができるように。
(add-hook 'iswitchb-define-mode-map-hook
(lambda ()
(define-key iswitchb-mode-map "\C-n" 'iswitchb-next-match)
(define-key iswitchb-mode-map "\C-p" 'iswitchb-prev-match)
(define-key iswitchb-mode-map "\C-f" 'iswitchb-next-match)
(define-key iswitchb-mode-map "\C-b" 'iswitchb-prev-match)
))
; *scratch* バッファを消さない
(defun my-make-scratch (&optional arg)
(interactive)
(progn
;; "*scratch*" を作成して buffer-list に放り込む
(set-buffer (get-buffer-create "*scratch*"))
(funcall initial-major-mode)
(erase-buffer)
(when (and initial-scratch-message (not inhibit-startup-message))
(insert initial-scratch-message))
(or arg (progn (setq arg 0)
(switch-to-buffer "*scratch*")))
(cond ((= arg 0) (message "*scratch* is cleared up."))
((= arg 1) (message "another *scratch* is created")))))
(add-hook 'kill-buffer-query-functions
;; *scratch* バッファで kill-buffer したら内容を消去するだけにする
(lambda ()
(if (string= "*scratch*" (buffer-name))
(progn (my-make-scratch 0) nil)
t)))
(add-hook 'after-save-hook
;; *scratch* バッファの内容を保存したら *scratch* バッファを新しく作る
(lambda ()
(unless (member (get-buffer "*scratch*") (buffer-list))
(my-make-scratch 1))))
; 日本語補完を賢く
; http://namazu.org/~tsuchiya/elisp/dabbrev-ja.el
; http://www.namazu.org/~tsuchiya/elisp/dabbrev-highlight.el
(load "dabbrev-ja")
(require 'dabbrev-highlight)
; カーソル行にアンダーラインを引く
(setq hl-line-face 'underline)
(global-hl-line-mode)
; M-x にインクリメンタルサーチを付ける
; http://homepage1.nifty.com/bmonkey/emacs/elisp/mcomplete.el
(require 'mcomplete)
(turn-on-mcomplete-mode)
; shell 設定
(setq process-coding-system-alist '(("bash" . undecided-unix)))
(setq shell-file-name "bash")
(setenv "SHELL" shell-file-name)
(setq explicit-shell-file-name shell-file-name)
;; -------------------------------
;; キー設定
;; -------------------------------
(global-set-key "\C-z" 'scroll-down)
(global-set-key "\C-x\C-b" 'buffer-menu) ; バッファ一覧を使い易く
(global-set-key "\C-h" 'delete-backward-char) ; C-hをバックスペースに
(define-key global-map "\C-x\C-h" 'help-command) ; C-h に割り当てられている関数 help-command を C-x C-h に割り当てる
;(global-set-key "\C-o" 'canna-toggle-japanese-mode) ; 日本語変換ON/OFF;
;; -------------------------------
;; Wanderlust
;; APEL http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/APEL/
;; LIMIT ftp://ftp.jpl.org/pub/m17n/
;; SEMI http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/SEMI/
;; OpenSSL http://sourceforge.jp/projects/gnupack/downloads/47925/openssl-0.9.8o-1.tar.bz2/
;; WANDERLUST http://www.gohome.org/wl/index.ja.html
;; -------------------------------
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
(require 'ssl)
(setq ssl-program-name "openssl")
(setq ssl-program-arguments '("s_client" "-quiet" "-host" host "-port" service))
(setq wl-message-id-domain "fqdn.domain.com")
(setq wl-from "user <user@example.com>")
;; IMAP サーバの設定
(setq elmo-imap4-default-server "imap.gmail.com")
(setq elmo-imap4-default-user "xxxxxxxxxx@gmail.com")
(setq elmo-imap4-default-authenticate-type 'clear)
(setq elmo-imap4-default-port '993)
(setq elmo-imap4-default-stream-type 'ssl)
(setq elmo-imap4-use-modified-utf7 t) ; 日本語フォルダ対策
;; SMTP サーバの設定
;(setq wl-smtp-connection-type 'starttls)
;(setq wl-smtp-posting-port 587)
;(setq wl-smtp-authenticate-type "plain")
;(setq wl-smtp-posting-user "user") ; ユーザ名
;(setq wl-smtp-posting-server "smtp.gmail.com")
;(setq wl-local-domain "gmail.com")
;; デフォルトのフォルダ
(setq wl-default-folder "%inbox")
;; フォルダ名補完時に使用するデフォルトのスペック
(setq wl-default-spec "%")
;(setq wl-draft-folder "%[Gmail]/Drafts") ; Gmail IMAPの仕様に合わせて
;(setq wl-trash-folder "%[Gmail]/Trash")
(setq wl-folder-check-async t) ; 非同期でチェックするように
(setq mail-self-blind t) ; 自動でBCCを付ける
(setq wl-bcc "xxxxx@gmail.com") ; BCC送付先アドレス
; とりあえず全部非表示
(setq wl-message-ignored-field-list '(".*"))
; 必要そうなものだけ表示に変える
;(setq wl-message-visible-field-list '("^To"
; "^From"
; "^Subject"
; "^Date"
; "^Cc"))
; サマリモードの形式
(setq wl-summary-line-format "%n %T%P%@ %M/%D(%W) %h:%m %-6S %t%[%25(%c %f%) %] %s")
; フォルダとサマリで選択したラインの背景色を変える
;(custom-set-faces
; '(wl-highlight-folder-path-face ((t (:underline t))))
; '(wl-highlight-summary-displaying-face ((t (:background "light goldenrod"))))
; )
; 添付ファイルの保存先を変更する
(setq mime-save-directory "c:/gnupack/home/tmp")
; 起動時にはオフライン状態にする
(setq wl-plugged nil)
; サマリ表示行を増やす
(setq wl-summary-width nil)
(setq wl-subject-length-limit nil)
; 終了時に確認しない
(setq wl-interactive-exit nil)
; メール送信時には確認する
(setq wl-interactive-send t)
; 大きいメッセージを送信時に分割しない
(setq mime-edit-split-message nil)
; 日本語添付ファイルの余分な文字を削除する。
(modify-coding-system-alist 'process ".*sh\\.exe" '(sjis-dos . sjis-unix))
(defun shell-quote-argument (file) file)
(eval-after-load "mime-conf"
'(defadvice mime-format-mailcap-command
(after remove-escape-chars activate)
"Remove all '\\' characters in return value of mime-format-mailcap-command "
(while (string-match "\\\\" ad-return-value)
(setq ad-return-value (replace-match "" nil t ad-return-value)))))
;; -------------------------------
;; navi2ch
;; http://navi2ch.sourceforge.net/
;; -------------------------------
(autoload 'navi2ch "navi2ch" "Navigator for 2ch for Emacs" t)
(setq navi2ch-ask-when-exit nil) ; 終了時に訪ねない
(setq navi2ch-message-user-name "") ; スレのデフォルト名を使う
(setq navi2ch-net-save-old-file-when-aborn nil) ; あぼーんがあったたき元のファイルは保存しない
(setq navi2ch-message-ask-before-send nil) ; 送信時に訪ねない
(setq navi2ch-message-ask-before-kill nil) ; kill するときに訪ねない
(setq navi2ch-article-max-buffers 5) ; バッファは 5 つまで
(setq navi2ch-article-auto-expunge t) ; navi2ch-article-max-buffers を超えたら古いバッファは消す
(setq navi2ch-board-insert-subject-with-diff t) ; Board モードのレス数欄にレスの増加数を表示する。
(setq navi2ch-board-insert-subject-with-unread t) ; Board モードのレス数欄にレスの未読数を表示する。
(setq navi2ch-article-exist-message-range '(1 . 1000)) ; 既読スレはすべて表示
(setq navi2ch-article-new-message-range '(1000 . 1)) ; 未読スレもすべて表示
(setq navi2ch-list-stay-list-window nil) ; 3 ペインモードでみる
(global-set-key "\C-c2" 'navi2ch) ; C-c 2 で起動
;; -------------------------------
;; ファイラー関連 dired
;; -------------------------------
(load "dired-x")
; http://uenox.ld.infoseek.co.jp/elisp/uenox-dired.el
; Dired に以下の3つの機能が追加されます。(キーマップはこのファイルの
; 最後の方を書き換えることで変更できます。)
; * C-j
; 現在の行のファイルをWindowsに関連付けられたアプリケーションを使っ
; て開きます。(わざわざエクスプローラーを開かなくて良くなります。)
; * w
; 現在の行のファイル名をUNIX形式にてコピーします。
; * W
; 現在の行のファイル名をDOS形式にてコピーします。
(load "uenox-dired")
; スペースでマークする (FD like)
(define-key dired-mode-map " " 'dired-toggle-mark)
(defun dired-toggle-mark (arg)
(interactive "P")
(let ((dired-marker-char
(if (save-excursion (beginning-of-line)
(looking-at " "))
dired-marker-char ?\040)))
(dired-mark arg)
(dired-previous-line 1)))
; 再帰的なコピー/削除を行う
(setq dired-recursive-copies 'always)
(setq dired-recursive-deletes 'always)
;; -------------------------------
;; emacs-w3m
;; ftp://ftp.jaist.ac.jp/pub/cygwin/release/w3m/w3m-0.5.1-2.tar.bz2
;; http://emacs-w3m.namazu.org/index-ja.html
;; -------------------------------
(require 'w3m-load)
;; -------------------------------
;; SLIME & SBCL
;; SBCL http://www.sbcl.org/
;; SLIME http://common-lisp.net/project/slime/
;; -------------------------------
(add-to-list 'load-path "~/.emacs.d/slime-2010-07-11")
(add-to-list 'load-path "~/.emacs.d/slime-2010-07-11/contrib")
; sbclのパスを記述
(setq inferior-lisp-program "sbcl")
(setq slime-net-coding-system 'utf-8-unix)
(add-hook 'lisp-mode-hook (lambda ()
(slime-mode t)
(show-paren-mode)))
(require 'slime)
(slime-setup '(slime-repl))
; C-c L で slimeを起動
(defun my-slime (&optional command coding-system)
(interactive)
(switch-to-buffer-other-window
(get-buffer-create "*lisp*"))
(slime command coding-system))
(global-set-key "\C-cL" 'my-slime)
; slimeバッファを切換え
(global-set-key "\C-cs" 'slime-selector)
;; HyperSpecのパスを指定
(require 'hyperspec)
(setq
common-lisp-hyperspec-root "file:///cygdrive/c/gnupack/home/.emacs.d/HyperSpec/"
common-lisp-hyperspec-symbol-table (expand-file-name "~/.emacs.d/HyperSpec/Data/MapSym.txt"))
;; HyperSpecをemacs-w3mで起動
(defadvice common-lisp-hyperspec
(around hyperspec-lookup-w3m () activate)
(let* ((window-configuration (current-window-configuration))
(browse-url-browser-function
`(lambda (url new-window)
(w3m-browse-url url nil)
(let ((hs-map (copy-keymap w3m-mode-map)))
(define-key hs-map (kbd "q")
(lambda ()
(interactive)
(kill-buffer nil)
(set-window-configuration ,window-configuration)))
(use-local-map hs-map)))))
ad-do-it))
;; 検索したい関数の上で C-c H で検索する。
(global-set-key "\C-cH" 'hyperspec-lookup)
;; -------------------------------
;; changelog memo
;; http://pop-club.hp.infoseek.co.jp/emacs/clmemo-1.0.tar.gz
;; http://pop-club.hp.infoseek.co.jp/emacs/blgrep/blgrep-0.2.tar.gz
;; -------------------------------
(autoload 'clmemo "clmemo" "ChangeLog memo mode." t)
(setq clmemo-file-name "~/clmemo.txt")
(global-set-key "\C-xM" 'clmemo)
(autoload 'clgrep "clgrep" "ChangeLog grep." t)
(autoload 'clgrep-item "clgrep" "ChangeLog grep." t)
(autoload 'clgrep-item-header "clgrep" "ChangeLog grep for item header" t)
(autoload 'clgrep-item-tag "clgrep" "ChangeLog grep for tag" t)
(autoload 'clgrep-item-notag "clgrep" "ChangeLog grep for item except for tag" t)
(autoload 'clgrep-item-nourl "clgrep" "ChangeLog grep item except for url" t)
(autoload 'clgrep-entry "clgrep" "ChangeLog grep for entry" t)
(autoload 'clgrep-entry-header "clgrep" "ChangeLog grep for entry header" t)
(autoload 'clgrep-entry-no-entry-header "clgrep" "ChangeLog grep for entry except entry header" t)
(autoload 'clgrep-entry-tag "clgrep" "ChangeLog grep for tag" t)
(autoload 'clgrep-entry-notag "clgrep" "ChangeLog grep for tag" t)
(autoload 'clgrep-entry-nourl "clgrep" "ChangeLog grep entry except for url" t)
(add-hook 'clmemo-mode-hook
'(lambda () (define-key clmemo-mode-map "\C-c\C-g" 'clgrep)))
;; -------------------------------
;; 最後に実行
;; -------------------------------
(cd "~") ; 起動時にホームディレクトリへ移動
(my-time-lag) ; 起動時間の測定
gnupack + NTEmacs23 のdot.emacs
今日のところはこんな感じで落ち着いた。