此博文不再更新,请移歩:https://github.com/visayafan/emacs
;(set-default-font "-microsoft-MS Reference Sans Serif-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1")
;(set-default-font " -unknown-DejaVu Sans-normal-normal-normal-*-13-*-*-*-*-0-iso10646-1")
(add-to-list 'load-path "~/.emacs.d")
(tool-bar-mode nil)
(menu-bar-mode t)
(load-file "~/.emacs.d/cedet-1.0/common/cedet.el")
;; (semantic-load-enable-minimum-features)
(semantic-load-enable-code-helpers)
;; (semantic-load-enable-guady-code-helpers)
;; (semantic-load-enable-excessive-code-helpers)
(semantic-load-enable-semantic-debugging-helpers)
;; Enable EDE (Project Management) features
(global-ede-mode 1)
;; Enable EDE (Project Management) features
(global-ede-mode 1)
;; Enable source code folding
(global-semantic-tag-folding-mode 1)
(define-key semantic-tag-folding-mode-map (kbd "C-c , -") 'semantic-tag-folding-fold-block)
(define-key semantic-tag-folding-mode-map (kbd "C-c , =") 'semantic-tag-folding-show-block)
(define-key semantic-tag-folding-mode-map (kbd "C-c . -") 'semantic-tag-folding-fold-all)
(define-key semantic-tag-folding-mode-map (kbd "C-c . =") 'semantic-tag-folding-show-all)
;; 括号自动匹配
(require 'autopair)
(autopair-global-mode) ;; to enable in all buffers
;; 将buffer转化为html文件,保持颜色不变
(require 'htmlize)
;; 显示行号
(require 'linum)
(global-linum-mode 1)
;; 标签
(require 'tabbar)
(tabbar-mode)
(global-set-key (kbd "M-P") 'tabbar-backward-group) 0
(global-set-key (kbd "M-N") 'tabbar-forward-group)
(global-set-key (kbd "M-p") 'tabbar-backward)
(global-set-key (kbd "M-n") 'tabbar-forward)
;; 切换buffer,寻找文件
(require 'ido)
(ido-mode t)
;; 最近访问过的文件和最近修改过的文件
(require 'session)
(add-hook 'after-init-hook 'session-initialize)
;; kill-ring 方便粘贴。
(require 'browse-kill-ring)
(global-set-key [(control c)(k)] 'browse-kill-ring)
(browse-kill-ring-default-keybindings)
;; 替换自带的切换Buffer功能
(require 'ibuffer)
(global-set-key (kbd "C-x C-b") 'ibuffer)
;; 高亮当前行:hi-line.el,emacs自己带的
(require 'hl-line)
(global-hl-line-mode t)
;; 应该是Chrome用的吧?
(require 'edit-server)
(edit-server-start)
;; 设置光标为竖线
;; (setq-default cursor-type 'bar)
;; 光标禁止闪烁-1 光标闪烁1
(blink-cursor-mode 1)
(add-hook 'c-mode-hook 'hs-minor-mode)
(add-hook 'C++-mode-hook 'hs-minor-mode)
(add-hook 'lisp-mode-hook 'hs-minor-mode)
(add-hook 'html-mode-hook 'hs-minor-mode)
(global-set-key "\C-cha" 'hs-hide-all)
(global-set-key "\C-cas" 'hs-show-all)
(global-set-key "\C-chb" 'hs-hide-block)
(global-set-key "\C-cbs" 'hs-show-block)
(global-set-key "\C-chl" 'hs-hide-level)
;; hide-region
(require 'hide-region)
(global-set-key (kbd "C-c h r") 'hide-region-hide)
(global-set-key (kbd "C-c s r") 'hide-region-unhide)
;; hide lines
(require 'hide-lines)
(global-set-key (kbd "C-c h L") 'hide-lines)
(global-set-key (kbd "C-c s l") 'show-all-invisible)
(global-set-key (kbd "C-c m l") 'list-matching-lines)
;; 返回最近修改的地方
(require 'goto-last-change)
(global-set-key "\C-c g l" 'goto-last-change)
;;;; sudo apt-get install cscope
(require 'xcscope)
(setq cscope-do-not-update-database t)
(add-hook 'c-mode-hook (function cscope:hook))
(add-hook 'c++-mode-hook (function cscope:hook))
(add-hook 'dired-mode-hook (function cscope:hook))
;(define-key global-map (kbd "C-c s a") 'cscope-set-initial-directory)
(define-key global-map (kbd "C-c s A") 'cscope-unset-initial-directory)
(define-key global-map (kbd "C-c s s ") 'cscope-find-this-symbol)
(define-key global-map (kbd "C-c s d") 'cscope-find-global-definition)
(define-key global-map (kbd "C-c s G") 'cscope-find-global-definition-no-prompting)
(define-key global-map (kbd "C-c s u") 'cscope-pop-mark)
(define-key global-map (kbd "C-c s n") 'cscope-next-symbol)
(define-key global-map (kbd "C-c s N") 'cscope-next-file)
(define-key global-map (kbd "C-c s p") 'cscope-prev-symbol)
(define-key global-map (kbd "C-c s P") 'cscope-prev-file)
(define-key global-map (kbd "C-c s b") 'cscope-display-buffer)
;; (define-key global-map (kbd "C-c s ")' cscope-display-buffer-toggle)
;; 显示被一个输入函数调用的所有函数。
(define-key global-map (kbd "C-c s c") 'cscope-find-functions-calling-this-function)
;; 显示被输入函数调用的所有函数
(define-key global-map (kbd "C-c s C") 'cscope-find-called-functions)
(define-key global-map (kbd "C-c s f") 'cscope-find-this-file);
;; Find files #including a file.
(define-key global-map (kbd "C-c s i") 'cscope-find-files-including-file)
;; Find egrep pattern
(global-set-key (kbd "C-c s e") 'cscope-find-egrep-pattern)
;; Find text string;
(global-set-key (kbd "C-c s t") 'cscope-find-this-text-string)
(require 'yasnippet-bundle)
(setq yas/root-directory "~/.emacs.d/snippets") (yas/load-directory yas/root-directory)
(put 'dired-find-alternate-file 'disabled nil)
(require 'dired-x) ; 有些特殊的功能
;;括号匹配时显示另外一边的括号,而不是烦人的跳到另一个括号。
(setq show-paren-style 'parentheses)
;;把缺省的 major mode 设置为 text-mode, 而不是几乎什么功能也 没有的 fundamental-mode.
(show-paren-mode t)
(mouse-avoidance-mode 'animate)
;;进行语法加亮。
(global-font-lock-mode t)
;;设置有用的个人信息
(setq user-full-name "visaya fan")
(setq user-mail-address "visayafan[AT]gmail.com")
;;让 dired 可以递归的拷贝和删除目录。
(setq dired-recursive-copies 'top)
(setq dired-recursive-deletes 'top)
(setq visible-bell t)
;; 高亮显示选择区域
(setq transient-mark-mode t)
;; 设置tab为4个空格的宽度,而不是原来的2
(setq c-basic-offset 4)
(setq default-tab-width 4)
(setq-default indent-tabs-mode nil)
;; 打开图片显示功能
(auto-image-file-mode t)
;;页面平滑滚动, scroll-margin 3 靠近屏幕边沿3行时开始滚动,可以很好的看到上下文。
(setq scroll-margin 3
scroll-conservatively 10000)
;;; hippie-expa