emacsの設定ファイル[init.el]
emacsを使っているので、設定ファイルを失うとemacs-lispをスラスラと読めない私には
環境を戻すのが面倒
現在の、スパゲティ設定ファイルを保存。あぁ、恥ずかしい。
;;; ~/.emacs.d/init.el
;;;---------------------------------
;;; 基本設定
;;;---------------------------------
;; 自分でダウンロードした *.el, *.elc のディレクトリ
(setq my-site-lisp (expand-file-name "~/.emacs.d/site-lisp"))
;; my-site-lisp を load-path に追加
(add-to-list 'load-path my-site-lisp)
;; 起動メッセージを表示しない
(setq inhibit-startup-message t)
;; キャレットが '(' や ')' の直後にある場合に対応する括弧を強調
(show-paren-mode t)
;;スペースを表示
;;(global-whitespace-mode 1)
;; スペースの定義は全角スペースとする。
;;(setq whitespace-space-regexp "\x3000+")
;; 改行の色を変更
;;(set-face-foreground 'whitespace-newline "gray40")
;; 強調したくない要素を削除
;(dolist (d '(face lines space-before-tab
; indentation empty space-after-tab tab-mark))
;(setq whitespace-style (delq d whitespace-style)))
;; Emacs サーバを起動する
;; R だと edit や fix を実行する時に必要
(when (require 'server nil t)
(if (not (server-running-p))
(server-start)))
;; 日本語を utf-8 に統一
(set-language-environment "Japanese")
(setq default-buffer-file-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(setq locale-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
;; comint-mode で重複するコマンドは履歴に保存しない
(add-hook 'comint-mode-hook
(lambda ()
(setq comint-input-ignoredups t)))
;;;---------------------------------
;;; 必須の便利機能
;;;---------------------------------
;; *.el のインストール用
(when (require 'auto-install nil t)
(setq auto-install-directory (expand-file-name my-site-lisp))
(if (executable-find auto-install-wget-command)
(auto-install-update-emacswiki-package-name t)
(message (format "Error: %s command not found." auto-install-wget-command)))
(auto-install-compatibility-setup))
;; 補完機能の追加
(when (require 'auto-complete-config nil t)
(global-auto-complete-mode t)
(add-to-list 'ac-dictionary-directories (expand-file-name "~/.emacs.d/site-lisp/ac-dict"))
(ac-config-default)
;; 補完候補が表示されている間のみ有効な ac-menu-map を有効にする
;; デフォルトで C-n, C-p が利用可能
;; TAB を2回押して(ac-expand が2回実行されて)補完候補が表示された時に有効にならないので(バグ?)使わない
;;(setq ac-use-menu-map t)
;; 補完候補が表示されている時に M-h を押すと即座にドキュメントが表示されるようにする
;; (define-key ac-completing-map (kbd "M-h") (lambda () (interactive) (ac-quick-help t))) だとダメ
(defun ac-quick-help-force ()
(interactive)
(ac-quick-help t))
(define-key ac-completing-map (kbd "M-h") 'ac-quick-help-force)
(define-key ac-completing-map (kbd "C-n") 'ac-next)
(define-key ac-completing-map (kbd "C-p") 'ac-previous))
;;ess
(load "~/ess-12.09/lisp/ess-site.el")
(require 'ess-site)
;;(add-to-list 'load-path "~/.emacs.d/")
;;(require 'auto-complete-config)
;;(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
;;(ac-config-default)
;;(require 'popup)
;;(require 'ess-R-object-popup)
(setq auto-mode-alist
(cons (cons "\\.R$" 'R-mode) auto-mode-alist))
(autoload 'R-mode "ess-site" "Emacs Speaks Statistics mode" t)
(setq ess-ask-for-ess-directory nil)
(setq ess-pre-run-hook
'((lambda ()
(setq default-process-coding-system '(utf-8 . utf-8))
(auto-complete-mode))))
;;; Rの設定
(global-font-lock-mode t) ; S/R TeX
(set-face-foreground 'font-lock-comment-face "Firebrick") ; #com %com
(set-face-foreground 'font-lock-string-face "SeaGreen") ; "str" "str"
;(set-face-foreground 'font-lock-keyword-face "MediumBlue") ; if \end
(set-face-foreground 'font-lock-keyword-face "DeepSkyBlue") ; if \end
(set-face-foreground 'font-lock-constant-face "VioletRed") ; fun<- {ctr}
(set-face-foreground 'font-lock-type-face "DarkGoldenrod") ; T,F ?
;(set-face-foreground 'font-lock-variable-name-face "Blue") ; xv
(set-face-foreground 'font-lock-variable-name-face "DeepPink") ; xv
(set-face-foreground 'font-lock-function-name-face "VioletRed") ; <- {eq1}
(setq auto-mode-alist
(cons (cons "\\.R$" 'R-mode) auto-mode-alist))
(autoload 'R-mode "ess-site" "Emacs Speaks Statistics mode" t)
(setq ess-ask-for-ess-directory nil)
(setq ess-pre-run-hook
'((lambda ()
(setq default-process-coding-system '(utf-8 . utf-8))
(auto-complete-mode))))
;;;---------------------------------
;;; R & ESS の設定
;;;---------------------------------
;; パスの追加
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/ess")
;; 拡張子が r, R の場合に R-mode を起動
(add-to-list 'auto-mode-alist '("\\.[rR]$" . R-mode))
;; R-mode を起動する時に ess-site をロード
(autoload 'R-mode "ess-site" "Emacs Speaks Statistics mode" t)
;; R を起動する時に ess-site をロード
(autoload 'R "ess-site" "start R" t)
;; R-mode 起動直後の処理
;(add-hook 'R-mode-hook 'ess-load-hook)
;; R 起動直前の処理
;(add-hook 'ess-pre-run-hook (lambda () (ess-load-hook t)))
;; YaTeX
;;texファイルを起動したときには自動的にYatexモードにする
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq tex-command "platex-utf8")
;;ReTex自動起動
;(add-hook 'yatex-mode-hook'turn-on-reftex)
;(setq TeX-parse-sefl t)
;(setq-default TeX-master nill)
;;漢字設定(UTF8)
(setq YaTeX-kanji-code 4)
(setq load-path (cons (expand-file-name "/usr/local/share/emacs/site-lisp/yatex") load-path))
(setq tex-command "/usr/texbin/platex" ;;"~/Library/TeXShop/bin/platex2pdf-utf8" ; eucの場合はplatex2pdf-euc
dvi2-command "open -a Preview") ; Preview.appを使ってPDFを開く
(setenv "PATH"
(concat "/usr/local/texlive/2012/bin/x86_64-darwin" (getenv "PATH")))
(put 'upcase-region 'disabled nil)
;;便利機能
;; ミニバッファ履歴リストの最大長:tなら無限
(setq history-length t)
;; session.el
;; kill-ringやミニバッファで過去に開いたファイルなどの履歴を保存する
(when (require 'session nil t)
(setq session-initialize '(de-saveplace session keys menus places)
session-globals-include '((kill-ring 50)
(session-file-alist 500 t)
(file-name-history 10000)))
(add-hook 'after-init-hook 'session-initialize)
;; 前回閉じたときの位置にカーソルを復帰
(setq session-undo-check -1))
;; minibuf-isearch
;; minibufでisearchを使えるようにする
(require 'minibuf-isearch nil t)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-enabled-themes (quote (manoj-dark)))
'(session-use-package t nil (session)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
;;magit
(add-to-list 'load-path "~/.emacs.d/site-lisp/magit")
(require 'magit)
;;install-elispの設定--------------------------
;; まず、install-elisp のコマンドを使える様にします。
(require 'install-elisp)
;; 次に、Elisp ファイルをインストールする場所を指定します。
(setq install-elisp-repository-directory "~/.emacs.d/site-lisp/")
;;Ruby-modeの設定----------------
(autoload 'ruby-mode "ruby-mode"
"Mode for editing ruby source files" t)
(setq auto-mode-alist
(append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
interpreter-mode-alist))
(autoload 'run-ruby "inf-ruby"
"Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby"
"Set local key defs for inf-ruby in ruby-mode")
(add-hook 'ruby-mode-hook
'(lambda ()
(inf-ruby-keys)))
(global-font-lock-mode 1)
(setq default-frame-alist
(append
'((foreground-color . "gray") ;
(background-color . "black") ;
(cursor-color . "blue") ;
)
default-frame-alist))
;;ruby smart0compile.el
;;(load "~/.emacs.d/site-lisp/smart-compile.el")
;;(require 'smart-compile)
;;(define-key ruby-mode-map (kbd "C-c c") 'smart-compile)
;;(define-key ruby-mode-map (kbd "C-c C-c") (kbd "C-c c C-m"))
(setq c-basic-offset 8)