Emacs配置文件3
;;普通设置 (setq inhibit-startup-message t);关闭起动时闪屏 (setq visible-bell t);关闭出错时的提示声 (show-paren-mode t);显示括号匹配 ;(set-default-font "-adobe-courier-medium-r-normal--14-100-100-100-m-90-iso10646-1");;字体设置 (column-number-mode t);显示列号 (setq frame-title-format "%n%F/%b");在窗口的标题栏上显示文件名称 (mouse-avoidance-mode 'animate);光标靠近鼠标指针时,让鼠标指针自动让开 (setq default-frame-alist '((height . 25) (width . 80) (menu-bar-lines . 80) (tool-bar-lines . 80)));设置窗口启动大小 (fset 'yes-or-no-p 'y-or-n-p);以 y/n代表 yes/no (setq-default make-backup-files nil);;不要生成临时文件 (setq x-select-enable-clipboard t);;允许emacs和外部其他程序的粘贴 (setq mouse-yank-at-point t);支持中键粘贴 ;(show-paren-mode 't); 高亮显示匹配括号 ;;自动插入匹配的括号 ;; enable skeleton-pair insert globally (setq skeleton-pair t) (global-set-key (kbd "(") 'skeleton-pair-insert-maybe) (global-set-key (kbd "[") 'skeleton-pair-insert-maybe) (global-set-key (kbd "{") 'skeleton-pair-insert-maybe) ;;热键设置 (global-set-key [f9] 'delete-window);F9 关闭d当前窗口 (global-set-key [f8] 'other-window);F8窗口间跳转 (global-set-key [(f2)] 'ansi-term);F2 切换到shell模式 ;(global-set-key [f3] 'split-window-vertically);F3分割窗口 (global-set-key [f12] 'my-fullscreen);F12 全屏 (global-set-key [(f4)] 'compile);编译 (global-set-key [f5] 'gdb);启动gdb (global-set-key [(f6)] 'gdb-many-windows);启动窗口gdb (global-set-key [f1] 'goto-line);设置M-g为goto-line ;(global-set-key [f7] 'other-frame);跳到其它窗格 (global-set-key [(f3)] 'speedbar);打开speedbar ;;显示行号 (load-file "~/dos/emacs/display-line-number.el") ;;(autoload `display-line-number-mode-on "display-line-number" "display mode" t) (require 'display-line-number) (global-display-line-number-mode t) ;;鼠标滚轮,默认的滚动太快,这里改为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) ;;代码折 (add-hook 'c-mode-hook 'hs-minor-mode) (add-hook 'c++-mode-hook 'hs-minor-mode) ;全屏 (defun my-fullscreen () (interactive) (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_FULLSCREEN" 0))) ;;配色方案 (load-file "~/dos/emacs/color-theme.el") (require 'color-theme) ;(add-hook 'c-mode-common-hook 'color-theme-taylor) ;(add-hook 'c++-mode-common-hook 'color-theme-taylor) ;;打开多缓冲区 (load-file "~/dos/emacs/tabbar.el") (require 'tabbar) (global-set-key (kbd "<left>") 'tabbar-backward-tab) (global-set-key (kbd "<right>") 'tabbar-forward-tab) (global-set-key (kbd "<up>") 'tabbar-forward-group) (global-set-key (kbd "<down>") 'tabbar-backward-group) ;;自动补全 (load-file "~/dos/emacs/msf-abbrev.el") ;; ensure abbrev mode is always on (setq-default abbrev-mode t) ;; do not bug me about saving my abbreviations (setq save-abbrevs nil) ;; load up modes I use (require 'cc-mode) (require 'perl-mode) (require 'cperl-mode) (require 'sh-script) (require 'shell) ;(require 'tex-site) ;; I use AUCTeX ;(require 'latex) ;; needed to define LaTeX-mode-hook under AUCTeX ;(require 'tex) ;; needed to define TeX-mode-hook under AUCTeX ;; (require 'python) ;; I use python.el from Emacs CVS, uncomment if you do also ;; load up abbrevs for these modes (require 'msf-abbrev) (setq msf-abbrev-verbose t) ;; optional (setq msf-abbrev-root "~/dos/emacs/mode-abbrevs") (global-set-key (kbd "C-c l") 'msf-abbrev-goto-root) (global-set-key (kbd "C-c a") 'msf-abbrev-define-new-abbrev-this-mode) (msf-abbrev-load) ;;导入cscope (load-file "~/dos/emacs/cscope-15.6/contrib/xcscope/xcscope.el") ;(add-to-list 'load-path "~/dos/emacs/cscope-15.6/contrib/xcscope") (require 'xcscope) ;;加载xcscope ;;导入cedet (load-file "~/dos/emacs/cedet-1.0pre4/common/cedet.el") ;(add-to-list 'load-path "~/dos/emacs/cedet-1.0pre4/common/cedet.el") (require 'cedet) ;;加载cedet (define-key c-mode-base-map [(meta ?/)] 'semantic-ia-complete-symbol-menu) ;(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) ;;导入ecb (add-to-list 'load-path "~/dos/emacs/ecb-2.32") (require 'ecb) ;;;删除一行 (defun zl-delete-line nil "delete the whole line" (interactive) (beginning-of-line);光标移动到行首 (push-mark);做个标记 (beginning-of-line 2);移动到下一行行首 (kill-region (point) (mark)));光标和标记之间的删掉 (global-set-key (kbd "M-k") 'zl-delete-line);删除一行 ;;语言风格 ;;(add-hook 'c-mode-hook ;; '(lambda () ;; (c-set-style "gnu"))) ;;(add-hook 'c++-mode-hook ;; '(lambda () ;; (c-set-style "gnu"))) ;(defun my-c-mode-common-hook() ; (setq tab-width 4 indent-tabs-mode nil) ;;; hungry-delete and auto-newline ; (c-toggle-auto-hungry-state 2) ;;按键定义 ; (define-key c-mode-base-map [(control \`)] 'hs-toggle-hiding) ; (define-key c-mode-base-map [(return)] 'newline-and-indent) ; (define-key c-mode-base-map [(f7)] 'compile) ; (define-key c-mode-base-map [(f8)] 'ff-get-other-file) ; (define-key c-mode-base-map [(meta \`)] 'c-indent-command) ; (define-key c-mode-base-map [(tab)] 'hippie-expand) ; (define-key c-mode-base-map [(tab)] 'my-indent-or-complete) ; (define-key c-mode-base-map [(meta ?/)] 'semantic-ia-complete-symbol-menu) ;;预处理设置 ; (setq c-macro-shrink-window-flag t) ; (setq c-macro-preprocessor "cpp") ; (setq c-macro-cppflags " ") ; (setq c-macro-prompt-flag t) ; (setq hs-minor-mode t) ; (setq abbrev-mode t) ; (setq tab-width 4 indent-tabs-mode nil) ;) ;(add-hook 'c-mode-common-hook 'my-c-mode-common-hook) ;;;;我的C++语言编辑策略 ;(defun my-c++-mode-hook() ; (setq tab-width 4 indent-tabs-mode nil) ; (c-set-style "stroustrup") ;; (define-key c++-mode-map [f3] 'replace-regexp) ;) ;(add-hook 'c++-mode-hook 'my-c++-mode-hook) ;;;;C/C++语言启动时自动加载semantic对/usr/include的索引数据库 ;(setq semanticdb-search-system-databases t) ; (add-hook 'c-mode-common-hook ; (lambda () ; (setq semanticdb-project-system-databases ; (list (semanticdb-create-database ; semanticdb-new-database-class ; "/usr/include"))))) (defun program-mode() (setq tab-width 8 indent-tabs-mode nil) (c-toggle-auto-hungry-state 1) (c-set-style "stroustrup")) ;(add-hook 'c-mode-hook 'program-mode) ;(add-hook 'c-mode-hook 'program-mode)