emacs 配置

考场简化版

(tool-bar-mode 0)
(global-linum-mode t)
(global-hl-line-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-S-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)

(setq-default c-basic-offset 4)

完整版

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

;; 不显示工具栏
(tool-bar-mode 0)

;; 显示行号
(global-linum-mode t)

;; 高亮当前行
(global-hl-line-mode 1)

;; 高亮匹配括号。
(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)))

;; 主题设置
(add-to-list 'custom-theme-load-path (expand-file-name "~/.emacs.d/themes/"))
;;(load-theme 'gotham t)
;;(load-theme 'doom-nord-light t)
;;(load-theme 'nord t)

;; 标题栏
(setq frame-title-format "BruceW")



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

;; 一键编译.
(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 [f8] 'compile)

;; 一键 GDB.
(global-set-key [f10] 'gud-gdb)

;; Ctrl-h 替换。
(define-key key-translation-map (kbd "C-h") (kbd "M-%"))

;; 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-z 撤销
(global-set-key (kbd "C-z") 'undo)

;; Ctrl-d 删除当前行
(global-set-key (kbd "C-d") 'kill-whole-line)

;; 在 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-") (kbd "C-x "))
(define-key key-translation-map (kbd "M-") (kbd "C-x "))




;; === 编辑器 === ;;

;; 默认编码环境为 UTF-8。
(set-language-environment "UTF-8")
(set-default-coding-systems '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)

;; 开启备份文件。(~/.emacs.d/auto-save-list)
(setq-default auto-save-mode t)
(setq-default backup-by-copying t)

;; 设置备份文件时间间隔。这个单位是秒。
(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)





;; === C++ IDE === ;;

;; C++ 代码缩进单位长度。
(setq-default c-basic-offset 4)

;; 使用 tab 缩进。
(setq-default indent-tabs-mode t)

;; tab 的长度。务必和缩进长度一致。
(setq-default default-tab-width 4)
(setq-default tab-width 4)



你可能感兴趣的:(emacs 配置)