ああ、わたしのドット・イーマクス。

dot.emacs

追加で使っているelispcygwin-mount.el, doxymacs.el と gtags.el くらい。

(global-set-key [delete] 'delete-char)
(global-set-key [kp-delete] 'delete-char)

;; open #include <...> file
(global-set-key "\C-c\C-h" 'ff-find-other-file)

;;(global-set-key [home] 'beginning-of-line)
;;(global-set-key [end] 'end-of-line)
;;(global-set-key [C-home] 'beginning-of-buffer)
;;(global-set-key [C-end] 'end-of-buffer)
;;(global-set-key [C-tab] 'bs-cycle-previous)
;;(global-set-key [C-S-iso-lefttab] 'bs-cycle-next)

;; C-z では、suspend-emacs関数が呼ばれるが、C-x C-zでも同じ
;; なので、C-zはUndoにする
(global-set-key "\C-z" 'advertised-undo)               ;; C-x u (Undo)

;;(global-set-key [find] 'overwrite-mode)                ;; PC Insert key
;;(global-set-key [insertchar] 'beginning-of-line)       ;; PC Home key
;;(global-set-key [prior] 'end-of-line)                  ;; PC End key
;;(global-set-key [deletechar] 'scroll-down)             ;; PC PageUp key
(global-set-key [find] 'beginning-of-line)             ;; PC Home key
(global-set-key [select] 'end-of-line)                 ;; PC End key
(global-set-key [insertchar] 'overwrite-mode)          ;; PC Insert key

;;(global-set-key [f3] 'delete-other-windows)

;; ビルド&エラー検索用 ビルド&エラー検索キーマップキーマップ
(global-set-key [f4] 'next-error)
(global-set-key [f14] 'previous-error) ;; f14 == Shift F4
(global-set-key [f5] 'compilation-mode)

;; カレントワードのmanを起動
(global-set-key  [f6]  (lambda () (interactive) (manual-entry (current-word))))
;;(setq manual-program "jmanx")

(global-set-key [f7] 'compile)
(global-set-key [f8] 'grep)

;; same as C-x o
(global-set-key [f9] 'other-window)

;; move buffer
(global-set-key [f11] 'bs-cycle-previous)
(global-set-key [f12] 'bs-cycle-next)


(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)


;; (cd "~/")

;; font-lock mode
(global-font-lock-mode t)

;; visual feedback on selections
(setq-default transient-mark-mode t)

;; last newline
(setq require-final-newline t)

;; not add lines
(setq next-line-add-newlines nil)

;;(setq backup-inhibited t)
;;(setq delete-auto-save-files t)
;;(setq make-backup-files nil)
;;(setq auto-save-default nil)

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

;; 左端に行数を表示する
(global-linum-mode t)

 ;; カーソルの点滅をやめる
(blink-cursor-mode 0)

;; カーソル行をハイライトする
;;(global-hl-line-mode t)

(setq kill-whole-line t)

(display-time)

(which-function-mode 1)

(recentf-mode)

;; 対応する括弧を光らせる
(show-paren-mode t)
;;(setq show-paren-style 'mixed)        ;; 対応する括弧が画面外のときだけ内容を色変え
;;(setq show-paren-style 'expression)     ;; 常に色変え
(set-face-background 'show-paren-match-face "blue") ;; "gray10")
(set-face-foreground 'show-paren-match-face "skyblue")  ;;"SkyBlue")

;; スペース、タブなどを可視化
;; コンソールだと化ける→;; (global-whitespace-mode 1)

;; スクロールは1行ごとに
(setq scroll-conservatively 10000)

;; シフト+矢印で範囲選択
;;(setq pc-select-selection-keys-only t)
;;(pc-selection-mode 1)

(setq default-tab-width 4)
;;(add-hook 'shell-mode-hook '(lamda () (setq tab-width 8))) ;; shellモードはタブ8でないと化けるらしい
(setq auto-mode-alist (cons '("\\.h\\'" . c++-mode) auto-mode-alist))

::(setq vc-default-back-end 'CVS)

;; (setq compile-command "date; gcc -g -Wall -o ")

(setq-default scroll-step 0)

;; 右端で折り返さない
;;(setq-default truncate-lines t)

;; C-x 3 などの縦分割ウィンドウで右端で折り返さない
;;(setq-default truncate-partial-width-windows t)

(setq-default compilation-window-height 10)

;;(setq frame-title-format (format "emacs@%s : %%f" (system-name)))
(setq-default frame-title-format "%b")

;; スクロール時にカーソル位置を保持
(setq scroll-preserve-screen-position t)

;; BS や Delete キーでリージョン内の文字を削除
(delete-selection-mode 1)

;; find file at point #include <stdio.h>とか開いてくれる
;; 従来のFindFindはC-u C-x C-Fとなる。
(ffap-bindings)
(setq ffap-c-path
      '("/usr/include"
        "/usr/include/c++/3.2"
        "/usr/local/include"
        "../include"))


(defun my-c-mode-common-hook ()
    ;; my customizations for all of c-mode and related modes

    ;; コンパイルのときに毎回訊きに来ない
    ;;(setq compilation-read-command nil)

    ;; compileのときに使うコマンド
    ;;(set (make-local-variable 'compile-command) "make -k -C ../Build")

    ;; 
    (setq   comment-column 48)

    ;; 先頭でのTabのみインデント処理する。Tab <==> M-i の入れ替えをするので不要
    ;; (setq c-tab-always-indent nil)

    ;; { の入力などで自動インデント処理
    ;; (setq c-auto-newline t)

    ;; 基本インデント量
    (setq c-basic-offset 4)

    ;; Tabは4
    (setq tab-width 4)

    ;; タブストップの位置
    (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156))

    ;; case sensitive
    ;;(setq case-fold-search nil)
    (setq case-fold-search t)

    ;; 後退の時タブをスペースに変換しない
    (setq c-backspace-function 'backward-delete-char)

    ;; インデント情報の表示
    (setq c-echo-syntactic-information-p t)

    ;; EnterとC-jの交換
    (local-set-key "\C-m" 'newline-and-indent)      ;; ReturnをC-jにする
    (local-set-key "\C-j" 'newline)                 ;; C-j をReturnにする

    ;; TabとM-iの交換
;   (local-set-key "\C-i" 'tab-to-tab-stop)         ;; Tabキーを普通のTabに
;   (local-set-key "\M-i" 'c-indent-command)        ;; M-iキーをインデントにする

    ;; if/for/whileなどの次の行はインデントはそのまま。
    (c-set-offset 'substatement-open    0)
    ;;(c-set-offset 'comment-intro      0)

    ;; 右端で折り返さない
    (setq truncate-lines t)                 ;; 右端で折り返さない cmd:toggle-truncate-lines
    (setq truncate-partial-width-windows t) ;; C-x 3など縦分割ウィンドウで右端で折り返さない

    ;; ワード単位の移動で camelCase に対応
;   (subword-mode)
    )

(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)



;;~/bak/にバックアップ作成
(setq backup-by-copying t)
(fset 'make-backup-file-name
      '(lambda (file)
          (concat (expand-file-name "~/bak/")
                  (file-name-nondirectory file))
         ))
(if (file-exists-p "~/bak/")
    (setq auto-save-list-file-prefix "~/bak/"))

(setq make-backup-files t)
(setq backup-directory-alist
      (cons (cons "\\.*$" (expand-file-name "~/bak"))
            backup-directory-alist))

;; かんたんなVersionControl
(setq version-control t)

;; 新しいものをいくつ残すか
(setq kept-new-versions 2)

;; 古いものをいくつ残すか
(setq kept-old-versions 2)

;; 尋ねずに削除
(setq delete-old-versions t)

;; 編集位置を記憶
(load "saveplace")
(setq-default save-place t)


;;ロードパスを追加
(setq load-path
      (append
       (list (expand-file-name "~/mylisp")) load-path))

;; 罫線lispの設定
(if window-system
    (autoload 'keisen-mode "keisen-mouse" "MULE 版罫線モード + マウス" t)
  (autoload 'keisen-mode "keisen-mule" "MULE 版罫線モード" t))



(require 'doxymacs)
(add-hook 'c-mode-common-hook 'doxymacs-mode)


(require 'gtags)

;; If you hope gtags-mode is on in c-mode then please add c-mode-hook to your
;; $HOME/.emacs like this.
;;
(setq c-mode-hook
    '(lambda ()
    (gtags-mode 1)
))

;; There are two hooks, gtags-mode-hook and gtags-select-mode-hook.
;; The usage of the hook is shown as follows.
;;
;; [Setting to reproduce old 'Gtags mode']
;;
;; (setq gtags-mode-hook
;;   '(lambda ()
;;      (setq gtags-pop-delete t)
;;      (setq gtags-path-style 'absolute)
;; ))
;;
;; [Setting to make 'Gtags select mode' easy to see]
;;
(setq gtags-select-mode-hook
  '(lambda ()
     (setq hl-line-face 'underline)
     (hl-line-mode 1)
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GNU GLOBAL(gtags)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;(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)
         ))

(setq inhibit-startup-message t)        ; 開始メッセージを削除
(menu-bar-mode -1)                      ; メニューを消す
(tool-bar-mode -1)                      ; ツールバーを消す

;; region の色
(set-face-background 'region "SkyBlue")
(set-face-foreground 'region "black")

(if (boundp 'window-system)
    (setq initial-frame-alist
          (append (list
                   '(foreground-color . "azure3") ;; 文字が白
                   '(background-color . "black") ;; 背景は黒
                   '(border-color     . "black")
                   '(mouse-color      . "white")
                   '(cursor-color     . "white")
                   '(cursor-type      . box)
                   '(menu-bar-lines . 1)
                   ;'(vertical-scroll-bars . nil) ;;スクロールバーはいらない
                   ;;'(font . "MS Gothic 12")
                   '(font . "MS Gothic 9")
                   '(width . 120) ;; ウィンドウ幅
                   '(height . 50) ;; ウィンドウの高さ
                   '(top . 0) ;;表示位置
                   ;;'(left . 50) ;;表示位置
                   '(left . 0) ;;表示位置
                   )
                  initial-frame-alist)))
(setq default-frame-alist initial-frame-alist)

;;(require 'cygwin-mount)                   ; cygwin-mount
;;(cygwin-mount-activate)                   ; cygwin-mount


;; rubydb - ruby debugger
;;(autoload 'rubydb "rubydb3x" "ruby debug" 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.
 '(comment-style (quote extra-line))
 '(ediff-make-buffers-readonly-at-startup t)
 '(ediff-split-window-function (quote split-window-horizontally))
 '(line-move-visual t))
(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.
 )