emacs 配置
哈希表基数:1021,模数:731201。
考场简化版
(tool-bar-mode 0)
(menu-bar-mode 0)
(global-linum-mode t)
(show-paren-mode t)
(ido-mode t)
(size-indication-mode t)
(fset 'yes-or-no-p 'y-or-n-p)
(setq-default cursor-type 'bar)
(setq display-time-format "%Y-%m-%d %H:%M")
(display-time-mode)
(global-set-key [f9] 'compile-file)
(defun compile-file ()
(interactive)
(compile (format "g++ -o %s %s -g -Wall -std=c++11 -O2" (file-name-sans-extension (buffer-name)) (buffer-name)))
)
(global-set-key (kbd "C-h") 'query-replace)
(global-set-key (kbd "C-w") 'delete-window)
(global-set-key (kbd "C-q") 'kill-buffer)
(global-set-key (kbd "C-s") 'save-buffer)
(global-set-key (kbd "C-x C-s") 'isearch-forward)
(global-set-key (kbd "C-S-k") 'kill-whole-line)
(global-set-key (kbd "C-x f") 'windmove-right)
(global-set-key (kbd "C-x b") 'windmove-left)
(global-set-key (kbd "C-x p") 'windmove-up)
(global-set-key (kbd "C-x n") 'windmove-down)
(define-key key-translation-map (kbd "M-p") (kbd "C-<up>"))
(define-key key-translation-map (kbd "M-n") (kbd "C-<down>"))
完整版
;; === 观感 === ;;
;; 不显示工具栏
(tool-bar-mode 0)
;; 不显示菜单栏
(menu-bar-mode 0)
;; 显示行号
(global-linum-mode t)
;; 高亮匹配括号。
(show-paren-mode t)
(setq show-paren-style 'parenthesis)
;; 光标形状。'box = 框;'bar = 竖线。
(setq-default cursor-type 'bar)
;; 优化页面滚动。
(setq-default scroll-step 1 scroll-margin 0 scroll-conservatively 10000)
;; 透明度。
(set-frame-parameter (selected-frame) 'alpha (list 92 72))
(add-to-list 'default-frame-alist (cons 'alpha (list 92 72)))
;; 标题栏
(setq frame-title-format "BruceW")
;; === 快捷键 === ;;
;; 一键编译.
(global-set-key [f9] 'compile-file)
(defun compile-file ()
(interactive)
(compile (format "g++ -o %s %s -g -lm -Wall -O2 -std=c++11" (file-name-sans-extension (buffer-name))(buffer-name))))
;; Ctrl-h 替换。
(global-set-key (kbd "C-h") 'query-replace)
;; Ctrl-w 删除当前 window
(global-set-key (kbd "C-w") 'delete-window)
;; Ctrl-q 删除当前 buffer
(global-set-key (kbd "C-q") 'kill-buffer)
;; Ctrl-s 保存
(global-set-key (kbd "C-s") 'save-buffer)
;; Ctrl-x Ctrl-s 搜索
(global-set-key (kbd "C-x C-s") 'isearch-forward)
;; Ctrl-z 撤销
(global-set-key (kbd "C-z") 'undo)
;; Ctrl-d 删除当前行
(global-set-key (kbd "C-d") 'kill-whole-line)
;; Ctrl-x Ctrl-a 全选
;;(global-set-key (kbd "C-x C-a") 'mark-whole-buffer)
;; 在 window 之间切换
(global-set-key (kbd "C-x b") 'windmove-left)
(global-set-key (kbd "C-x f") 'windmove-right)
(global-set-key (kbd "C-x p") 'windmove-up)
(global-set-key (kbd "C-x n") 'windmove-down)
;; 在 buffer 之间切换
;;(define-key key-translation-map (kbd "M-<left>") (kbd "C-x <left>"))
;;(define-key key-translation-map (kbd "M-<right>") (kbd "C-x <right>"))
(define-key key-translation-map (kbd "M-p") (kbd "C-<up>"))
(define-key key-translation-map (kbd "M-n") (kbd "C-<down>"))
;; === 编辑器 === ;;
(add-to-list 'custom-theme-load-path (expand-file-name "~/.emacs.d/themes/"))
;; 默认编码环境为 UTF-8。
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8)
;; 不显示欢迎页面。
(setq-default inhibit-startup-screen t)
;; emacs 和系统的剪贴板共用。
(setq-default x-select-enable-clipboard t)
;; 设置标题。
(setq-default frame-title-format "%b - emacs")
;; 全选大文件的时候不会卡死。当然,如果你使用的是 fcitx,并且打开了剪贴板支持,在复制大文件的时候还是会卡死。你可以使用 emacs-terminal 来解决这个问题。
(setq-default select-active-regions 'only)
;; 启用 cua-mode (C-x C-c C-v 分别代表剪切,复制,粘贴)。
(cua-mode t)
;; 回答 yes/no 改成回答 y/n。
(fset 'yes-or-no-p 'y-or-n-p)
;; 撤销记录扩大。
(setq-default kill-ring-max 65535)
;; 设置备份文件时间间隔。这个单位是秒。
(setq-default auto-save-timeout 30)
;; 自动重载文件。
(global-auto-revert-mode t)
;; 优化文件树结构。
(ido-mode t)
;; 语法高亮。
(global-font-lock-mode t)
;; 换行的时候自动缩进
(global-set-key (kbd "RET") 'newline-and-indent)
;; melpa 插件源
(setq package-archives '(("gnu" . "http://elpa.emacs-china.org/gnu/")
("melpa" . "http://elpa.emacs-china.org/melpa/")))
;; 禁用 C-SPC, 防止与系统切换输入法快捷键冲突
(global-set-key (kbd "C-SPC") nil)
;; === C++ IDE === ;;
;; C++ 代码缩进单位长度。
(setq-default c-basic-offset 2)
;; 使用 tab 缩进。
(setq-default indent-tabs-mode nil)
;; tab 的长度。务必和缩进长度一致。
(setq-default default-tab-width 2)
(setq-default tab-width 2)
;; === org-mode === ;;
;; org-mode 自动换行
(add-hook 'org-mode-hook (lambda () (setq truncate-lines nil)))
;; open URL by chrome in default
(setq browse-url-browser-function 'browse-url-chrome)
;; set hot keys
(global-set-key (kbd "C-c l") 'org-store-link)
(global-set-key (kbd "C-c a") 'org-agenda)
(global-set-key (kbd "C-c c") 'org-capture)
;; set org-indent-mode
(setq org-startup-indented t)
(setq org-startup-children t)