Emacsの設定

環境を変更したので、emacsの設定をメモ。

準備するもの

anythingの設定が甘いので、それは今後の課題。

; Copyright (C) 2009 Kawa
;日本語対応
(set-language-environment "Japanese") 

; Libraryの追加
(setq load-path (append '("~/lib/emacs") load-path))

; pymacs の設定
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
(eval-after-load "pymacs"
  '(add-to-list 'pymacs-load-path "/usr/share/emacs22/site-lisp"))

; Python Modeにする設定
; M-TAB:補完
; C-c C-c: バッファ内容をPythonで実行
; C-c | C-c C-r: リージョンの内容をPythonで実行
; C-c C-s: 任意の式を実行
; C-c C-z: Pythonの出力を表示
; C-c !: Python Shellに移動
(setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist (cons '("python" . python-mode)
                                   interpreter-mode-alist))
(autoload 'python-mode "python-mode" "Python editing mode." t)
(add-hook 'python-mode-hook '(lambda ()
			       (require 'pycomplete)
			       ))

(require 'anything-config)
(require 'anything)

;Kill Ringの表示
(setq anything-kill-ring-threshold 5)
(global-set-key "\M-y" 'anything-show-kill-ring)

; C-h を削除に変更
(global-set-key "\C-h" 'backword-delete-char)
(global-set-key "\C-cl" 'goto-line)
(global-set-key "\C-cg" 'grep)
(global-set-key "\C-c\C-s" 'replace-string)
(global-set-key "\C-c\C-l" 'indent-region)
(global-set-key "\C-cp" 'c-beginning-of-defun)
(global-set-key "\C-cn" 'c-end-of-defun)
 ;;bs-showでバッファ選択する。
(global-set-key "\C-x\C-b" 'bs-show)
 ;;選択範囲に色を付ける
(transient-mark-mode 1)

;;行番号表示
(setq line-number-mode t) 

 ;;列番号表示
(setq column-number-mode t)

 ;; 対応する括弧を光らせる(グラフィック環境のみ作用)
(show-paren-mode t)

;現在時刻を表示する
(display-time)


; 自動補完 (~/lib/emacs/auto-complete.el)
; auto complete (http://dev.ariel-networks.com/Members/matsuyama/auto-complete)
; M-x auto-complete-modeで有効化
; TAB: 補完を実行する
; C-n/<down>: 次の候補
; C-p/<up>: 前の候補
; C-m/RET:補完完了
;
(require 'auto-complete) 
(global-auto-complete-mode t)

; pytho 補完ライブラリ
; easy_install pysmell
; http://d.hatena.ne.jp/moch-lite/20090419/p1
(require 'pysmell) 
(add-hook 'python-mode-hook (lambda () (pysmell-mode 1)))

(defvar ac-source-pysmell 
 '((candidates 
     . (lambda ()
         (require 'pysmell)      
	 (pysmell-get-all-completions)))) 
  "Source for PySmell") 
(add-hook 'python-mode-hook 
	  '(lambda () 
	     (set (make-local-variable 'ac-sources) (append ac-sources '(ac-source-pysmell)))))