茨城県つくばみらい市から来ました

プログラマーになるために生きています

.emacs

;; ---------------------------------------------------------
;; load-path
;; ---------------------------------------------------------
(setq load-path
      (append
       (list
        (expand-file-name "~/.elisp")
        )
       load-path))

;; ---------------------------------------------------------
;; 自慢の.emacsを貼り付けるスレ
;; ---------------------------------------------------------
;;
;; スタートアップメッセージを表示しない
;(setq inhibit-startup-message t)

;; emacs 終了時に確認する。
(if (eq emacs-major-version 21)
    (setq confirm-kill-emacs 'yes-or-no-p)
  (defun my-save-buffers-kill-emacs ()
    (interactive)
    (if (yes-or-no-p "quit emacs? ")
        (save-buffers-kill-emacs)))
  (global-set-key "\C-x\C-c" 'my-save-buffers-kill-emacs))

;;C-x bでbuffersを選ぶ時便利
;;(iswitchb-default-keybindings)

;; バッファを切り替えるのに C-x e で electric-buffer-list を使う。
(global-set-key "\C-x\C-b" 'electric-buffer-list)


;; iswitchbで勝手にリサイズ
;;(iswitchb-default-keybindings)
;;(resize-minibuffer-mode)

;; iswitchb で絞り込みをやる
(add-hook 'iswitchb-define-mode-map-hook
          (lambda ()
            (define-key iswitchb-mode-map "\C-o" 'iswitchb-shrink-buflist)))

(defun iswitchb-shrink-buflist ()
  (interactive)
  (setq iswitchb-buflist iswitchb-matches)
  (erase-buffer))

;; 警告音のかわりに画面フラッシュ
(setq visible-bell nil)

;; ステータスラインに時間を表示する
(display-time)

;; 時間表示
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(setq display-time-string-forms
      '(month "/" day "(" dayname ") " 24-hours ":" minutes))
(display-time)

;; 行番号・桁番号をモードラインに表示する
(line-number-mode t) ; 行番号
(column-number-mode t) ; 桁番号

;; 画面から出たとき一行だけスクロールさせる
(setq scroll-conservatively 1)

;; バッファの最後の行で next-line しても新しい行を作らない
(setq next-line-add-newlines nil)

;; バッファの最初の行で previous-line しても、
;; "beginning-of-buffer" と注意されないようにする。
(defun previous-line (arg)
  (interactive "p")
  (if (interactive-p)
      (condition-case nil
          (line-move (- arg))
        ((beginning-of-buffer end-of-buffer)))
    (line-move (- arg)))
  nil)

;; hoge.txt~ みたいなバックアップファイルを作らないようにする
; (setq backup-inhibited t)

;; c-mode その他で色が付くようにする
(global-font-lock-mode)

;; 検索とかリージョンを色付きに。
(setq transient-mark-mode t)
(setq search-highlight t)
(setq query-replace-highlight t)

;; C-tで別のウィンドウに切り替える
(global-set-key "\C-t" 'other-window)

;; カスタムelisp
; (setq custom-file "~/.custom.el")

;; ---------------------------------------------------------
;; For Ruby
;; ---------------------------------------------------------
;(require 'color-theme)
;(color-theme-initialize)
;(color-theme-)

;; ---------------------------------------------------------
;; For Ruby
;; ---------------------------------------------------------
;; wget http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/misc/README
;; wget http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/misc/inf-ruby.el
;; wget http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/misc/ruby-electric.el
;; wget http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/misc/ruby-mode.el
;; wget http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/misc/rubydb2x.el
;; wget http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/misc/rubydb3
;;
;;  or yum -i install ruby-mode
;;
(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files" t) 1
(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 t)
;(setq default-frame-alist
;      (append
;       '((foreground-color . "gray")  ;
;        (background-color . "black") ;
;        (cursor-color     . "blue")  ;
;        )
;       default-frame-alist))

;; ---------------------------------------------------------
;; For Browse-Kill-Ring
;; ---------------------------------------------------------
;M-y とすると, kill-ring の一覧が表示されます.
;n,p で前後へ移動し,y で貼り付け,q で終了,e で選択中の kill-ring を編集できます.
;間違って貼り付けた場合には U で取り消すことができます.
;普通の isearch での検索はもちろんできますし,s や r でも検索ができます.
(require 'browse-kill-ring)
(global-set-key "\M-y" 'browse-kill-ring)
;; kill-ring を一行で表示
                                                        (setq browse-kill-ring-display-style 'one-line)
;; browse-kill-ring 終了時にバッファを kill する
(setq browse-kill-ring-quit-action 'kill-and-delete-window)
;; 必要に応じて browse-kill-ring のウィンドウの大きさを変更する
(setq browse-kill-ring-resize-window t)
;; kill-ring の内容を表示する際の区切りを指定する
;(setq browse-kill-ring-separator "-------")
;; 現在選択中の kill-ring のハイライトする
(setq browse-kill-ring-highlight-current-entry t)
;; 区切り文字のフェイスを指定する
;(setq browse-kill-ring-separator-face 'region)
;; 一覧で表示する文字数を指定する. nil ならすべて表示される.
(setq browse-kill-ring-maximum-display-length 80)

;; ---------------------------------------------------------
;; For epo "Editing Process Organizer"
;; ---------------------------------------------------------
; http://www.yatex.org/epo/
; http://park.ruru.ne.jp/ando/work/who/epojava/doc/install.html
(setq load-path (cons "~/.emacs.d/epo" load-path))
;; このフォルダ名はインストール先により変動します。
(autoload 'epo "epo" "Editing Process Organizer" t)
;; Ruby を使うとき
(add-hook 'ruby-mode-hook 'epo)
;; emacs-lisp を使うとき
(add-hook 'emacs-lisp-mode-hook 'epo)
;; perl を使うとき
(add-hook 'perl-mode-hook 'epo)
;; tex-mode を使うとき(YaTex を使うときはこれではダメ。下記参照)
(add-hook 'tex-mode-hook 'epo)
;; YaTeX を使うとき
(add-hook 'yatex-mode-hook 'epo)
;; SGML を使うとき(PSGML 使用のときはこれではダメ。下記参照)
;(add-hook 'sgml-mode-hook 'epo)
;; Java を使うとき(epojava 使用のときはこれではダメ。下記参照)
;(add-hook 'java-mode-hook 'epo)
;; IDL を使うとき(epojava 使用のときはこれではダメ。下記参照)
;(add-hook 'idl-mode-hook 'epo)
;; C++ を使うとき(epojava 使用のときはこれではダメ。下記参照)
;(add-hook 'c++-mode-hook 'epo)
;; C を使うとき(epojava 使用のときはこれではダメ。下記参照)
;(add-hook 'c-mode-hook 'epo)
;; YaHTML でHTML を補完するために使うとき
;; (XHTML などの XML や、JSP のためにepoを使用したいときはこれではダメ。下記参照)
;(add-hook 'yahtml-mode-hook 'epo)

;; ---------------------------------------------------------
;; For epojava
;; ---------------------------------------------------------
                ;; load-path
(setq load-path (cons "~/.emacs.d/epojava" load-path))
;; epojava mode
(require 'epoan)
;; java
(setq auto-mode-alist
      (cons (cons "\\.\\(java\\|class\\)$" 'epojava-mode) auto-mode-alist))
(autoload 'epojava-mode "epojava" "Epo-java mode" t)
;; CORBA/IDL
(setq auto-mode-alist (cons (cons "\\.idl$" 'epoidl-mode) auto-mode-alist))
(autoload 'epoidl-mode  "epocc"   "Epo-idl mode" t)
;; CORBA/C mapping
(setq auto-mode-alist
      (cons (cons "\\.\\(ih\\|hh\\|ic\\)$" 'epocc-mode) auto-mode-alist))
;; C/C++
(setq auto-mode-alist
      (cons (cons "\\.\\(C\\|cc\\|CC\\|cpp\\|cxx\\|h\\|H\\)$"
                  'epocc-mode) auto-mode-alist))
(setq auto-mode-alist (cons (cons "\\.c$" 'epoc-mode) auto-mode-alist))
(autoload 'epoc-mode    "epocc"   "Epo-c mode" t)
(autoload 'epocc-mode   "epocc"   "Epo-cc mode" t)

;; ---------------------------------------------------------
;; C-mode
;; ---------------------------------------------------------
(put 'upcase-region 'disabled nil)

;; ---------------------------------------------------------
;; AUCTeX
;; ---------------------------------------------------------
;; (require 'tex-site);; -*- coding: iso-2021-7bit


;; ---------------------------------------------------------
;; ref: http://www1.u-netsurf.ne.jp/~ysk-net/WithEmacs/page4_2.html
;; ---------------------------------------------------------

;; ---------------------------------------------------------
;; HTML-helper-mode
;; ---------------------------------------------------------
;;(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
;;(setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist))

;; ---------------------------------------------------------
;; css-mode
;; ---------------------------------------------------------
(autoload 'css-mode "css-mode")
(setq auto-mode-alist (cons '("\\.css$" . css-mode) auto-mode-alist))


;; ---------------------------------------------------------
;; navi-2ch
;; ---------------------------------------------------------
(autoload 'navi2ch "navi2ch" "Navigator for 2ch for Emacs" t)
(setq navi2ch-list-bbstable-url "http://menu.2ch.net/bbsmenu.html")
(setq load-path (cons "~/.emacs.d/navi2ch" load-path))

;; ---------------------------------------------------------
;; Pov-mode
;; ---------------------------------------------------------
;; Set autoloading of POV-mode for these file-types.
(autoload 'pov-mode "pov-mode.el" "PoVray scene file mode" t)
(setq auto-mode-alist
        (cons '("\\.pov$" . pov-mode)  auto-mode-alist))
(defvar font-pov-is-Emacs22)