emacs配置

似乎快要CSP了,是时候来码一波配置了

;; 界面美化
(tool-bar-mode 0)
(menu-bar-mode 0)
(show-paren-mode t)
(setq show-paren-style 'parenthesis)
(global-font-lock-mode t)
(setq-default cursor-type 'bar)
;;快捷键
(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))))
(global-set-key (kbd "C-s") 'save-buffer)
(global-set-key (kbd "C-z") 'undo)
(global-set-key (kbd "C-a") 'mark-whole-buffer)
(cua-mode t)
(fset 'yes-or-no-p 'y-or-n-p)
(setq-default kill-ring-max 65535)
;;缩进
(global-set-key (kbd "RET") 'newline-and-indent)
(setq-default c-basic-offset 2)
(setq-default indent-tabs-mode nil)
(setq-default default-tab-width 2)
(setq-default tab-width 2)
(setq c-default-style "linux")
(add-hook 'org-mode-hook (lambda () (setq truncate-lines nil)))

其实到了最后:记事本真是个好东西啊!

完全体

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

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

;;;;;启用时间显示设置,在minibuffer上面的那个杠上(忘了叫什么来着)
(display-time-mode 1)
;;;;;时间使用24小时制
(setq display-time-24hr-format t)
;;;;;时间显示包括日期和具体时间
(setq display-time-day-and-date t)
;;;;;时间的变化频率,单位多少来着?
(setq display-time-interval 10)

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

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

;; 自动重载文件。
(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)

(setq c-default-style "linux")

;; === org-mode === ;;

;; org-mode 自动换行
(add-hook 'org-mode-hook (lambda () (setq truncate-lines nil)))
原文地址:https://www.cnblogs.com/wanwanjiuhao7744/p/13919441.html