emacs-site插件文件夹可以在下面地址下载,里面也有个emacs配置不过是旧的。 http://download.csdn.net/detail/tujiaw/3736262


;;设置一个读取插件的默认路径
(add-to-list 'load-path "~/emacs-site/")

;;显示行号
(global-linum-mode t)

;;显示时间,格式如下
(display-time-mode t)
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)

;;在标题栏提示你目前在什么位置
;;(setq frame-title-format "root@%b")
(defun frame-title-string ()
  "Return the file name of current buffer, using ~ if under home directory"
  (let
      ((fname (or
           (buffer-file-name (current-buffer))
           (buffer-name)))
       (max-len 100))
    (when (string-match (getenv "HOME") fname)
      (setq fname (replace-match "~" t t fname)))
    (if (> (length fname) max-len)
    (setq fname
          (concat "..."
              (substring fname (- (length fname) max-len)))))
    fname))
(setq frame-title-format '("tjw-emacs@"(:eval (frame-title-string))))

;;支持emacs和外部程序粘贴
(setq x-select-enable-clipboard t)

;;选择一个颜色主题
(require 'color-theme)
(color-theme-dark-blue)

;;设置括号配对功能
(show-paren-mode t)
(setq show-paren-style 'parentheses)

;;查找\打开文件时,列出文件列表
(require 'ido)
(ido-mode t)

;;设置文件的标题栏
(require 'tabbar)
(tabbar-mode)

;;语法加亮
(global-font-lock-mode t)

;;高亮显示区域选择
(transient-mark-mode t)

;;shift键加方向键选取
(pc-selection-mode)

;;标题栏切换的快捷键
(global-set-key [M-up] 'tabbar-backward-group)
(global-set-key [M-down] 'tabbar-forward-group)
(global-set-key [M-left] 'tabbar-backward)
(global-set-key [M-right] 'tabbar-forward)

(setq gdb-many-windows t)
;;...
(load-library "multi-gud.el")
(load-library "multi-gdb-ui.el")

;;设置快捷键
(global-set-key [f1] 'kill-buffer)

(global-set-key [f3] 'goto-line)
(global-set-key [f4] 'set-mark-command)
(global-set-key [f5] 'compile)
(global-set-key [f6] 'gdb)
(global-set-key [f7] 'bookmark-set)
(global-set-key [f8] 'bookmark-jump)
(global-set-key [f9] 'cvs-update)

;;定义F12键为激活ecb
(global-set-key [f12] 'ecb-activate) 

(global-set-key [(control tab)] 'switch-to-buffer)

(global-set-key (kbd "M-]") 'comment-dwim)
(global-set-key [delete] 'delete-region)
(global-set-key "%" 'match-paren)

(defun match-paren (arg)
  "Go to the matching paren if on a paren; otherwise insert %."
  (interactive "p")
  (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))
    ((looking-at "\\s\)") (forward-char 1) (backward-list 1))
    (t (self-insert-command (or arg 1)))))
(global-set-key "%" 'match-paren)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;C/C++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun linux-cpp-mode ()
"my cpp mode define"
(interactive)
(c-set-style "K&R")
(setq c-basic-offset 4)
(c-toggle-hungry-state)
;(c-toggle-auto-state)
(define-key c++-mode-map [return] 'newline-and-indent) 
)

(add-hook 'c-mode-hook 'linux-c-mode)
(add-hook 'c++-mode-hook 'linux-cpp-mode)
;; 设置imenu的排序方式为按名称排序
(setq imenu-sort-function 'imenu--sort-by-name)

(defun linux-c-mode()
;;将回车代替C-j的功能,换行的同时对齐
(define-key c-mode-map [return] 'newline-and-indent)
;;(interactive)
;;设置C程序的对齐风格
(c-set-style "Stroustrup")
;;自动模式,在此种模式下当你键入{时,会自动根据你设置的对齐风格对齐
;;(c-toggle-auto-state)
;;此模式下,当按Backspace时会删除最多的空格,使得if缩进正常
(c-toggle-hungry-state)
;;TAB键的宽度设置为4
(setq c-basic-offset 4)
;; 在菜单中加入当前Buffer的函数索引
(imenu-add-menubar-index)
;; 在状态条上显示当前光标在哪个函数体内部
(which-function-mode)
 )

(defun geosoft-backward-word ()
   ;; Move one word backward. Leave the pointer at start of word
   ;; Treat _ as part of word
   (interactive)
   (backward-word 1)
   (backward-char 1)
   (cond ((looking-at "_") (geosoft-backward-word))
         (t (forward-char 1)))) 

(setq default-directory "~")

(setq-default indent-tabs-mode nil)
(setq nxml-child-indent 4)

(global-auto-revert-mode t);
(tool-bar-mode nil);
;;(setq c-default-style
;;'((c-mode . "Stroustrup")))
(setq-default tab-width 4)
(setq c-basic-offset 4)
(setq default-fill-column 80)
(setq column-number-mode t)
(setq make-backup-files nil)

(put 'upcase-region 'disabled nil)