emacs配置

转自: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】免费获取数百本计算机经典书籍

    emacs配置

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/17865

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午6:31
下一篇 2023年2月7日 下午6:33

相关推荐