我的emacs配置文件

来源:互联网 发布:宜人贷靠谱么 知乎 编辑:程序博客网 时间:2024/04/29 18:19

title: 我的emacs配置文件
categories:
- Technology
tags: emacs

date: 2014-10-30 14:58:27

我的emacs配置文件

;; .emacs;; ============================== Basic Configure START =====================================;; set TAB=4 for C;;(setq c-basic-offset 4);;;; show colume number;;(setq column-number-mode t);; kill the buffer imediate(global-set-key (kbd "C-x k") 'kill-this-buffer);; hide tool bar(tool-bar-mode -1);; hide menu bar(menu-bar-mode -1);;hide scroll bar(scroll-bar-mode -1);;Move line by text line(setq line-move-visual nil);;(setq use-dialog-box nil);;不要在鼠标点击的那个地方插入剪贴板内容。我不喜欢那样,经常把我的文档搞的一团糟。我觉得先用光标定位,然后鼠标(setq mouse-yank-at-point t);;让 Emacs 可以直接打开和显示图片。(setq auto-image-file-mode t);;当你在shell、telnet、w3m等模式下时,必然碰到过要输入密码的情况,此时加密显出你的密码(add-hook 'comint-output-filter-functions      'comint-watch-for-password-prompt);;允许emacs和外部其他程序的粘贴(setq x-select-enable-clipboard t);;使用鼠标中键可以粘贴(setq mouse-yank-at-point t);;设置有用的个人信息,这在很多地方有用。(setq user-full-name "lkong")(setq user-mail-address "lkong@redhat.com");; 自动的在文件末增加一新行(setq require-final-newline t);;设置F9快捷键指定Emacs 的日历系统(global-set-key [f9] 'calendar);;设置F10 快速察看日程安排(global-set-key [f10] 'list-bookmarks);;让 dired 可以递归的拷贝和删除目录。(setq dired-recursive-copies 'top)(setq dired-recursive-deletes 'top);;设置[C-f9]为调用dired命令;;(global-set-key [C-f9] 'dired);;取消control+space键设为mark(global-set-key (kbd "C-SPC") 'nil);;这样 我就不用按 C-@ 来 setmark 了, C-@ 很不好按。;;(global-set-key (kbd "M-<SPC>") 'set-mark-command)(global-set-key [?\S- ] 'set-mark-command);; 设置备份目录。(setq backup-directory-alist '(("." . "~/emacs_backup")));; 不备份文件,不推荐;;(setq make-backup-files nil);; 设置光标为竖线(setq-default cursor-type 'box);; 设置光标为方块;; (setq-default cursor-type 'box);; 关闭起动时的那个“开机画面”(setq inhibit-startup-message t);; 加亮选中部分(transient-mark-mode t);; 滚轮支持(setq mouse-wheel-mode t);; 显示列号(setq column-number-mode t);; 显示行号(global-linum-mode 1);; 用一个很大的 kill ring(setq kill-ring-max 200);; 把 fill-column 设为 60. 这样的文字更好读(setq default-fill-column 60);; 括号匹配时显示另外一边的括号,而不是烦人的跳到另一个括号;;(show-paren-mode t);;(setq show-paren-style 'parentheses);; 在标题栏显示buffer的名字,而不是 emacs@wangyin.com 这样没用的提示(setq frame-title-format "emacs@%b");; 把这些缺省禁用的功能打开(put 'set-goal-column 'disabled nil)(put 'narrow-to-region 'disabled nil)(put 'upcase-region 'disabled nil)(put 'downcase-region 'disabled nil)(put 'LaTeX-hide-environment 'disabled nil);; 让 dired 可以递归的拷贝和删除目录(setq dired-recursive-copies 'top)(setq dired-recursive-deletes 'top);; auto enter new line(add-hook 'org-mode-hook (lambda () (setq truncate-lines nil)));; set key f11 to switch to full(global-set-key [f11] 'my-fullscreen) ;; full screen(fset 'yes-or-no-p'y-or-n-p);; statment highlight(global-font-lock-mode t);; use a large kill ring(setq kill-ring-max 1024);; Show the corse in which function(which-function-mode t);; set default tab width(setq default-tab-width 4);; use space to instead TAB(setq-default indent-tabs-mode nil);; enable global line number;;(global-linum-mode 1);;设置M-g为goto-line(global-set-key (kbd "M-g") 'goto-line);; No backup;;(setq backup-inhibited t);; set color theme(add-to-list 'load-path "~/.emacs.d/elpa/color-theme-20080305.34/")(require 'color-theme)(color-theme-initialize);;(color-theme-dark-laptop);;(color-theme-kingsajz);;(load-file "~/.emacs.d/plugins/color-theme-wombat+.el");;(color-theme-wombat+);;(load-file "~/.emacs.d/plugins/color-theme-active.el");;(color-theme-active)(load-file "~/.emacs.d/plugins/color-theme-colorful-obsolescence.el")(color-theme-colorful-obsolescence)(defun my-fullscreen ()(interactive)(x-send-client-message  nil 0 nil "_NET_WM_STATE" 32  '(2 "_NET_WM_STATE_FULLSCREEN" 0)));; let emacs to max frame(add-to-list 'load-path "~/.emacs.d/elpa/maxframe-20120725.639/")(require 'maxframe)(add-hook 'window-setup-hook 'maximize-frame t);;#yum install wqy-microhei-fonts.noarch first;;(set-default-font "WenQuanYi Micro Hei Mono-19.5")(set-default-font "WenQuanYi Zen Hei Mono-22");;(set-fontset-font (frame-parameter nil 'font) 'han      "WenQuanYi Zen Hei Mono-24");;(set-fontset-font (frame-parameter nil 'font) 'gb18030  "WenQuanYi Zen Hei Mono-24");;(set-fontset-font (frame-parameter nil 'font) 'bopomofo "WenQuanYi Zen Hei Mono-24");;(set-fontset-font (frame-parameter nil 'font) 'cjk-misc "WenQuanYi Zen Hei Mono-24");;(set-fontset-font (frame-parameter nil 'font) 'nil      "WenQuanYi Zen Hei Mono-24");;(set-fontset-font (frame-parameter nil 'font) 'symbol   "WenQuanYi Zen Hei Mono-24");;(set-fontset-font (frame-parameter nil 'font) 'kana     "WenQuanYi Micro Hei Mono-24");; transparent set(global-set-key [(f8)] 'loop-alpha)  ;;注意这行中的F8 , 可以改成你想要的按键(setq alpha-list '((85 55) (100 100)))(defun loop-alpha ()  (interactive)  (let ((h (car alpha-list)))    ((lambda (a ab)       (set-frame-parameter (selected-frame) 'alpha (list a ab))       (add-to-list 'default-frame-alist (cons 'alpha (list a ab)))       ) (car h) (car (cdr h)))    (setq alpha-list (cdr (append alpha-list (list h))))    ))(loop-alpha);; ============================== Basic Configure END ======================================;; ============================== Color Setting START ======================================;; ============================== Color Setting END ========================================;; ============================== Python IDE Configure START ===============================;; yasnippet(add-to-list 'load-path "~/.emacs.d/elpa/yasnippet-0.8.0/")(require 'yasnippet)(yas-global-mode 1);; auto-completion.el(add-to-list 'load-path "~/.emacs.d/elpa/popup-20140815.629/")(require 'popup)(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-20140824.1658/")(require 'auto-complete-config)(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20140824.1658/dict/")(ac-config-default);; python-mode(add-to-list 'load-path "~/.emacs.d/elpa/python-mode-6.1.3")(require 'python-mode);; ipython(add-to-list 'load-path "~/.emacs.d/elpa/ipython-2927/")(require 'ipython);; python document -- start(setq pylookup-dir "~/.emacs.d/plugins/pylookup")(add-to-list 'load-path pylookup-dir)(require 'pylookup);; load pylookup when compile time(setq pylookup-program (concat pylookup-dir "/pylookup.py"))(setq pylookup-db-file (concat pylookup-dir "/pylookup.db"));; set search option if you want(setq pylookup-search-options '("--insensitive" "0" "--desc" "0"));; to speedup, just load it on demand(autoload 'pylookup-lookup "pylookup"            "Lookup SEARCH-TERM in the Python HTML indexes." t)(autoload 'pylookup-update "pylookup"            "Run pylookup-update and create the database at `pylookup-db-file'." t)(global-set-key "\C-ch" 'pylookup-lookup)(setq browse-url-browser-function  'w3m-browse-url);; python document -- end;; anything(add-to-list 'load-path "~/.emacs.d/elpa/anything-config-0.4.1/");;(require 'anything-config);;(add-to-list 'load-path "~/.emacs.d/elpa/anything-ipython-0.1.2009/");;(require 'anything-ipython);;(when (require 'anything-show-completion nil t);;     (use-anything-show-completion 'anything-ipython-complete;;     '(length initial-pattern)));; other compeletion methon(add-to-list 'load-path "~/.emacs.d/elpa/pylint-20140729.1117/")(require 'pylint)(add-to-list 'load-path "~/.emacs.d/elpa/pep8-1.2/")(require 'pep8)(require 'tramp);; 保存时自动清除行尾空格及文件结尾空行(add-hook 'before-save-hook 'delete-trailing-whitespace);; cscope -- start(add-to-list 'load-path "~/.emacs.d/elpa/xcscope-20140510.1437")(require 'xcscope)(cscope-setup);; C-c s a             设定初始化的目录,一般是你代码的根目录;; C-s s I             对目录中的相关文件建立列表并进行索引;; C-c s s             序找符号;; C-c s g             寻找全局的定义;; C-c s c             看看指定函数被哪些函数所调用;; C-c s C             看看指定函数调用了哪些函数;; C-c s e             寻找正则表达式;; C-c s f             寻找文件;; C-c s i             看看指定的文件被哪些文件include;; cscope -- end;; ============================== Python IDE Configure END ===============================;; ============================== C/C++ IDE Configure END ===============================;; 设置另外一些颜色:语法高亮显示的背景和主题,区域选择的背景和主题,二次选择的背景和选择(set-face-foreground 'highlight "white")(set-face-background 'highlight "blue")(set-face-foreground 'region "cyan")(set-face-background 'region "blue")(set-face-foreground 'secondary-selection "skyblue")(set-face-background 'secondary-selection "darkblue");; ============================== C/C++ IDE Configure END ===============================;; ============================ Other Configure for emacs START ===============================;;http://elpa.gnu.org/ Default. Official GNU Emacs package repository. This repository contains the minimal set, and are FSF signed.;;http://tromey.com/elpa/ ELPA (being phased out as of 2012-07-03).;;http://marmalade-repo.org/ Marmalade. More extensive number of packages.;;http://melpa.milkbox.net/ MELPA. As of 2012-10-18, MELPA has most packages, and updated daily.;;(when (>= emacs-major-version 24);;    (require 'package);;    (package-initialize)    ;;(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)    ;;(add-to-list 'package-archives '("melpa" . "http://tromey.com/elpa/packages/") t)    ;;(add-to-list 'package-archives '("melpa" . "http://elpa.gnu.org/packages/") t)    ;;(add-to-list 'package-archives '("melpa" . "http://marmalade-repo.org/packages/") t);;    (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"));;    );; All packages repo(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")                        ("marmalade" . "http://marmalade-repo.org/packages/")                        ("melpa" . "http://melpa.milkbox.net/packages/")));; ============================== ECB Configure START  ===============================(add-to-list 'load-path "~/.emacs.d/elpa/ecb-20140215.114/")(setq ecb-tip-of-the-day nil)(require 'ecb)(require 'ecb-autoloads)(setq ecb-auto-activate t)(global-set-key [M-left] 'windmove-left)(global-set-key [M-right] 'windmove-right)(global-set-key [M-up] 'windmove-up)(global-set-key [M-down] 'windmove-down)(define-key global-map [(control f1)] 'ecb-hide-ecb-windows)(define-key global-map [(control f2)] 'ecb-show-ecb-windows);;(define-key global-map [(control f3)] 'ecb-change-layout "left2");;(define-key global-map [(control f3)] 'ecb-change-layout);;(define-key global-map "\C-c3" 'ecb-change-layout)(define-key global-map "\C-c1" 'ecb-maximize-window-directories)(define-key global-map "\C-c2" 'ecb-maximize-window-sources)(define-key global-map "\C-c3" 'ecb-maximize-window-methods)(define-key global-map "\C-c4" 'ecb-maximize-window-history)(define-key global-map "\C-c`" 'ecb-restore-default-window-sizes)(global-set-key [f12] 'ecb-activate) ;; ecb activate;;(define-key global-map "\C-c1" 'ecb-maximize-window-methods);;(define-key global-map "\C-c2" 'ecb-maximize-window-history);;(define-key global-map "\C-c`" 'ecb-restore-window-sizes);; Disable buckets so that history buffer can display more entries(setq ecb-history-make-buckets 'never)(custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(ecb-create-layout-frame-height 10) '(ecb-create-layout-frame-width 50) '(ecb-layout-name "lkong") '(ecb-layout-window-sizes nil) '(ecb-options-version "2.40") '(ecb-primary-secondary-mouse-buttons (quote mouse-1--mouse-2)) '(ecb-toggle-layout-sequence (quote ("lkong2" "lkong"))) '(ecb-windows-width 0.225));;不显示ecbTip;;(set-foreground-color "grey")(set-foreground-color "grey")(set-background-color "black");;(setq ecb-layout-name "left10")(setq ecb-history-make-buckets 'never)(setq ecb-fix-window-size t)(ecb-activate);; Ecb的操作:;; C-c . g d 目录列表窗口;; C-c . g s 源码窗口;; C-c . g m 方法和变量窗口;; C-c . g h 历史窗口;; C-c . g l 最后选择过的编辑窗口;; C-c . g 1 编辑窗口1;; C-c . g n 编辑窗口n;; C-c . l c 选择版面;; C-c . l r 重画版面;; C-c . l t switch layout;; C-c . l w 拴牢可见的ecb窗口;; C-c . /   拴牢编绎窗口;; C-c . e: jump to the eshell buffer;; C-c . n: histroy back;; C-c . p: histroy forwad;; C-c .h: Show ECB help pager;; left2: directory + source;; left6: source + method + history;; left8: directory + source + method + history;; ============================== ECB Configure END  ===============================(custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. );; ============================ Org-mode Configure START =================================(require 'org-install)(require 'org-publish)(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))(add-hook 'org-mode-hook 'turn-on-font-lock)(add-hook 'org-mode-hook          (lambda () (setq truncate-lines nil)))(global-set-key "\C-cl" 'org-store-link)(global-set-key "\C-ca" 'org-agenda)(global-set-key "\C-cb" 'org-iswitchb)(global-set-key "\C-cc" 'org-remember)(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode));; GTD -- start(setq org-todo-keywords(quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)")        (sequence "SOMEDAY(s@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)"))))(setq org-todo-keyword-faces      (quote (("TODO" :foreground "red" :weight bold)              ("NEXT" :foreground "blue" :weight bold)              ("DONE" :foreground "forest green" :weight bold)              ("SOMEDAY" :foreground "orange" :weight bold)              ("HOLD" :foreground "magenta" :weight bold)              ("CANCELLED" :foreground "forest green" :weight bold))))(setq org-todo-state-tags-triggers      (quote (("CANCELLED" ("CANCELLED" . t))              ("SOMEDAY" ("SOMEDAY" . t))              ("HOLD" ("SOMEDAY" . t) ("HOLD" . t))              (done ("SOMEDAY") ("HOLD"))              ("TODO" ("SOMEDAY") ("CANCELLED") ("HOLD"))              ("NEXT" ("SOMEDAY") ("CANCELLED") ("HOLD"))              ("DONE" ("SOMEDAY") ("CANCELLED") ("HOLD")))))(setq org-directory "~/Org-mode")(global-set-key (kbd "C-c c") 'org-capture)(setq org-capture-templates      (quote (("t" "todo" entry (file "~/Org-mode/todo.org")               ;;"* TODO %?\n%a\n" :clock-in t :clock-resume t)               "* TODO %?")              ("i" "idea" entry (file+datetree "~/Org-mode/idea.org")               "* %? \n")              ("s" "someday" entry (file "~/Org-mode/someday.org")               "* SOMEDAY %? :SOMEDAY:\n%a\n" :clock-in t :clock-resume t)              ("n" "note" entry (file "~/Org-mode/diary.org")               "* %? :NOTE:\n%a\n" :clock-in t :clock-resume t)              ("w" "org-protocol" entry (file "~/Org-mode/refile.org")               "* TODO Review %c\n%U\n" :immediate-finish t))));;(setq org-tag-alist '(("office" . ?o) ("home" . ?h) ("notes" . ?n) ("slide" . ?s)));; GTD -- end;; Only show the last star;;(setq org-hide-leading-stars t);;org mode 自动折行(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))(add-hook 'org-mode-hook 'turn-on-font-lock)(add-hook 'org-mode-hook          (lambda () (setq truncate-lines nil)));; Remove empty LOGBOOK drawers on clock out(defun bh/remove-empty-drawer-on-clock-out ()  (interactive)  (save-excursion    (beginning-of-line 0)    (org-remove-empty-drawer-at "LOGBOOK" (point))))(add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append)(defun gtd ()  (interactive)  (find-file "~/Org-mode/todo.org")         )(global-set-key (kbd "<f12>") 'list-bookmarks)(defun insert-current-time ()  "Insert the current time"  (interactive "*")  ;;(insert (format-time-string "%Y/%m/%d %H:%M:%S" (current-time))))  (insert (format-time-string "%Y-%m-%d" (current-time))));;(insert (format-time-string "%H:%M:%S" (current-time))))(global-set-key "\C-xt" 'insert-current-time);; ============================ Org-mode Configure  END =================================;; ============================ GTD Configure START ================================;; ============================ GTD Configure END ==================================;; ============================ Bugzilla Configure END ==================================;; ============================ Org-jekyll Configure START ================================(add-to-list 'load-path "~/.emacs.d/elpa/org-jekyll-20130508.239/")(require 'org-jekyll)(setq org-publish-project-alist      '(  ("org-ianbarton"          ;; Path to your org files.          :base-directory "~/WorkSpace/dev-github/org/"          :base-extension "org"          ;; Path to your Jekyll project.          :publishing-directory "~/WorkSpace/dev-github/jekyll/"          :recursive t          :publishing-function org-publish-org-to-html          :headline-levels 4          :html-extension "html"          :body-only t ;; Only export section between <body> </body>    )    ("org-static-ian"          :base-directory "~/WorkSpace/dev-github/org/"          :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|php"          :publishing-directory "~/WorkSpace/dev-github/"          :recursive t          :publishing-function org-publish-attachment)    ("ian" :components ("org-ianbarton" "org-static-ian"))));; ============================ Org-jekyll Configure END ==================================
0 0
原创粉丝点击