2020-03-26

2020-03-26  本文已影响0人  wlianfu
;; 警示: 国内的 elpa, melpa 源都不好用
;; (setq package-archives '(("gnu" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
;;   ("marmalade" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/marmalade/")
;;   ("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))
(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
  ("melpa" . "https://melpa.org/packages/")))
(package-initialize)

;; ------ 基本配置 ------

;; cl - common lisp extension
(require 'cl)
(require 'evil)
(evil-mode 1)
(require 'ivy)
(ivy-mode 1)
(require 'helm)
(helm-mode 1)
(require 'neotree)
(require 'web-mode)
(require 'tide)
(tide-mode 1)
(require 'projectile)
(projectile-mode 1)
(require 'rjsx-mode)
(require 'magit)
(require 'counsel)
(counsel-mode 1)
;; (require 'iedit)
;; (require 'company)
;; (global-company-mode 1)
(require 'yasnippet)
;; 自动将光标移动到新创建的窗口中
(require 'popwin)
(popwin-mode 1)

;; 默认进入 emacs 模式
(setq evil-default-state 'emacs)
;; 显示行号
(global-linum-mode t)
;; 关闭自动生成备份文件
(setq make-backup-files nil)
;; 关闭工具栏
(tool-bar-mode -1)
;; 关闭文件滑动控件
(scroll-bar-mode -1)
;; 关闭启动帮助画面
(setq inhibit-splash-screen -1)
;; 关闭缩进
;; (electric-indent-mode -1)
;; 关闭菜单栏
(menu-bar-mode -1)
;; 状态栏显示行列信息
(column-number-mode t)
;; 自动补全括号
(electric-pair-mode t)
(setq-default show-trailing-whitespace t)
;; 显示时间
(display-time-mode 1)
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)

(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
(setq ivy-height 10)
(setq ivy-count-format "%d/%d")
(setq projectile-completion-system 'ivy)

;; 添加最近打开的文件
(require 'recentf)
(recentf-mode 1)
(setq recentf-max-menu-item 10)
(setq recentf-max-saved-items 30)
(setq package-check-signature nil)

;; 更改显示字体大小
;; (set-frame-font "Helvetica" t t)
;; (set-face-attribute 'default nil :height 130)
(set-face-attribute 'default nil
;;          :family "Monokai"
            :height 140
            :weight 'normal
            :width 'normal)

;; 设置屏幕宽高
(add-to-list 'default-frame-alist '(height . 60))
(add-to-list 'default-frame-alist '(width . 140))
;; 设置光标样式
;; (setq-default cursor-type 'bar)
;; 高亮当前行
(global-hl-line-mode 1)
;; 编辑时禁用触摸板与鼠标
(global-disable-mouse-mode)
;; C-o按键调用vim功能 (就是临时进入normal模式,然后自动回来)
;; (define-key evil-emacs-state-map (kbd "C-o") 'evil-execute-in-normal-state)
;; 开启自动补全
;; (ac-config-default t)

;; 删除换行符
(defun remove-dos-eol ()
  (interactive)
  (goto-char (point-min))
  (while (search-forward "\r" nil t) (replace-match "")))

;; 自动加载外部修改过的文件
(global-auto-revert-mode 1)
;; 关闭自动保存文件
(setq auto-save-default nil)

;; 关闭警告提示音
(setq ring-bell-function 'ignore)

;; 需要确认时的 yes/no,改为 y/n
;; (fset 'yes-or-no-p 'y-or-n-p)

;; 设置编码
(set-language-environment "UTF-8")

;; 缩进
(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)

;; ------ 绑定全局快捷键 ------

;; 备注: F1 截图
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "C-x C-f") 'helm-find-files)

(global-set-key (kbd "C-c a") 'org-agenda)

(global-set-key (kbd "<f6>") 'shell)
(global-set-key (kbd "<f7>") 'treemacs)
(global-set-key (kbd "<f8>") 'neotree-toggle)
(global-set-key (kbd "<f9>") 'evil-mode)

;; (global-set-key (kbd "M-s e") 'iedit-mode)

;; 设置主题
(load-theme 'dracula t)
;; (load-theme monokai t)

;; ------ org-mode 相关配置 ------
(require 'org)
;; 添加 org-mode 文本内语法高亮
(setq org-src-fontify-natively t)

;; 设置默认 org-agenda 文件目录
(setq org-agenda-files '("~/org"))

;; 开启全局 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))

;; 设置开发模式
(setq auto-mode-alist
  (append
   '(("\\.html\\'" . web-mode))
   '(("\\.tsx\\'" . rjsx-mode))
    auto-mode-alist))

;; dired mode 递归
(setq dired-recursive-deletes 'always)
(setq dired-recursive-copies 'always)

;; 优化缓冲区
(require 'dired)
(define-key dired-mode-map (kbd "RET") 'dired-find-alternate-file)
(require 'dired-x)

;; 缩写补全
(setq-default abbrev-mode t)
(define-abbrev-table 'global-abbrev-table '(
                        ("yy163" "wlianfu@163.com")
                        ("yyGamil" "wlianfu@gmail.com")
                        ))

上一篇 下一篇

猜你喜欢

热点阅读