Emacs > .emacs > .emacs(2011.07.08)

;; .emacs                                         
;; Last Updated : 2011/07/08 Fri 08:10:25                   

(if window-system (progn
  ;; 文字の色を設定
  (add-to-list 'default-frame-alist '(foreground-color . "white"))
  ;; 背景色を設定
  (add-to-list 'default-frame-alist '(background-color . "gray7"))
  ;; カーソルの色を設定
  (add-to-list 'default-frame-alist '(cursor-color . "SlateBlue2"))
  ;; ;; マウスポインタの色を設定
  ;; (add-to-list 'default-frame-alist '(mouse-color . "SlateBlue2"))
  ;; ;; モードラインの文字の色を設定
  ;; (set-face-foreground 'modeline "white")
  ;; ;; モードラインの背景色を設定
  ;; (set-face-background 'modeline "MediumPurple2")
  ;; ;; 選択中のリージョンの色を設定
  (set-face-background 'region "Dark Slate Grey")
  ;; ;; モードライン(アクティブでないバッファ)の文字色を設定
  ;; (set-face-foreground 'mode-line-inactive "gray30")
  ;; ;; モードライン(アクティブでないバッファ)の背景色を設定
  ;; (set-face-background 'mode-line-inactive "gray85")

))

;;auto-install.elのインストール手順
;; $mkdir -p ~/.emacs.d/auto-install
;; cd ~/.emacs.d/auto-install
;; wget http://www.emacswiki.org/emacs/download/auto-install.el
;; emacs --batch -Q -f batch-byte-compile auto-install.el

;;;Emacs Lispインストーラを利用
(add-to-list 'load-path "~/.emacs.d/auto-install")
(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c/")
;;;>install-elisp-from-emacswiki "auto-install.el"
(require 'auto-install)
;;起動時にEmacswikiのページを補完候補に加える
;(auto-install-update-emacswiki-package-name t)
;;install-elisp.el互換モード
(auto-install-compatibility-setup)
;;ediff関連のバッファを一つのフレームにまとめる
(setq ediff-window-setup-function 'ediff-setup-windows-plain)


;================================================================================
; 基本設定
;================================================================================
;; スタートアップを非表示
(setq inhibit-startup-screen -1)

;; ビープ音を消す
(setq ring-bell-function 'ignore)

;; 現在行に色をつける
(global-hl-line-mode 1)
;;  その行の色
(set-face-background 'hl-line "black")

;; 履歴を次回Emacs起動時にも保存する
(savehist-mode 1)

;; 対応する括弧を光らせる
(show-paren-mode 1)

;; カーソルの位置が何文字目かを表示する
(column-number-mode t)

;; バックアップファイルを作らない
(setq backup-inhibited t)

;; Xでのクリップボードを共有
(setq x-select-enable-clipboard t)

;; yes-or-noをy-or-nに省略
(defalias 'yes-or-no-p 'y-or-n-p)

;; 行の先頭でC-kを一回押すだけで行全体を消去する
(setq kill-whole-line t)

;; ツールバーを非表示
(tool-bar-mode -1)

;; メニューバーを非表示
(menu-bar-mode -1)

;; 圧縮されたファイルも編集できるようにする
(auto-compression-mode t)

;; スクロールを一行ずつにする
(setq scroll-step 1)

;;; 現在の関数名をモードラインに表示
(which-function-mode 1)

;;; emacsclient
;; ファイルを現在のemacsで開く
(server-start)

;;------------------------ キーバインドの変更 ----------------------------------
;;  指定の行に移る
(global-set-key "\M-g" 'goto-line)

;;  undo
(global-set-key "\C-z" 'undo)

;;  ウィンドウの移動をM-tに
(global-set-key "\M-t" 'other-window)

;;  C-hをBackSpaceに
(global-set-key "\C-h" 'delete-backward-char)

;;  M-x compile を f5 に
(global-set-key [f5] 'compile)

;;;-------------------  初期フレームの設定 ------------------------------------
(setq initial-frame-alist
      (append
       '(	 (width               . 45)    ; フレーム幅(文字数)
	 (height              . 66))   ; フレーム高(文字数)
       initial-frame-alist))

;;; 新規フレームのデフォルト設定
(setq default-frame-alist
      (append
       '((width               . 45)	; フレーム幅(文字数)
	 (height              . 66))	; フレーム高(文字数)	
       default-frame-alist))

;;; ファイル更新日を自動的に書き換える。
;;  ファイルの頭に "last updated : "をつけくわえればよい
(require 'time-stamp)

;; 日本語で日付を入れたくないのでlocaleをCにする
(defun time-stamp-with-locale-c ()
  (let ((system-time-locale "C"))
    (time-stamp)
    nil))

(if (not (memq 'time-stamp-with-locale-c write-file-hooks))
    (add-hook 'write-file-hooks 'time-stamp-with-locale-c))

(setq time-stamp-active t)
(setq time-stamp-start "Last Updated : ")
(setq time-stamp-format "%04y/%02m/%02d %3a %02H:%02M:%02S")
(setq time-stamp-end "  ") ;;;Last Updated : の後に空白2つ以上いれると置換

;;; タイトルバーにファイル名を表示する
(setq frame-title-format (format "emacs@%s : %%f" (system-name)))

;;; ファイルの自動挿入
(auto-insert-mode)
;;  自動挿入するファイルのあるディレクトリ
;;  最後の/は必須
(setq auto-insert-directory "~/.emacs.d/insert/")
;;  自動挿入するファイル
(define-auto-insert "\\.c" "c-template.c")

;================================================================================
;;; viewer.el view-modeの設定
;;  M-x install-elisp-from-emacswiki viewer.el
;;
;;  C-x C-rでview-modeでファイルを開く 
(setq view-read-only t)
;;  書き込み不能な場合はview-modeを抜けないように
(require 'viewer)
(viewer-stay-in-setup)
;;  .log .out .datファイルをview-modeで開く
(setq view-mode-by-default-regexp "\\.log")
(setq view-mode-by-default-regexp "\\.out")
(setq view-mode-by-default-regexp "\\.dat")

;;; view-mode時にモードラインに色をつける
;;  色名を指定
(setq viewer-modeline-color-unwritable "tomato")
(setq viewer-modeline-color-view "orange")
(viewer-change-modeline-color-setup)

;;  view-mode時のキーバインド
(define-key view-mode-map "h" 'backward-char)
(define-key view-mode-map "j" 'next-line)
(define-key view-mode-map "k" 'previous-line)
(define-key view-mode-map "l" 'forward-char)
(define-key view-mode-map "J" 'View-scroll-line-forward)
(define-key view-mode-map "K" 'View-scroll-line-backward)
(define-key view-mode-map "b" 'scroll-down)
(define-key view-mode-map " " 'scroll-up)
;; ;;  bm.el
(define-key view-mode-map "m" 'bm-toggle)
(define-key view-mode-map "[" 'bm-previous)
(define-key view-mode-map "]" 'bm-next)

;;  view-modeを有効・無効にする
;;  0.04秒以内に jk を同時押しでview-modeに移行
(require 'key-chord)
(setq key-chord-two-keys-delay 0.04)
(key-chord-mode 1)
(key-chord-define-global "jk" 'view-mode)

;================================================================================
;;; redo+.el
(require 'redo+)
;;  M-zに設定
(global-set-key "\M-z" 'redo)
(setq undo-no-redo t); 過去のundoがredoされないようにする
;; 大量のundoに耐えられるようにする
(setq undo-limit 600000)
(setq undo-strong-limit 900000)

;;;fullscreen.el
(require 'fullscreen)

;;;-------------------- recentf-ext.el --------------------------
;; install-elisp-from-emacswiki recentf-ext.el
;; 保存しておく数
(setq recentf-max-saved-items 3000)
;; 最近使ったファイルに加えないファイルを正規表現で指定する
(setq recentf-exclude '("/TAGS$" "/var/tmp/"))
(require 'recentf-ext)
;; f8をショートカットキーに
(global-set-key [f8] 'recentf-open-files)

;;; auto-complete.el
;; install-elisp-from-emacswiki auto-complete.el
;(require 'auto-complete)
;(global-auto-complete-mode 1)

;;;col-highlight.el
;; auto-install-batch col-highlight.el
;(require 'col-highlight)
;(column-highlight-mode 1)
;;何もしないでいるとハイライトを始めるようにする場合
;(toggle-highlight-column-when-idle 1)
;(col-highlight-set-interval 3)

;;;=============================  hippie-expand ====================================
;;; 略語展開の順を設定
(setq hippie-expand-try-functions-list
      '(try-expand-dabbrev
        try-expand-dabbrev-all-buffers
        try-expand-dabbrev-from-kill
        try-complete-file-name-partially
        try-complete-file-name
        try-expand-all-abbrevs
        try-expand-list try-expand-line
        try-complete-lisp-symbol-partially
        try-complete-lisp-symbol))
;; キーバインドの変更 C-;
(global-set-key [?\C-;] 'hippie-expand)

;;; ipa.el
(require 'ipa)
;;; 背景色
(set-face-background 'highlight "Corn Flower Blue")

;;;---------------------- sequential-command.el---------------------------------
;;; M-x auto-install-batch sequential-command
(require 'sequential-command-config)
(sequential-command-setup-keys)

;================================================================================
;;; smartchr.el 
;;  M-x install-elisp 
;;  https://github.com/imakado/emacs-smartchr/raw/master/smartchr.el
(require 'smartchr)
;;  once "", twice "
(global-set-key (kbd "\"") (smartchr '("\"`!!'\"" "\"")))

(add-hook 'c-mode-hook
          '(lambda ()
             (local-set-key ( kbd "(") (smartchr '("( `!!' )" "()" "(")))
             (local-set-key ( kbd "\'") (smartchr '("\'`!!'\'" "\'")))
             (local-set-key ( kbd "\,") (smartchr '("\, " "\,")))
             (local-set-key (kbd "[") (smartchr '("[ `!!' ]" "[")))
             (local-set-key (kbd "=") (smartchr '("= " "==" "=")))	     
	     ))
(add-hook 'c++-mode-hook
          '(lambda ()
             (local-set-key ( kbd "(") (smartchr '("( `!!' )" "()" "(")))
             (local-set-key ( kbd "\'") (smartchr '("\'`!!'\'" "\'")))
             (local-set-key ( kbd "\,") (smartchr '("\, " "\,")))
             (local-set-key (kbd "[") (smartchr '("[ `!!' ]" "[")))
             (local-set-key (kbd "=") (smartchr '("= " "== " "=")))	     
	     ))
(add-hook 'org-mode-hook
          '(lambda ()
             (local-set-key ( kbd "$" ) ( smartchr '("`!!'" "$" )))
             (local-set-key ( kbd "\{" ) ( smartchr '("\{`!!'\}" "\{" )))
	     ))

;;;----------------------- auto-save-buffers.el ---------------------------------
;;  M-x install-elisp
;;  http://homepage3.nifty.com/oatu/emacs/archives/auto-save-buffers.el
(require 'auto-save-buffers)
;;  アイドル0.5秒で保存
(run-with-idle-timer 0.5 t 'auto-save-buffers)
(run-with-idle-timer 0.5 t 'auto-save-buffers ""   ".ipa$")

;;; open-junk-file.el
;;  M-x install-elisp-from-emacswiki open-junk-file.el
;;  Usage: M-x open-junk-file
(require 'open-junk-file)
(setq open-junk-file-format "~/junk/%Y-%m-%d-%H%M%S.")
(global-set-key "\C-x\C-j" 'open-junk-file)

;;; bm.el
;;  M-x install-elisp
;;  http://cvs.savannah.gnu.org/viewvc/*checkout*/bm/bm/bm.el
(setq-default bm-buffer-persistence nil)
(setq bm-restore-repository-on-load t)
(require 'bm)
(add-hook 'find-file-hooks 'bm-buffer-restore)
(add-hook 'kill-buffer-hook 'bm-buffer-save)
(add-hook 'after-save-hook 'bm-buffer-save)
(add-hook 'after-revert-hook 'bm-buffer-restore)
(add-hook 'vc-before-checkin-hook 'bm-buffer-save)
(global-set-key [f7] 'bm-toggle)
(global-set-key "\C-xp" 'bm-previous)
(global-set-key "\C-xn" 'bm-next)

;;; twittering-mode
(add-to-list 'load-path "~/.emacs.d/twittering-mode-1.0.0/")
(require 'twittering-mode)
;; Show icons
(setq twittering-icon-mode t)                
;; Update your timeline each 300 seconds (5 minutes)
(setq twittering-timer-interval 30)         
(add-hook 'twittering-mode-hook
	  (lambda ()
	    (mapc (lambda (pair)
		    (let ((key (car pair))
			  (func (cdr pair)))
		      (define-key twittering-mode-map
			(read-kbd-macro key) func)))
		  '(("F" . twittering-friends-timeline)
		    ("R" . twittering-replies-timeline)
		    ("U" . twittering-user-timeline)
		    ("W" . twittering-update-status-interactive)))))

;;;==================  Latex  ========================================
;;  日本語コードをeuc-japanに
(set-language-environment "Japanese")
(set-default-coding-systems 'euc-japan)
(set-terminal-coding-system 'euc-japan)

;;; Yatex
(setq YaTeX-inhibit-prefix-letter nil)
(setq dvi2-command "xdvi -geo +0+0 -s 7")

;;;reftex
(add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode
(add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode
(add-hook 'yatex-mode-hook 'turn-on-reftex) ; with YaTeX mode

;;------------------- 行番号の表示 ---------------------------------
(autoload 'setnu-mode "setnu" nil t)
(global-set-key [f12] 'setnu-mode)

;;==========================  kmacro-save ===============================
(defvar kmacro-save-file "~/.emacs" "キーボードマクロを保存するファイル")
(defun kmacro-save (symbol)
  (interactive "name for last kbd macro: ")
  (name-last-kbd-macro symbol)
  (with-current-buffer (find-file-noselect kmacro-save-file)
    (goto-char (point-max))
    (insert-kbd-macro symbol)
    (basic-save-buffer)))

; 現在行をコピー
(fset 'select-this-line "\C-e\C-@\C-a\M-w")
(global-set-key [?\C-\,] 'select-this-line)

; 文末に;を入力
(fset 'insert-statement-end "\C-e;\C-j")
(global-set-key [?\C-\.] 'insert-statement-end)

; {}を改行してインデント
(fset 'parentheses-and-indent "\C-e{\C-j\C-j}\C-p")
(global-set-key [?\M-\[] 'parentheses-and-indent)

; インデントして次の行へ
(fset 'indent-and-next "\C-i\C-n")
(global-set-key [?\M-i] 'indent-and-next)

;;------------- yasnippet.el -------------------------------
(require 'yasnippet-config)
(yas/setup "~/.emacs.d/plugins/yasnippet-0.6.1c")

;;-------------  iswitchb.el -------------------------------
;; バッファ切り替えを部分文字列で可能に
(iswitchb-mode 1)
(setq read-buffer-function 'iswitchb-read-buffer)
(setq iswitchb-regexp nil)
;; 新しいバッファ作成するときは聞かない
(setq iswitchb-prompt-newbuffer nil)

;; uniquify.el
(require 'uniquify)
;; filename<dir>の形式
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)
;; *で囲まれたバッファ名は対象外にする
(setq uniquify-ignore-buffers-re "*[^*]+*")

;;---------------html-helper-mode------------------------------
(require 'html-helper-mode)
(require 'html-mode)
(require 'tempo)
最終更新:2011年07月08日 08:20