;; 官方源
;;(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
;; ("melpa" . "https://melpa.org/packages/")))
;; Emacs China 源
;;(setq package-archives '(("gnu" . "http://elpa.emacs-china.org/gnu/")
;; ("melpa" . "http://elpa.emacs-china.org/melpa/")))
;; 腾讯源
(setq package-archives '(("gnu" . "http://mirrors.cloud.tencent.com/elpa/gnu/")
("melpa" . "http://mirrors.cloud.tencent.com/elpa/melpa/")))
;; 网易源
;; 清华源
;;(setq package-archives '(("gnu" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
;; ("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
(package-initialize)
(package-refresh-contents)
(require 'helm)
(require 'helm-config)
(setq helm-autoresize-min-height 10)
(setq helm-autoresize-max-height 10)
;; (helm-autoresize-mode 1)
(helm-mode 1)
;; 使用 helm-projectile
(require 'helm-projectile)
(helm-projectile-on)
;; 使用 yasnippet
(require 'yasnippet)
(yas-global-mode 1)
(require 'ivy)
(ivy-mode 1)
(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
;; 更改显示字体大小
;; (set-frame-font "Helvetica" t t)
;; (set-frame-font "Monokai")
;; (set-frame-font "Open Sans")
(set-frame-font "Monaco")
(set-face-attribute 'default nil
:height 140
:weight 'normal
:width 'normal)
;; 设置默认屏幕宽高
(add-to-list 'default-frame-alist '(height . 50))
(add-to-list 'default-frame-alist '(width . 130))
(add-to-list 'default-frame-alist '(left . 60))
;; 关闭自动生产备份文件
(setq make-backup-files nil)
;; 显示行号
(global-linum-mode t)
;; 关闭工具栏
(tool-bar-mode -1)
;; 关闭滚动轴
(scroll-bar-mode -1)
;; 关闭启动帮助画面
(setq inhibit-splash-screen -1)
;; 关闭菜单栏
(menu-bar-mode -1)
;; 状态栏显示行列信息
(column-number-mode t)
;; 自动补全括号
(electric-pair-mode t)
;; 关闭起动时闪屏
(setq inhibit-startup-message t)
(setq-default show-trailing-whitespace t)
;; 设置光标样式
;; (setq-default cursor-type 'bar)
;; (setq evil-hybrid-state-cursor '("yellow" box))
(set-cursor-color "#d500f9")
(blink-cursor-mode 0)
;; 编辑时禁用触摸板与鼠标
;; 需要安装plugin: disable-mouse
(global-disable-mouse-mode t)
;; 关闭自动保存文件
(setq auto-save-default nil)
;; 自动加载外部修改过的文件
(global-auto-revert-mode 1)
;; 设置编码
(set-language-environment "UTF-8")
;; 显示时间
(display-time-mode 1)
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
;; 自动将光标移动到新创建的窗口中
(require 'popwin)
(popwin-mode 1)
;; 高亮当前行
(global-hl-line-mode t)
;; 关闭警告提示音
(setq ring-bell-function 'ignore)
;; 删除换行符
(defun remove-dos-eol ()
(interactive)
(goto-char (point-min))
(while (search-forward "\r" nil t) (replace-match "")))
;; 缩进
(setq indent-tabs-mode nil)
(setq c-basic-offset 2)
(setq default-tab-width 2)
(setq web-mode-markup-indent-offset 2)
(setq web-mode-code-indent-offset 2)
(setq web-mode-css-indent-offset 2)
(setq css-indent-offset 2)
(setq javascript-indent-level 2)
(setq js-indent-level 2)
(setq typescript-indent-level 2)
(setq ts-indent-level 2)
(setq tsx-indent-offset 2)
(setq rust-indent-unit 2)
(setq rust-indent-offset 2)
;; 添加最近打开的文件
(require 'recentf)
(recentf-mode 1)
(setq recentf-max-menu-item 10)
(setq recentf-max-saved-items 10)
(setq package-check-signature nil)
;; ------ 绑定全局快捷键 ------
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "C-x C-f") 'helm-find-files)
(global-set-key [f2] 'hs-toggle-hiding)
(global-set-key (kbd "<f5>") 'eshell)
(global-set-key (kbd "<f7>") 'treemacs)
(global-set-key (kbd "<f8>") 'neotree-toggle)
(global-set-key (kbd "<f9>") 'evil-mode)
;; ------ 绑定全局快捷键 ------
;; ------ 代码补全 ------
;; auto-complete 模式
(ac-config-default)
(setq ac-use-menu-map t)
(define-key ac-menu-map "\C-n" 'ac-next)
(define-key ac-menu-map "\C-p" 'ac-previous)
;; company 模式
;; (add-hook 'after-init-hook 'global-company-mode)
;; ------ 代码补全 ------
;; 开启全局 company 补全
;; 使用下面的配置来在 Company-mode 中使用 C-n 与 C-p 来选择补全项
(with-eval-after-load 'company
(define-key company-active-map (kbd "M-n") nil)
(define-key company-active-map (kbd "M-p") nil)
(define-key company-active-map (kbd "C-n") #'company-select-next)
(define-key company-active-map (kbd "C-p") #'company-select-previous))
;; ------ 设置 web-mode -------
(require 'web-mode)
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.jsx?$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . rjsx-mode))
;; ------ 设置 web-mode ------
;; ------ 设置编码 UTF-8 ------
;; 设置emacs 使用 utf-8
(setq locale-coding-system 'utf-8)
;; 设置键盘输入时的字符编码
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
;; 文件默认保存为 utf-8
(set-buffer-file-coding-system 'utf-8)
(set-default buffer-file-coding-system 'utf8)
(set-default-coding-systems 'utf-8)
;; 解决粘贴中文出现乱码的问题
(set-clipboard-coding-system 'utf-8)
;; 终端中文乱码
(set-terminal-coding-system 'utf-8)
(modify-coding-system-alist 'process "*" 'utf-8)
(setq default-process-coding-system '(utf-8 . utf-8))
;; 解决文件目录的中文名乱码
(setq-default pathname-coding-system 'utf-8)
(set-file-name-coding-system 'utf-8)
;; ------ 设置编码 UTF-8 ------
;; 解决 eshell 乱码问题
;; (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
;; (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;; ------ 设置主题 ------
;; (load-theme 'dracula t)
;; (load-theme 'monokai t)
;; (load-theme 'spacemacs-dark t)
(load-theme 'spacemacs-light t)
;; (load-theme 'solarized t)
;; (load-theme 'zenburn t)
;; ------ 设置主题 ------
;; 以下是插件自动生成的内容
(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.
'(ansi-color-names-vector
["#0a0814" "#f2241f" "#67b11d" "#b1951d" "#4f97d7" "#a31db1" "#28def0" "#b2b2b2"])
'(ansi-term-color-vector
[unspecified "#1F1611" "#660000" "#144212" "#EFC232" "#5798AE" "#BE73FD" "#93C1BC" "#E6E1DC"])
'(custom-safe-themes
(quote
("c433c87bd4b64b8ba9890e8ed64597ea0f8eb0396f4c9a9e01bd20a04d15d358" "76c5b2592c62f6b48923c00f97f74bcb7ddb741618283bdb2be35f3c0e1030e3" default)))
'(fci-rule-character-color "#452E2E")
'(hl-todo-keyword-faces
(quote
(("TODO" . "#dc752f")
("NEXT" . "#dc752f")
("THEM" . "#2d9574")
("PROG" . "#4f97d7")
("OKAY" . "#4f97d7")
("DONT" . "#f2241f")
("FAIL" . "#f2241f")
("DONE" . "#86dc2f")
("NOTE" . "#b1951d")
("KLUDGE" . "#b1951d")
("HACK" . "#b1951d")
("TEMP" . "#b1951d")
("FIXME" . "#dc752f")
("XXX+" . "#dc752f")
("\\?\\?\\?+" . "#dc752f"))))
'(package-selected-packages
(quote
(dashboard soft-stone-theme material-theme birds-of-paradise-plus-theme ubuntu-theme zenburn-theme solarized-theme spacemacs-theme counsel rjsx-mode js2-mode auto-complete helm-projectile tide popwin company web-mode yasnippet magit ivy treemacs neotree evil monokai-theme dracula-theme helm disable-mouse)))
'(pdf-view-midnight-colors (quote ("#b2b2b2" . "#292b2e"))))
(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.
)
网友评论