Emacs 配置文件

emacs 的配置文件在 .emacs.d 文件夹下的,init.el,是用lisp语言写的。下图其他为插件安装位置。

包含了主题,自动补全符号,字体,隐藏toolbar, 行号等等。根据需要配置,另外保存一份,以后可以复制该文件再安装缺少的插件即可。

(require ‘package)
(add-to-list ‘package-archives
‘(“melpa” . “http://melpa.milkbox.net/packages/“) t)

(set-frame-parameter nil ‘background-mode ‘dark)
(load-theme ‘solarized t)

(set-default-font “Monaco-13”)

(tool-bar-mode -1)
;;frame size
(add-to-list ‘default-frame-alist ‘(height . 38))
(add-to-list ‘default-frame-alist ‘(width . 65))

(global-hl-line-mode 1 )

(require ‘linum)
(global-linum-mode t)

;;set default fonts
;;(add-to-list ‘default-frame-alist ‘(font . “monaco-13”))

(setq gc-cons-threshold 100000000)
(setq inhibit-startup-message t)

(defalias ‘yes-or-no-p ‘y-or-n-p)

;; this variables must be set before load helm-gtags
;; you can change to any prefix key of your choice
(setq helm-gtags-prefix-key “\C-cg”)

(add-to-list ‘load-path “~/.emacs.d/custom”)

(require ‘setup-helm)
(require ‘setup-helm-gtags)
;; (require ‘setup-ggtags)
(require ‘setup-cedet)
(require ‘setup-editing)


;; function-args
;; (require ‘function-args)
;; (fa-config-default)
;; (define-key c-mode-map [(tab)] ‘company-complete)
;; (define-key c++-mode-map [(tab)] ‘company-complete)

;; company
(require ‘company)
(add-hook ‘after-init-hook ‘global-company-mode)
(delete ‘company-semantic company-backends)
(define-key c-mode-map [(tab)] ‘company-complete)
(define-key c++-mode-map [(tab)] ‘company-complete)
;; (define-key c-mode-map [(control tab)] ‘company-complete)
;; (define-key c++-mode-map [(control tab)] ‘company-complete)

;; company-c-headers
(add-to-list ‘company-backends ‘company-c-headers)

;; hs-minor-mode for folding source code
(add-hook ‘c-mode-common-hook ‘hs-minor-mode)

;; Available C style:
;; “gnu”: The default style for GNU projects
;; “k&r”: What Kernighan and Ritchie, the authors of C used in their book
;; “bsd”: What BSD developers use, aka “Allman style” after Eric Allman.
;; “whitesmith”: Popularized by the examples that came with Whitesmiths C, an early commercial C compiler.
;; “stroustrup”: What Stroustrup, the author of C++ used in his book
;; “ellemtel”: Popular C++ coding standards as defined by “Programming in C++, Rules and Recommendations,” Erik Nyquist and Mats Henricson, Ellemtel
;; “linux”: What the Linux developers use for kernel development
;; “python”: What Python developers use for extension modules
;; “java”: The default style for java-mode (see below)
;; “user”: When you want to define your own style
c-default-style “ellemtel” ;; set style to “linux”

(global-set-key (kbd “RET”) ‘newline-and-indent) ; automatically indent when press RET

;; activate whitespace-mode to view all whitespace characters
(global-set-key (kbd “C-c w”) ‘whitespace-mode)

;; show unncessary whitespace that can mess up your diff
;;(add-hook ‘prog-mode-hook (lambda () (interactive) (setq sho;;w-trailing-whitespace 1)))

;; use space to indent by default
(setq-default indent-tabs-mode nil)

;; set appearance of a tab that is represented by 4 spaces
;;(setq-default tab-width 4)

;; Compilation
(global-set-key (kbd “”) (lambda ()
(setq-local compilation-read-command nil)
(call-interactively ‘compile)))

;; setup GDB
;; use gdb-many-windows by default
gdb-many-windows t

;; Non-nil means display source file containing the main routine at startup
gdb-show-main t

;; Package: clean-aindent-mode
(require ‘clean-aindent-mode)
(add-hook ‘prog-mode-hook ‘clean-aindent-mode)

;; Package: dtrt-indent
(require ‘dtrt-indent)
(dtrt-indent-mode 1)

;; Package: ws-butler
(require ‘ws-butler)
(add-hook ‘prog-mode-hook ‘ws-butler-mode)

;; Package: yasnippet
(require ‘yasnippet)
(yas-global-mode 1)

;; Package: smartparens
(require ‘smartparens-config)
(setq sp-base-key-bindings ‘paredit)
(setq sp-autoskip-closing-pair ‘always)
(setq sp-hybrid-kill-entire-symbol nil)

(show-smartparens-global-mode +1)
(smartparens-global-mode 1)
;;//when you press RET, the curly braces automatically add another newline
(sp-with-modes ‘(c-mode c++-mode)
(sp-local-pair “{” nil :post-handlers ‘((“||\n[i]” “RET”)))
(sp-local-pair “/” “/” :post-handlers ‘((” | ” “SPC”)
(“* ||\n[i]” “RET”))))

;; Package: projejctile
(require ‘projectile)
(setq projectile-enable-caching t)

(require ‘helm-projectile)
(setq projectile-completion-system ‘helm)
(setq projectile-indexing-method ‘alien)

(require ‘web-mode)
(add-to-list ‘auto-mode-alist ‘(“\.phtml\’” . web-mode))
(add-to-list ‘auto-mode-alist ‘(“\.tpl\.php’” . web-mode))
(add-to-list ‘auto-mode-alist ‘(“\.[agj]sp\’” . web-mode))
(add-to-list ‘auto-mode-alist ‘(“\.as[cp]x\’” . web-mode))
(add-to-list ‘auto-mode-alist ‘(“\.erb\’” . web-mode))
(add-to-list ‘auto-mode-alist ‘(“\.mustache\’” . web-mode))
(add-to-list ‘auto-mode-alist ‘(“\.djhtml\’” . web-mode))
(add-to-list ‘auto-mode-alist ‘(“\.html?\’” . web-mode))