emacs 配置

哈希表基数:1021,模数:731201。

考场简化版

(tool-bar-mode 0)
(menu-bar-mode 0)
(global-linum-mode t)
(show-paren-mode t)
(ido-mode t)

(global-set-key [f9] 'compile-file)
(defun compile-file()
  (interactive)
  (compile (format "g++ -o %s %s -g -lm -Wall -std=c++98" (file-name-sans-extension (buffer-name)) (buffer-name)))
  )

(global-set-key (kbd "C-s") 'save-buffer)
(global-set-key (kbd "C-w") 'delete-window)
(global-set-key (kbd "C-q") 'kill-buffer)
(global-set-key (kbd "C-x C-s") 'isearch-forward)

(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)

完整版

;; === 观感 === ;;

;; 不显示工具栏
(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")

;;(doom-themes-treemacs-config)
(setq doom-themes-treemacs-theme "doom-colors")

;; theme-changer
(setq day-theme 'doom-acario-light)
(setq dark-theme 'doom-dark+)
(defun synchronize-theme ()
    (setq hour
        (string-to-number
            (substring (current-time-string) 11 13)))
    (if (member hour (number-sequence 6 17))
		(progn
          (setq now day-theme)
		      (setq lst dark-theme)
		  )
      (setq now dark-theme)
	  (setq lst day-theme)
	  )
	  (disable-theme lst)
    (load-theme now)
)
(run-with-timer 0 3600 'synchronize-theme)

;; neoemacs theme
(setq neo-theme 'icons)



;; === 快捷键 === ;;

;; 一键编译.
(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)

;; turn on neotree
(add-to-list 'load-path "/some/path/neotree")
(require 'neotree)
(global-set-key [f8] 'neotree-toggle)

;; auto-save
(add-to-list 'load-path "~/.emacs.d/extensions");
(require 'auto-save)
(auto-save-enable)

(setq auto-save-silent t)   ; quietly save
(setq auto-save-delete-trailing-whitespace t)  ; automatically delete spaces at the end of the line when saving

;;; custom predicates if you don't want auto save.
;;; disable auto save mode when current filetype is an gpg file.
(setq auto-save-disable-predicates
      '((lambda ()
      (string-suffix-p
      "gpg"
      (file-name-extension (buffer-name)) t))))


;; === 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)
原文地址:https://www.cnblogs.com/BruceW/p/11864752.html