.emacs を晒しとくテスト
コピペしてすぐ(私が)使えるように晒してみた。
すぐ忘れそうなので、コメントもバッチリ書いてますw
;;; .emacs ;(setq debug-on-error t) ;; =============================================================================== ;; ;; Environmental discrimination(環境識別) ;; ;; =============================================================================== (defvar *run-unix* (or (equal system-type 'gnu/linux) (equal system-type 'usg-unix-v))) (defvar *run-win32* (and (null *run-unix*) (or (equal system-type 'windows-nt) (equal system-type 'ms-dos)))) (defvar *run-emacs20* (and (equal emacs-major-version 20) (null (featurep 'xemacs)))) (defvar *run-emacs21* (and (equal emacs-major-version 21) (null (featurep 'xemacs)))) (defvar *run-meadow* (featurep 'meadow)) (defvar *run-meadow1* (and *run-meadow* *run-emacs20*)) (defvar *run-meadow2* (and *run-meadow* *run-emacs21*)) (defvar *run-xemacs* (featurep 'xemacs)) (defvar *run-xemacs-no-mule* (and *run-xemacs* (not (featurep 'mule)))) ;; =============================================================================== ;; ;; User script directory(ユーザースクリプト用ディレクトリ) ;; ;; =============================================================================== (setq load-path (cons "~/site-lisp" load-path)) ;; =============================================================================== ;; ;; i18n(国際化と地域化) ;; ;; =============================================================================== ;; 日本語環境を指定します。 (set-language-environment "Japanese") ;; メニューを日本語化します。 ;; 文字化けする場合は、menu-tree.elをロードする前に menu-tree-coding-system に適当な coding-system をセットします。 (if (and (= emacs-major-version 22) (eq window-system 'x)) (setq menu-tree-coding-system 'utf-8)) ;;; が、define-obsolete-function-alias が void らしく、よくわからないのでボツ。 (require 'menu-tree) ;; 「utf-8」の部分は各自の環境に合わせて設定してください。 ;(require 'menu-tree nil t) ;; =============================================================================== ;; ;; Charset Encoding(文字エンコーディング) ;; ;; =============================================================================== (if *run-win32* (prefer-coding-system 'sjis) (prefer-coding-system 'utf-8)) ;; =============================================================================== ;; ;; IME configuration(IME 設定) ;; ;; =============================================================================== (when *run-meadow* ;; IME のモードごとにカーソル色を変えます。 (add-hook 'mw32-ime-on-hook (function (lambda () (set-cursor-height 4) (set-cursor-color "maroon")))) (add-hook 'mw32-ime-off-hook (function (lambda () (set-cursor-height 4) (set-cursor-color "black")))) ;; IME を (mw32-ime-initialize) (setq default-input-method "MW32-IME") ;; IME ON/OFF mode-line (setq mw32-ime-show-mode-line t) ;; IME mode-line indicator ;; OFF : [--] ;; ON : [あ] (setq-default mw32-ime-mode-line-state-indicator "[--]") (setq mw32-ime-mode-line-state-indicator "[--]") (setq mw32-ime-mode-line-state-indicator-list '("[--]" "[-J]" "[--]"))) ;; =============================================================================== ;; ;; Fonts(フォント) ;; ;; =============================================================================== ;; * フォントの設定 ;; (when *run-win32* ;; フォントセットを追加します。 (w32-add-font "MS Gothic 13" '((spec ((:char-spec ascii :height any) strict (w32-logfont "MS Gothic" 0 -13 400 0 nil nil nil 0 1 3 0)) ((:char-spec ascii :height any :weight bold) strict (w32-logfont "MS Gothic" 0 -13 700 0 nil nil nil 0 1 3 0) ((spacing . -1))) ((:char-spec ascii :height any :slant italic) strict (w32-logfont "MS Gothic" 0 -13 400 0 t nil nil 0 1 3 0)) ((:char-spec ascii :height any :weight bold :slant italic) strict (w32-logfont "MS Gothic" 0 -13 700 0 t nil nil 0 1 3 0) ((spacing . -1))) ((:char-spec japanese-jisx0208 :height any) strict (w32-logfont "MS Gothic" 0 -13 400 0 nil nil nil 128 1 3 0)) ((:char-spec japanese-jisx0208 :height any :weight bold) strict (w32-logfont "MS Gothic" 0 -13 700 0 nil nil nil 128 1 3 0) ((spacing . -1))) ((:char-spec japanese-jisx0208 :height any :slant italic) strict (w32-logfont "MS Gothic" 0 -13 400 0 t nil nil 128 1 3 0)) ((:char-spec japanese-jisx0208 :height any :weight bold :slant italic) strict (w32-logfont "MS Gothic" 0 -13 700 0 t nil nil 128 1 3 0) ((spacing . -1)))))) ;; 起動時およびnew-frame時のフレーム(ウィンドウ)の設定。 (add-to-list 'default-frame-alist '(font . "MS Gothic 13")) ;; 現在のフレームの設定(.emacs中では省略可) (set-frame-font "MS Gothic 13") ;; IMEのフォントを設定。こういう書式でないとだめらしい。 (let ((logfont '(w32-logfont "MS Gothic" 0 0 400 0 nil nil nil 128 1 3 0))) (modify-frame-parameters (selected-frame) (list (cons 'ime-font logfont))) (add-to-list 'default-frame-alist (cons 'ime-font logfont)))) ;; =============================================================================== ;; ;; Display theme(ディスプレイテーマ) ;; ;; =============================================================================== ;; 選択範囲の色を指定します。 (set-face-background 'region "SkyBlue") (set-face-foreground 'region "black") ;; カーソルを縦棒にします。 ;(set-cursor-type 'hairline-caret) ;; frame-listではさらに,起動時のデフォルトとなる 一行字数や行数,文字色や背景色なども指定できます。 ;; これらの設定を追加した例が以下です。 (setq default-frame-alist (append (list ; * font ;'(font . "tt16") ; フォントセット ;'(ime-font . "tt16-japanese-jisx0208") ; IME フォントセット ; * size & position '(width . 170) ; 一行の字数 '(height . 20) ; 行数 '(top . 5) ; ディスプレイのX座標(ピクセル) '(left . 5) ; ディスプレイのY座標(ピクセル) ;'(alpha . (nil 70 50 30)) ; * color '(background-color . "white") ; 背景の色 '(foreground-color . "black") ; 文字の色 ;'(cursor-color . "black") ; カーソルの色 ;'(cursor-type . (bar . 4)) ; カーソルの形状 ) default-frame-alist)) ;; カーソルの形を細い横棒にします。 (add-to-list 'default-frame-alist '(cursor-type . (bar . 5))) ;; カーソルの色を黒にします。 (set-cursor-color "black") ;; 自動改行されないようになればいいなぁ。 (setq fill-column 300) (setq text-mode-hook 'turn-off-auto-fill) ; * ウィンドウの透明度を設定する ; Emacs 23 や一部の Emacs 22(Carbon Emacs パッケージや Fink の emacs 22.3 など) ; では、ウィンドウ(フレーム)の透明度を自由に設定することができます。透明度の設 ; 定は、frame-parameter というウィンドウ設定変数の alpha というパラメーターで指 ; 定します。 .emacs.el の書式は、いくつか方法がありますが、以下のようにすれば良いでしょう。 ;; デフォルトの透明度を設定する (85%) (add-to-list 'default-frame-alist '(alpha . 85)) ;; カレントウィンドウの透明度を変更する (85%) ;; (set-frame-parameter nil 'alpha 0.85) (set-frame-parameter nil 'alpha 85) ;; =============================================================================== ;; ;; Highlights(ハイライト) ;; ;; =============================================================================== ;; キーワードのカラー表示を有効化 ;; 「t」の部分を「nil」にするとカラー表示をOffにできる (global-font-lock-mode t) ;; コメント (set-face-foreground 'font-lock-comment-face "gray44") ;; キーワード (set-face-foreground 'font-lock-keyword-face "green4") ;; キーワードを太文字にします。 (make-face-bold 'font-lock-keyword-face) ;; 関数名 (set-face-foreground 'font-lock-function-name-face "brown") ;; 変数 (set-face-foreground 'font-lock-variable-name-face "brack") ;; 文字列 (set-face-foreground 'font-lock-string-face "blue") ;; 定数 (set-face-foreground 'font-lock-constant-face "yellow green") ;;; 変数の型 (set-face-foreground 'font-lock-type-face "dark green") ;; びるといんふぇいす? (set-face-foreground 'font-lock-builtin-face "purple") ;; わーにんぐふぇいす? (set-face-foreground 'font-lock-warning-face "maroon") ;; =============================================================================== ;; ;; Setting the title bar and toolbar(タイトルバーとツールバーの設定) ;; ;; =============================================================================== ;; タイトルバーにバッファ名を表示します。 (setq frame-title-format "%b") ;; %f だと、フルパス名。 %b ならバッファの名前。 ;; =============================================================================== ;; ;; Key binds(キー割り当て) ;; ;; =============================================================================== ;; 改行キーでオートインデント (define-key global-map "\C-m" 'newline-and-indent) (setq indent-line-function 'indent-relative-maybe) ;;インデント方法。 ;; Ctrl+Insert でペースト。 ;(define-key global-map "\C-Insert" ') ;; =============================================================================== ;; ;; Useful functions(便利関数) ;; ;; =============================================================================== ;; * [EOF] を表示します。 ;; ;; Meadow 1.99 なら以下のようにすると同じことができるようです。 ;(defun set-buffer-end-mark() ; (let ((overlay (make-overlay (point-max) (point-max)))) ; (overlay-put overlay 'before-string #("[EOF]" 0 5 (face highlight))) ; (overlay-put overlay 'insert-behind-hooks ; '((lambda (overlay after beg end &optional len) ; (when after ; (move-overlay overlay (point-max) (point-max)))))))) ;(add-hook 'find-file-hooks 'set-buffer-end-mark) ;; あるいは (defun set-buffer-end-mark() (let ((overlay (make-overlay (point-max) (point-max)))) (overlay-put overlay 'before-string #("[EOF]" 0 5 (face highlight))) (overlay-put overlay 'insert-behind-hooks '((lambda (overlay after beg end &optional len) (when after (move-overlay overlay (point-max) (point-max)))))))) (add-hook 'find-file-hooks 'set-buffer-end-mark) ;; でもいい。 ;; =============================================================================== ;; ;; SHELL(M-x shell のときの設定) ;; ;; =============================================================================== (when *run-meadow* ;; MSYS の bash を使用します。 (setq explicit-shell-file-name "bash.exe") (setq shell-file-name "sh.exe") ;; SHELL で ^M が付く場合は ^M を削除します。 (add-hook 'shell-mode-hook (lambda () (set-buffer-process-coding-system 'undecided-dos 'sjis-unix))) ;; shell-mode での保管(for drive letter) (setq shell-file-name-chars "~/A-Za-z0-9_^$!#%&{}@`'.,:()-")) ;; =============================================================================== ;; ;; Time stamp(ファイル更新日) ;; ;; =============================================================================== (require 'time-stamp) (add-hook 'before-save-hook 'time-stamp) (setq time-stamp-active t) (setq time-stamp-start "@date ") (setq time-stamp-format "%04y-%02m-%02d") (setq time-stamp-end " \\|$") ;; =============================================================================== ;; ;; Templates ;; ;; =============================================================================== ; * テンプレートを用意する ; 新しくファイルを開く場合に、予め用意しておいたテンプレートファイルの中身を自動的に挿入するようにします。 (require 'autoinsert) (setq auto-insert-directory "~/var/share/templates") (setq auto-insert-alist (nconc '( ("\\.c$" . "template.c") ("\\.h$" . "template.h") ("\\.rb" . "template.rb") ) auto-insert-alist)) (add-hook 'find-file-not-found-hooks 'auto-insert) ;; =============================================================================== ;; ;; Miscellaneous Settings(雑多な設定) ;; ;; =============================================================================== ;; カレントディレクトリをホームディレクトリに設定 ;; ""内は任意のディレクトリを指定可能 (cd "~/") ;; 起動時のメッセージを表示しません。 (setq inhibit-startup-message t) ;; 選択範囲をハイライトします。 (setq-default transient-mark-mode t) ;;; 行番号・桁番号をモードラインに表示する・しない設定 (line-number-mode t) ; 行番号。t なら表示、nil なら非表示 (column-number-mode t) ; 桁番号。t なら表示、nil なら非表示 ;; 対応するカッコをハイライト表示します。 (show-paren-mode 1) ;; オートセーブを有効にします。 (auto-save-mode t) ;; バックアップファイルを作ります。 (setq backup-inhibited nil) ;; 終了時にオートセーブファイルが削除されません。 (setq delete-auto-save-files nil) ;; モードラインに現在時刻を表示します。 (display-time) ;; 選択領域を入力で置き換えるようにします。 (delete-selection-mode 1) ;; S-[←→]で範囲を選択できるようになります。 (pc-selection-mode) ;;; エラーが出るのでコメントアウト。 ;;;; 引数の 1 は要らなかったらしい。 ;; auto-fill モードを使用します。 (setq-default auto-fill-function 'do-auto-fill) ;; 行数を左に表示します。 ;(setq wb-line-number-scroll-bar nil) ;(require 'wb-line-number) ;(wb-line-number-toggle) ;; キーワードのカラー表示を有効化します。 (global-font-lock-mode t) ;; 最近使ったファイルをメニューに表示します。 (recentf-mode 1) ;; ウィンドウの一番下にカーソルがある場合、そこから下に移動したときに何行スクロールするかの設定です。 ;; 以下は 15 行の場合。 ; line-setting (setq next-line-add-newlines nil) (line-number-mode 15) (column-number-mode 15)