转自:http://hi.baidu.com/boywhp/blog/item/9bef24afbaf636c17dd92a77.html
(add-to-list 'load-path "~/.emacs.d" t)
;;光标显示为一竖线
(setq-default cursor-type 'bar)
;;关闭工具栏
;;(tool-bar-mode nil)
;;滚动条置右
(customize-set-variable 'scroll-bar-mode 'right)
;;语法高亮
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
;;设置自动换行模式->
(setq-default truncate-lines 1)
(desktop-save-mode 1)
(require 'ido)
(ido-mode 1)
(require 'cc-mode)
;;添加最近打开的菜单
(require 'session)
(add-hook 'after-init-hook 'session-initialize)
;;显示行号
(require 'linum)
(global-linum-mode t)
;;不生成#F#文件
(setq auto-save-default nil)
;;不生成临时文件
(setq-default make-backup-files nil)
;;设置标题栏显示文件的完整路径名
(setq frame-title-format
'("%S" (buffer-file-name "%f"
(dired-directory dired-directory "%b"))))
;;括号自动配对
;;自动补全括号
(defun my-common-mode-auto-pair ()
(interactive)
(make-local-variable 'skeleton-pair-alist)
(setq skeleton-pair-alist '(
(? ? _ "''")
(? ? _ """")
(? ? _ "()")
(? ? _ "[]")
(?{ \n > _ \n ?} >)))
(setq skeleton-pair t)
(local-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(local-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
(local-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(local-set-key (kbd "\'") 'skeleton-pair-insert-maybe)
(local-set-key (kbd "[") 'skeleton-pair-insert-maybe))
(add-hook 'c-mode-hook 'my-common-mode-auto-pair)
(add-hook 'c++-mode-hook 'my-common-mode-auto-pair)
;;强制TAB键使用空格
(setq-default indent-tabs-mode nil)
;;M-i执行tab-to-tab-stop
;;(define-key c-mode-map (kbd "") 'tab-to-tab-stop)
(setq tab-width 8
c-basic-offset 8)
;;鼠标滚轮,默认的滚动太快,这里改为3行
(defun up-slightly () (interactive) (scroll-up 3))
(defun down-slightly () (interactive) (scroll-down 3))
(global-set-key [mouse-4] 'down-slightly)
(global-set-key [mouse-5] 'up-slightly)
;;重新绑定C-z到撤销
(global-set-key (kbd "C-z") 'undo)
;;配置sr-speedbar,F4键调出speedbar
(require 'sr-speedbar)
(global-set-key [(f4)] 'sr-speedbar-toggle)
;;加载代码自动完成脚本
(add-to-list 'load-path "~/.emacs.d/auto-complete-1.3")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete-1.3/dict")
(ac-config-default)
;;yasnippet模板补全
(add-to-list 'load-path "~/.emacs.d/yasnippet-0.6.1c")
(require 'yasnippet)
(yas/initialize)
(yas/load-directory "~/.emacs.d/yasnippet-0.6.1c/snippets")
;; c-eldoc函数提示
;; add in your commonly used packages/include directories here, for
;; example, SDL or OpenGL. this shouldn't slow down cpp, even if
;; you've got a lot of them
;; (setq c-eldoc-includes "`pkg-config gtk+-2.0 --cflags` -I./ -I../ ")
(load "c-eldoc")
(add-hook 'c-mode-hook
(lambda ()
(set (make-local-variable 'eldoc-idle-delay) 0.20)
(c-turn-on-eldoc-mode)
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 配置cedet环境
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(load-file "~/.emacs.d/cedet-1.0pre7/common/cedet.el")
(require 'semantic-ia)
(require 'semantic-gcc)
(require 'semantic-c)
(semantic-load-enable-minimum-features)
;;设置提示间隔时间为0.5s
(setq-default semantic-idle-scheduler-idle-time 0.5)
(setq-default semantic-complete-inline-analyzer-idle-displayor-class 'semantic-displayor-tooltip)
(global-semantic-idle-completions-mode 1)
(global-semantic-mru-bookmark-mode 1)
;;将当前编辑函数显示在状态条上
;;(which-function-mode)
(defun semantic-ia-fast-jump-back ()
(interactive)
(if (ring-empty-p (oref semantic-mru-bookmark-ring ring))
(error "Semantic Bookmark ring is currently empty"))
(let* ((ring (oref semantic-mru-bookmark-ring ring))
(alist (semantic-mrub-ring-to-assoc-list ring))
(first (cdr (car alist))))
(if (semantic-equivalent-tag-p (oref first tag) (semantic-current-tag))
(setq first (cdr (car (cdr alist)))))
(semantic-mrub-switch-tags first)))
(defun my-cedet-hook ()
(semantic-add-system-include "/usr/src/linux-headers-2.6.32-23/include/" 'c-mode)
;;(local-set-key [f12] 'ecb-activate)
;;(local-set-key [(control return)] 'semantic-ia-complete-symbol)
;;修改默认make -k 命令
(setq compile-command "make")
(define-key c-mode-base-map [(f7)] 'compile)
(local-set-key [f1] 'semantic-ia-complete-symbol-menu)
(local-set-key "\C-cj" 'semantic-ia-fast-jump)
(local-set-key "\C-cb" 'semantic-mrub-switch-tags)
(local-set-key "\C-c?" 'semantic-ia-complete-symbol-menu)
(local-set-key "\C-c>" 'semantic-complete-analyze-inline)
(local-set-key "\C-cp" 'semantic-analyze-proto-impl-toggle))
(add-hook 'c-mode-common-hook 'my-cedet-hook)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GDB设置-类VC6设置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq gdb-many-windows t)
(defun gud-break-remove ()
"Set/clear breakpoin."
(interactive)
(save-excursion
(if (eq (car (fringe-bitmaps-at-pos (point))) 'breakpoint)
(gud-remove nil)
(gud-break nil))))
(add-hook 'gdb-mode-hook '(lambda ()
(gud-tooltip-mode 1)
(define-key c-mode-base-map [f5] 'gud-go)
(define-key c-mode-base-map [f10] 'gud-step)
(define-key c-mode-base-map [f11] 'gud-next)
(define-key c-mode-base-map [f9] 'gud-break-remove)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 配置xcscope快捷键盘 同global默认键盘一致
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'xcscope)
(define-key c-mode-base-map "\M-." 'cscope-find-global-definition)
(define-key c-mode-base-map "\M-?" 'cscope-find-functions-calling-this-function)
(define-key c-mode-base-map "\M-*" 'cscope-pop-mark)
(define-key c-mode-base-map [f12] 'cscope-find-this-file)
原文链接: https://www.cnblogs.com/greatIDeas/archive/2010/11/24/1886150.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/17865
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!