;======================================================================
; 言語・文字コード関連の設定
;======================================================================
(when (equal emacs-major-version 21) (require 'un-define))
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)				;;UTF-8優先
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)

;=======================================================================
; Misc
;=======================================================================
(mouse-wheel-mode)					;;ホイールマウス
(global-font-lock-mode t)				;;文字の色つけ
(setq line-number-mode t)				;;カーソルのある行番号を表示
(auto-compression-mode t)				;;日本語infoの文字化け防止
(set-scroll-bar-mode 'right)				;;スクロールバーを右に表示
(global-set-key "\C-h" 'backward-delete-char)		;;Ctrl-Hでバックスペース
(setq visible-bell nil)					;;ヴィジュアルベル無効
(setq ring-bell-function '(lambda ()))			;;ビープ音も無効
(when (boundp 'show-trailing-whitespace) (setq-default show-trailing-whitespace t))	;;行末のスペースを強調表示

;; load-pathの設定
(add-to-list 'load-path (expand-file-name "~/site-lisp"))

;; 対応する括弧を強調表示
(show-paren-mode t)
(setq show-paren-style 'mixed)
;(set-face-background 'show-paren-match-face "gray10")
(set-face-background 'show-paren-match-face "lawn green")
(set-face-foreground 'show-paren-match-face "light sea green")
(set-face-background 'show-paren-mismatch-face "magenta")
(set-face-foreground 'show-paren-mismatch-face "firebrick")

;; ツールバーを表示しない
(tool-bar-mode 0)

;; メニューを消したい
(menu-bar-mode -1)

;; 時計の設定
(setq display-time-string-forms
  '((substring year -2) "/" month "/" day " " dayname " " 24-hours ":" minutes))
(display-time)

;; "Lisp nesting exceeds max-lisp-eval-depth"への対処
(setq max-lisp-eval-depth 1000)

;; "Variable binding depth exceeds max-specpdl-size"への対処
(setq max-specpdl-size 1867)

;; バッファの切換えをもっと楽にしたい − iswitchb
;; (iswitchb-default-keybindings)
(iswitchb-mode 1)

;; 列数を表示する
(column-number-mode t)

;; スタートアップ時のメッセージを抑制
(setq inhibit-startup-message t)



;; https://github.com/typester/emacs-config/blob/master/conf/init.el
;; % で対応する括弧に移動
(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)))))
(define-key global-map (kbd "C-5") 'match-paren)
;; C-t でother-window、分割されてなかったら分割
(defun other-window-or-split () ; http://d.hatena.ne.jp/rubikitch/20100210/emacs
  (interactive)
  (when (one-window-p)
    (split-window-horizontally))
  (other-window 1))
(define-key global-map (kbd "C-t") 'other-window-or-split)



;; scratchの初期メッセージ消去
(setq initial-scratch-message "")

;; タイトルバーにファイルのフルパス表示
(setq frame-title-format
      (format "%%f - Emacs@%s" (system-name)))

;; 最近使ったファイルをメニューに表示
(recentf-mode t)

;; 最近使ったファイルの表示数
(setq recentf-max-menu-items 10)

;; 最近開いたファイルの保存数を増やす
(setq recentf-max-saved-items 3000)

;; ミニバッファの履歴を保存する
(savehist-mode 1)

;; ミニバッファの履歴の保存数を増やす
(setq history-length 3000)

;; デフォルトのタブ幅を半角スペース4つ分に
(setq default-tab-width 4)

;; c-modeの設定
(setq c-default-style "linux"
	c-basic-offset 4)
;; - http://d.hatena.ne.jp/syohex/20110624/1308871777
;; 	c-modeの自動インデントをデフォルトで無効化
;; 	有効/無効はC-c C-lで切り替え
;; (add-hook 'c-mode-hook
;; 	'(lambda ()
;; 		(c-toggle-electric-state -1)))

;; auto-installの設定
(add-to-list 'load-path (expand-file-name "~/.emacs.d/auto-install"))
(require 'auto-install)
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)
(setq ediff-window-setup-function 'ediff-setup-windows-plain)

;; cmigemoの設定
;; http://qiita.com/kenbeese/items/ebbf0128d7c752a94a22
(setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict")
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
(setq migemo-user-dictionary nil)
(setq migemo-coding-system 'utf-8)
(setq migemo-regex-dictionary nil)
(load-library "migemo")
(migemo-init)

;; ;; anything.elの設定
;; (require 'anything-startup)

;; auto-complete-mode.elの設定
(add-to-list 'load-path "~/.emacs.d/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)

;; GNU GLOBAL(gtags.el)の設定(ここから)
(add-to-list 'load-path "~/site-lisp")
(autoload 'gtags-mode "gtags" "" t)
(setq gtags-mode-hook
	'(lambda ()
		(local-set-key "\M-t" 'gtags-find-tag)
		(local-set-key "\M-r" 'gtags-find-rtag)
		(local-set-key "\M-s" 'gtags-find-symbol)
		(local-set-key "\C-t" 'gtags-pop-stack)))
;; (add-hook 'gtags-mode-hook
;;   '(lambda ()
;;         ; Local customization (overwrite key mapping)
;;         (define-key gtags-mode-map "\C-f" 'scroll-up)
;;         (define-key gtags-mode-map "\C-b" 'scroll-down)
;; ))
(add-hook 'gtags-select-mode-hook
	'(lambda ()
		(setq hl-line-face 'underline)
		(hl-line-mode 1)))
(add-hook 'c-mode-hook
	'(lambda ()
		(gtags-mode 1)
		(gtags-make-complete-list)))
; Customization
(setq gtags-suggested-key-mapping t)
(setq gtags-auto-update t)
;; GNU GLOBAL(gtags.el)の設定(ここまで)

;; Helmの設定
(add-to-list 'load-path "~/site-lisp/helm")
(require 'helm-config)
最終更新:2014年06月04日 22:02