免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 920 | 回复: 0
打印 上一主题 下一主题

emacs设置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-15 10:37 |只看该作者 |倒序浏览
;; This file is designed to be re-evaled; use the variable first-time
;; to avoid any problems with this.
(defvar first-time t
  "flag signifying this is the first time that .emacs has been evaled")
(global-font-lock-mode t)
;; Meta
(global-set-key "\M- " 'set-mark-command)
(global-set-key "\M-\C-h" 'backward-kill-word)
(global-set-key "\M-\C-r" 'query-replace)
(global-set-key "\M-r" 'replace-string)
(global-set-key "\M-g" 'goto-line)
(global-set-key "\M-h" 'help-command)
(global-set-key "\M-/" 'hippie-expand)
;; Function keys
(global-set-key [f1] 'manual-entry)
(global-set-key [f2] 'info)
(global-set-key [f3] 'repeat-complex-command)
(global-set-key [f4] 'advertised-undo)
(global-set-key [f5] 'eval-current-buffer)
(global-set-key [f6] 'buffer-menu)
(global-set-key [f7] 'other-window)
(global-set-key [f8] 'find-file)
(global-set-key [f9] 'save-buffer)
(global-set-key [f10] 'next-error)
(global-set-key [f11] 'compile)
(global-set-key [f12] 'grep)
(global-set-key [C-f1] 'compile)
(global-set-key [C-f2] 'grep)
(global-set-key [C-f3] 'next-error)
(global-set-key [C-f4] 'previous-error)
(global-set-key [C-f5] 'display-faces)
(global-set-key [C-f8] 'dired)
(global-set-key [C-f10] 'kill-compilation)
;; Keypad bindings
(global-set-key [up] "\C-p")
(global-set-key [down] "\C-n")
(global-set-key [left] "\C-b")
(global-set-key [right] "\C-f")
(global-set-key [home] "\C-a")
(global-set-key [end] "\C-e")
(global-set-key [prior] "\M-v")
(global-set-key [next] "\C-v")
(global-set-key [C-up] "\M-\C-b")
(global-set-key [C-down] "\M-\C-f")
(global-set-key [C-left] "\M-b")
(global-set-key [C-right] "\M-f")
(global-set-key [C-home] "\M-")
(global-set-key [C-prior] "\M-")
;; Mouse
(global-set-key [mouse-3] 'imenu)
;; Misc
(global-set-key [C-tab] "\C-q\t")   ; Control tab quotes a tab.
(setq backup-by-copying-when-mismatch t)
;; Treat 'y' or  as yes, 'n' as no.
(fset 'yes-or-no-p 'y-or-n-p)
(define-key query-replace-map [return] 'act)
(define-key query-replace-map [?\C-m] 'act)
;; Load packages
(require 'desktop)
(require 'tar-mode)
;; Pretty diff mode
(autoload 'ediff-buffers "ediff" "Intelligent Emacs interface to diff" t)
(autoload 'ediff-files "ediff" "Intelligent Emacs interface to diff" t)
(autoload 'ediff-files-remote "ediff"
  "Intelligent Emacs interface to diff")
(if first-time
    (setq auto-mode-alist
       (append '(("
\\.cpp$
" . c++-mode)
                ("
\\.hpp$
" . c++-mode)
                   ("
\\.lsp$
" . lisp-mode)
                      ("
\\.scm$
" . scheme-mode)
                         ("
\\.pl$
" . perl-mode)
                            ) auto-mode-alist)))
;; Auto font lock mode
(defvar font-lock-auto-mode-list
  (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode)
    "List of modes to always start in font-lock-mode")
(defvar font-lock-mode-keyword-alist
  '((c++-c-mode . c-font-lock-keywords)
      (perl-mode . perl-font-lock-keywords))
    "Associations between modes and keywords")
(defun font-lock-auto-mode-select ()
  "Automatically select font-lock-mode if the current major mode is in font-lock-auto-mode-list"
    (if (memq major-mode font-lock-auto-mode-list)
       (progn
        (font-lock-mode t))
        )
   )
(global-set-key [M-f1] 'font-lock-fontify-buffer)
;; New dabbrev stuff
;(require 'new-dabbrev)
(setq dabbrev-always-check-other-buffers t)
(setq dabbrev-abbrev-char-regexp "
\\sw\\|\\s
_")
(add-hook 'emacs-lisp-mode-hook
      '(lambda ()
            (set (make-local-variable 'dabbrev-case-fold-search) nil)
               (set (make-local-variable 'dabbrev-case-replace) nil)))
(add-hook 'c-mode-hook
      '(lambda ()
            (set (make-local-variable 'dabbrev-case-fold-search) nil)
               (set (make-local-variable 'dabbrev-case-replace) nil)))
(add-hook 'text-mode-hook
      '(lambda ()
            (set (make-local-variable 'dabbrev-case-fold-search) t)
               (set (make-local-variable 'dabbrev-case-replace) t)))
;; C++ and C mode...
(defun my-c++-mode-hook ()
  (setq tab-width 4)
    (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
   (define-key c++-mode-map "\C-ce" 'c-comment-edit)
     (setq c++-auto-hungry-initial-state 'none)
    (setq c++-delete-function 'backward-delete-char)
      (setq c++-tab-always-indent t)
     (setq c-indent-level 4)
       (setq c-continued-statement-offset 4)
      (setq c++-empty-arglist-indent 4))
(defun my-c-mode-hook ()
  (setq tab-width 4)
    (define-key c-mode-map "\C-m" 'reindent-then-newline-and-indent)
   (define-key c-mode-map "\C-ce" 'c-comment-edit)
     (setq c-auto-hungry-initial-state 'none)
    (setq c-delete-function 'backward-delete-char)
      (setq c-tab-always-indent t)
   ;; BSD-ish indentation style
     (setq c-indent-level 4)
       (setq c-continued-statement-offset 4)
      (setq c-brace-offset -4)
        (setq c-argdecl-indent 0)
       (setq c-label-offset -4))
;; Perl mode
(defun my-perl-mode-hook ()
  (setq tab-width 4)
    (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
   (setq perl-indent-level 4)
     (setq perl-continued-statement-offset 4))
;; Scheme mode...
(defun my-scheme-mode-hook ()
  (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent))
;; Emacs-Lisp mode...
(defun my-lisp-mode-hook ()
  (define-key lisp-mode-map "\C-m" 'reindent-then-newline-and-indent)
    (define-key lisp-mode-map "\C-i" 'lisp-indent-line)
   (define-key lisp-mode-map "\C-j" 'eval-print-last-sexp))
;; Add all of the hooks...
(add-hook 'c++-mode-hook 'my-c++-mode-hook)
(add-hook 'c-mode-hook 'my-c-mode-hook)
(add-hook 'scheme-mode-hook 'my-scheme-mode-hook)
(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook)
(add-hook 'lisp-mode-hook 'my-lisp-mode-hook)
(add-hook 'perl-mode-hook 'my-perl-mode-hook)
;; Complement to next-error
(defun previous-error (n)
  "Visit previous compilation error message and corresponding source code."
    (interactive "p")
   (next-error (- n)))
;; Misc...
(transient-mark-mode 1)
(setq mark-even-if-inactive t)
(setq visible-bell nil)
(setq next-line-add-newlines nil)
(setq compile-command "make")
(setq suggest-key-bindings nil)
(put 'eval-expression 'disabled nil)
(put 'narrow-to-region 'disabled nil)
(put 'set-goal-column 'disabled nil)
(if (>= emacs-major-version 21)
    (setq show-trailing-whitespace t))
;; Elisp archive searching
(autoload 'format-lisp-code-directory "lispdir" nil t)
(autoload 'lisp-dir-apropos "lispdir" nil t)
(autoload 'lisp-dir-retrieve "lispdir" nil t)
(autoload 'lisp-dir-verify "lispdir" nil t)
;; Font lock mode
(defun my-make-face (face color &optional bold)
  "Create a face from a color and optionally make it bold"
    (make-face face)
   (copy-face 'default face)
     (set-face-foreground face color)
    (if bold (make-face-bold face))
      )
(if (eq window-system 'x)
    (progn
       (my-make-face 'blue "blue")
          (my-make-face 'red "red")
          (my-make-face 'green "dark green")
             (setq font-lock-comment-face 'blue)
             (setq font-lock-string-face 'bold)
                (setq font-lock-type-face 'bold)
                (setq font-lock-keyword-face 'bold)
                   (setq font-lock-function-name-face 'red)
                   (setq font-lock-doc-string-face 'green)
                      (add-hook 'find-file-hooks 'font-lock-auto-mode-select)
                      (setq baud-rate 1000000)
                         (global-set-key "\C-cmm" 'menu-bar-mode)
                         (global-set-key "\C-cms" 'scroll-bar-mode)
                            (global-set-key [backspace] 'backward-delete-char)
                                          ;      (global-set-key [delete] 'delete-char)
                                 (standard-display-european t)
                                    (load-library "iso-transl")))
;; X11 or PC using direct screen writes
(if window-system
    (progn
       ;;      (global-set-key [M-f1] 'hilit-repaint-command)
          ;;      (global-set-key [M-f2] [?\C-u M-f1])
          (setq hilit-mode-enable-list
               '(not text-mode c-mode c++-mode emacs-lisp-mode lisp-mode
                   scheme-mode)
                 hilit-auto-highlight nil
                   hilit-auto-rehighlight 'visible
                     hilit-inhibit-hooks nil
                       hilit-inhibit-rebinding t)
             (require 'hilit19)
             (require 'paren))
   (setq baud-rate 2400)         ; For slow serial connections
     )
;; TTY type terminal
(if (and (not window-system)
     (not (equal system-type 'ms-dos)))
    (progn
       (if first-time
          (progn
            (keyboard-translate ?\C-h ?\C-?)
              (keyboard-translate ?\C-? ?\C-h)))))
;; Under UNIX
(if (not (equal system-type 'ms-dos))
    (progn
       (if first-time
          (server-start))))
;; Add any face changes here
(add-hook 'term-setup-hook 'my-term-setup-hook)
(defun my-term-setup-hook ()
  (if (eq window-system 'pc)
        (progn
  ;;  (set-face-background 'default "red")
      )))
;; Restore the "desktop" - do this as late as possible
(if first-time
    (progn
       (desktop-load-default)
          (desktop-read)))
;; Indicate that this file has been read at least once
(setq first-time nil)
;; No need to debug anything now
(setq debug-on-error nil)
;; All done
(message "All done, %s%s" (user-login-name) ".")
(put 'upcase-region 'disabled nil)
;;(add-to-list 'load-path(expand-file-name "~/.emacs.d/"))
;;(require 'color-theme)
;;(color-theme-initialize)
;;(color-theme-taming-mr-arneson)
(require 'xcscope)


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/35530/showart_688851.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP