理科系の勉強日記

Linux/Ubuntu/Mac/Emacs/Computer vision/Robotics

Emacs設定ファイル

Emacsメモ
2012.03.02段階でEmacsに導入しているパッケージや設定

Undo-tree(パッケージ)

C-x u で右側のバッファに入力の履歴をツリー状に表示してくれる.
C-p, C-n, C-f, C-bで移動でき,qでバッファを閉じる.
便利だが少し動作が重い.
ダウンロードしてきたものをload-pathの通っているディレクトリ(Ubuntu10.10の場合は/usr/local/share/emacs/23.1/site-lisp/)にコピーして以下を.emacsに追加.

;; undo-tree
(when (require 'undo-tree nil t)
(global-undo-tree-mode))

auto-complete(パッケージ)

Tabで自動補完候補を小さな窓で表示してくれる.
M-/よりもずっと便利.
load-pathの通っているところに落としてきたものをコピーして以下を.emacsに追加.

;; auto-complete
(require 'auto-complete)
(require 'auto-complete-config)    ; 必須ではないですが一応
(global-auto-complete-mode t)

C-x % で対応する括弧へジャンプ

2chかどこかで拾ってきたもの.
以下を.emacsに追加.

(progn
  (defvar com-point nil
    "Remember com point as a marker. \(buffer specific\)")
  (set-default 'com-point (make-marker))
  (defun getcom (arg)
    "Get com part of prefix-argument ARG."
    (cond ((null arg) nil)
	  ((consp arg) (cdr arg))
	  (t nil)))
  (defun paren-match (arg)
    "Go to the matching parenthesis."
    (interactive "P")
    (let ((com (getcom arg)))
      (if (numberp arg)
	  (if (or (> arg 99) (< arg 1))
	      (error "Prefix must be between 1 and 99.")
	    (goto-char
	     (if (> (point-max) 80000)
		 (* (/ (point-max) 100) arg)
	       (/ (* (point-max) arg) 100)))
	    (back-to-indentation))
	(cond ((looking-at "[\(\[{]")
	       (if com (move-marker com-point (point)))
	       (forward-sexp 1)
	       (if com
		   (paren-match nil com)
		 (backward-char)))
	      ((looking-at "[])}]")
	       (forward-char)
	       (if com (move-marker com-point (point)))
	       (backward-sexp 1)
	       (if com (paren-match nil com)))
	      (t (error ""))))))
  (define-key ctl-x-map "%" 'paren-match))

その他,カーソルの色や背景色などビジュアルの設定など

;;背景色,文字色
(set-background-color "black")
(set-foreground-color "white")
(set-face-font 'default "-*-*-medium-*-*-*-14-*")
(setq transient-mark-mode t)
(require 'linum)
(global-linum-mode)

;;カーソル
(if (boundp 'window-system)
    (setq default-frame-alist
          (append (list 
                   '(cursor-color     . "white")  ; カーソルの色
                   '(cursor-type      . box)      ; カーソルの形状
                   )
                  default-frame-alist)))
(setq initial-frame-alist default-frame-alist )