Skip to content

Instantly share code, notes, and snippets.

@kawacho
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kawacho/264d31130a10c7f2ed77 to your computer and use it in GitHub Desktop.
Save kawacho/264d31130a10c7f2ed77 to your computer and use it in GitHub Desktop.
~/.emacs.d/init.el 晒し(2014-09-28)
;;; -*- Mode: Emacs-Lisp; Coding: utf-8 -*-
;;; ~/.emacs.d/
(unless (boundp 'user-emacs-directory)
(defvar user-emacs-directory (expand-file-name "~/.emacs.d/")))
;;; ユーザー情報
(setq user-full-name "Kawahara Masayoshi")
(setq user-mail-address "kawacho@gmail.com")
;;; キーバインド(基本)
(setq suggest-key-bindings 5) ; M-x ... で実行したらキーバインドを表示
(keyboard-translate ?\C-h ?\C-?)
(global-set-key "\C-h" nil)
(global-set-key "\C-ch" 'help-command)
(global-set-key "\M-?" 'help-for-help)
;;; マウス操作時にダイアログボックスを表示しない(安定してないので)
(setq use-dialog-box nil)
;;; バックアップ・自動保存
(setq auto-save-default nil)
(setq make-backup-files nil)
(setq vc-make-backup-files nil)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; server, emacsclient
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'server)
(unless (server-running-p)
(server-start))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Emacs Lisp パッケージ管理
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; *.el 置いている場所
(add-to-list 'load-path user-emacs-directory)
(add-to-list 'load-path (expand-file-name "auto-install/" user-emacs-directory))
(add-to-list 'load-path (expand-file-name "elisp/" user-emacs-directory))
;; package.el
;; - http://emacs-jp.github.io/packages/package-management/package-el.html
;; - http://elpa.gnu.org/packages/
;; - http://melpa.milkbox.net/#/
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
;; (add-to-list 'package-archives '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/") t)
(package-initialize)
;; パッケージが無いものは auto-install で入れるか手動で。
;; auto-install 自体は package.el でインストールできる。
(require 'auto-install)
(auto-install-compatibility-setup)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 環境変数
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Mac で GUI から起動しても、シェルの PATH 環境変数を引き継ぐ
;; - http://qiita.com/catatsuy/items/3dda714f4c60c435bb25
(when (memq window-system '(mac ns))
(exec-path-from-shell-initialize))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 言語環境、日本語入力など
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 言語環境
(set-language-environment "Japanese")
;; コーディングシステム
(cond
;; Windows
;; gnupack 設定ファイルから
((eq system-type 'windows-nt)
(set-keyboard-coding-system 'cp932)
(prefer-coding-system 'utf-8-dos)
(set-file-name-coding-system 'cp932)
(setq default-process-coding-system '(cp932 . cp932)))
(t
(prefer-coding-system 'utf-8)))
;; 日本語入力の設定
(cond
;; Cocoa Emacs, 日本語化パッチ
((and (eq window-system 'ns)
(functionp 'mac-set-input-method-parameter))
(setq default-input-method "MacOSX")
;; "Convert yen to backslash for JIS keyboard."
;; (mac-translate-from-yen-to-backslash)
;; Shift キーがシステム・IM に渡るようにする
(mac-add-key-passed-to-system 'shift)
;; 起動したら英字にする
(add-hook 'after-init-hook 'mac-change-language-to-us)
;; ミニバッファを開いたときに英字にする(閉じてもモードは戻らない)
(add-hook 'minibuffer-setup-hook 'mac-change-language-to-us)
;; Input Source ごとのカスタマイズ
;; - 一覧は (mac-get-input-source-list) で取得できる。
;; - ATOK はバージョンごとに ID が変わる。年に一回なのでとりあえず手動更新で対応。
(mac-set-input-method-parameter "com.justsystems.inputmethod.atok27.Japanese" `title "")
(mac-set-input-method-parameter "com.justsystems.inputmethod.atok27.Japanese" `cursor-color "darkred")
(mac-set-input-method-parameter "com.justsystems.inputmethod.atok27.Roman" `cursor-color "black")
)
;; Windows
;; gnupack 設定ファイルから
((eq system-type 'windows-nt)
(setq default-input-method "W32-IME")
(setq-default w32-ime-mode-line-state-indicator "[Aa]")
(setq w32-ime-mode-line-state-indicator-list '("[Aa]" "[あ]" "[Aa]"))
(w32-ime-initialize)
;; IME の ON/OFF でカーソルの色を変える
(set-cursor-color "black")
(add-hook 'input-method-activate-hook
(lambda() (set-cursor-color "darkred")))
(add-hook 'input-method-inactivate-hook
(lambda() (set-cursor-color "black")))
;; バッファ切り替え時にIME状態を引き継ぐ
(setq w32-ime-buffer-switch-p nil)
)
)
;; encode の設定
(when (eq system-type 'windows-nt)
;; gnupack 設定ファイルから
;; 機種依存文字
(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)))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; フレーム、ウィンドウまわりのいろいろ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 透過
;; (set-frame-parameter (selected-frame) 'alpha '(95 90))
;; スタートアップ画面
(setq inhibit-startup-screen t)
;; メニューバー
(when window-system (menu-bar-mode +1))
;; ツールバー
(when window-system (tool-bar-mode -1))
;; スクロールバー
(when window-system (scroll-bar-mode -1))
;; フリンジに行番号表示
;; (global-linum-mode t)
;; (set-face-attribute 'linum nil :height 0.8)
;; (setq linum-format "%4d")
;; バッファ末尾より後の行では、フリンジ左側に何か表示される
(setq-default indicate-empty-lines t)
;; モードラインの行番号・桁番号
(line-number-mode t)
(column-number-mode t)
;; 一時バッファのサイズ
(temp-buffer-resize-mode +1)
;; 縦に(左右に)ウィンドウを分割した場合の折り返し
(setq truncate-partial-width-windows nil)
;; カーソル
(setq default-frame-alist
(append (list
'(cursor-type . box)
'(cursor-height . 4)
)
default-frame-alist))
(when window-system (blink-cursor-mode -1))
;; 非アクティブウィンドウのカーソル
(setq-default cursor-in-non-selected-windows nil)
;; フォントロック
(global-font-lock-mode +1)
(setq font-lock-support-mode
(if (fboundp 'jit-lock-mode) 'jit-lock-mode 'lazy-lock-mode))
;; 一般的な設定ファイルなどの構文強調表示
;; http://at-aka.blogspot.jp/2011/03/emacs-etchosts-etcapache2conf.html
(require 'generic-x)
;; 対応するカッコを強調表示
(show-paren-mode t)
(setq show-paren-style 'mixed) ; `parenthesis' or `expression' or `mixed'
;; 行ハイライト
(when window-system (global-hl-line-mode +1))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; フォントセットまわり
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq scalable-fonts-allowed t)
(when (eq window-system 'ns)
(setq ns-antialias-text t))
(cond
;; Cocoa Emacs
((and (eq window-system 'ns)
(or (and (= emacs-major-version 23) (>= emacs-minor-version 3))
(= emacs-major-version 24))
)
;; Cocoa Emacs のフォント設定について - 瀬戸亮平
;; http://d.hatena.ne.jp/setoryohei/20110117/1295336454
(let* ((size 12) ; ASCIIフォントのサイズ [9/10/12/14/15/17/19/20/...]
(asciifont "Menlo") ; ASCIIフォント
(jpfont "Hiragino Maru Gothic Pro") ;; 日本語フォント
(h (* size 10))
(fontspec (font-spec :family asciifont))
(jp-fontspec (font-spec :family jpfont))
(osaka-fontspec (font-spec :family "Osaka"))
)
(set-face-attribute 'default nil :family asciifont :height h)
(set-fontset-font nil 'japanese-jisx0213.2004-1 jp-fontspec)
(set-fontset-font nil 'japanese-jisx0213-2 jp-fontspec)
(set-fontset-font nil 'katakana-jisx0201 jp-fontspec) ; 半角カナ
(set-fontset-font nil '(#x0080 . #x024F) fontspec) ; 分音符付きラテン
;; (set-fontset-font nil '(#x0370 . #x03FF) fontspec) ; ギリシャ文字
(set-fontset-font nil '(#x0370 . #x03FF) jp-fontspec) ; ギリシャ文字
(set-fontset-font nil '#xFF0B osaka-fontspec) ; +(プラス)
(set-fontset-font nil '#x2212 osaka-fontspec) ; −(マイナス)
(set-fontset-font nil '#x00B1 osaka-fontspec) ; ±(プラスマイナス)
(set-fontset-font nil '#x00D7 osaka-fontspec) ; ×(かける)
(set-fontset-font nil '#x00F7 osaka-fontspec) ; ÷(わる)
)
;; フォントサイズの比を設定
(dolist (elt '(("^-apple-hiragino.*" . 1.2)
(".*osaka-bold.*" . 1.2)
(".*osaka-medium.*" . 1.2)
(".*courier-bold-.*-mac-roman" . 1.0)
(".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
(".*monaco-bold-.*-mac-roman" . 0.9)))
(add-to-list 'face-font-rescale-alist elt))
;; 123456789012345678901234567890
;; ABCDEFGHIJKLMNOPQRSTUVWXYZabcd
;; あいうえおかきくけこさしすせそ
;; ◎○●▲■◎○●▲■◎○●▲■
;; ×÷±+−×÷±+−×÷±+−
;; 123456789012345678901234567890
;; ΑΒΓαβγΑΒΓαβγΑΒΓαβγΑΒΓαβγΑΒΓαβγ
;; フレームの縦横サイズ・位置
(cond
((equal system-name "kawachoimac.local")
(add-to-list 'default-frame-alist '(top . 50))
(add-to-list 'default-frame-alist '(left . 0))
(add-to-list 'default-frame-alist '(width . 150))
(add-to-list 'default-frame-alist '(height . 90)))
(t
(add-to-list 'default-frame-alist '(width . 100))
(add-to-list 'default-frame-alist '(height . 50)))
)
)
;; Windows, gnupack
;; gnupack の ini で設定されているのをそのまま使う。
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; その他の設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; バッファメニューは別ウィンドウで
(global-set-key "\C-x\C-b" 'buffer-menu-other-window)
;; iswitchb
(iswitchb-mode +1)
;; uniquify
(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)
;; 他で変更されたら再読込
(global-auto-revert-mode +1)
;; 物理行移動
(setq line-move-visual nil)
;; スクロール
(setq scroll-step 1)
(setq scroll-margin 1) ;; C-l recenter
(setq scroll-conservatively 35)
; (setq next-screen-context-lines 1)
;; タブ
(setq-default tab-width 4)
(setq-default indent-tabs-mode nil)
;; 自動詰め込み、折り返し
(setq-default fill-column 76)
;; DnD で insert じゃなくて普通に開くように
(when (eq window-system 'ns)
(define-key global-map [ns-drag-file] 'ns-find-file)
(setq ns-pop-up-frames nil))
;; マウスでドラッグ(範囲選択)してコピー
;; (24.1 からデフォルトが変わったので)
(setq mouse-drag-copy-region t)
;; 補完時の大文字小文字区別
(setq completion-ignore-case t)
;; (setq read-file-name-completion-ignore-case t)
;; (setq read-buffer-completion-ignore-case t)
;; 検索時の大文字小文字の区別
(setq-default case-fold-search t)
;; browse-url
(global-set-key [S-mouse-2] 'browse-url-at-mouse)
;; yank した部分を一瞬ハイライトさせる
;; http://quruli.ivory.ne.jp/diary/?date=20110416#p10
(when window-system
(defadvice yank (after ys:yank-highlight activate)
(let ((ol (make-overlay (mark t) (point))))
(overlay-put ol 'face 'highlight)
(sit-for 0.5)
(delete-overlay ol)))
(defadvice yank-pop (after ys:yank-pop-highlight activate)
(when (eq last-command 'yank)
(let ((ol (make-overlay (mark t) (point))))
(overlay-put ol 'face 'highlight)
(sit-for 0.5)
(delete-overlay ol)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Mew - http://www.mew.org/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(when (eq system-type 'darwin) ; Mac でしか使ってない
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mew/")
(when (locate-library "mew")
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
;; 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)))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Emacs Lisp mode
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; eldoc
(add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
(add-hook 'lisp-interaction-mode 'turn-on-eldoc-mode)
(setq eldoc-minor-mode-string "")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; dmacro.el - キー操作の繰返し検出 & 実行
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; - http://www.pitecan.com/DynamicMacro/
;; - http://www.pitecan.com/DynamicMacro/dmacro.el
(defconst *dmacro-key* "\C-t" "繰返し指定キー")
(global-set-key *dmacro-key* 'dmacro-exec)
(autoload 'dmacro-exec "dmacro")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; recentf - 最近開いたファイル
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'recentf)
(setq recentf-max-saved-items 200)
(recentf-mode +1)
;; 履歴の自動保存が必要なら……
;; - Emacs で最近開いたファイルのリストを自動保存する。 - 日々、とんは語る。
;; http://d.hatena.ne.jp/tomoya/20110217/1297928222
;; - Emacs の recentf-mode をチューニングしたよ
;; http://masutaka.net/chalow/2011-10-30-2.html
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; session.el
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; - http://emacs-session.sourceforge.net/index.html
;; - http://www.fan.gr.jp/~ring/Meadow/meadow.html#session.el
(require 'session nil t)
(setq session-initialize '(de-saveplace session places keys))
(setq session-globals-include '((kill-ring 50)
(session-file-alist 100 t)
(file-name-history 100)))
(add-hook 'after-init-hook 'session-initialize)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; minibuf-isearch
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; - http://www.sodan.org/~knagano/emacs/minibuf-isearch/
;; - http://0xcc.net/unimag/3/
(require 'minibuf-isearch)
(setq minibuf-isearch-ignore-case t)
(setq minibuf-isearch-use-migemo nil)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; migemo
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; - https://github.com/emacs-jp/migemo
;; - http://0xcc.net/migemo/
(cond
((eq system-type 'darwin)
;; Mac(Cocoa Emacs)
;; 1. brew install cmigemo などで cmigemo をインストール
;; 2. package.el などで migemo.el をインストール
(require 'migemo)
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
(setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict")
(setq migemo-user-dictionary nil)
(setq migemo-regex-dictionary nil)
(setq migemo-coding-system 'utf-8-unix)
(migemo-init))
((eq system-type 'windows-nt)
;; Windows
;; - gnupack に入ってる
(setq migemo-command (concat (getenv "INST_DIR") "\\app\\cmigemo\\cmigemo"))
(setq migemo-options '("-q" "--emacs"))
(setq migemo-dictionary (concat (getenv "INST_DIR") "\\app\\cmigemo\\dict\\utf-8\\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 'utf-8-unix)
(load-library "migemo")
(migemo-init)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; popwin
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; - https://github.com/m2ym/popwin-el
(require 'popwin)
(popwin-mode +1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; vbnet-mode(VB.NET)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; - http://www.emacswiki.org/emacs/VbDotNetMode
;; - http://www.emacswiki.org/emacs/vbnet-mode.el
(autoload 'vbnet-mode "vbnet-mode" "Mode for editing VB.NET code." t)
(setq auto-mode-alist (append '(("\\.\\(frm\\|bas\\|cls\\|vb\\)$" .
vbnet-mode)) auto-mode-alist))
(defun my-vbnet-mode-fn ()
"My hook for VB.NET mode"
(interactive)
(turn-on-font-lock)
(turn-on-auto-revert-mode)
(setq indent-tabs-mode nil)
(setq vbnet-mode-indent 4)
(setq vbnet-want-imenu t)
;; (require 'flymake)
;; (flymake-mode 1)
)
(add-hook 'vbnet-mode-hook 'my-vbnet-mode-fn)
;;; init.el ends here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment