发现Emacs下编辑代码时非常卡顿,环境设置也不方便,百度了一通,集合一些设置如下,发现这个神器真的是很爽,秒杀一众IDE
一、建一个bat文件设置启动变量
windows下,环境设置可以自己写一个bat文件,命名比如runemacs.bat,我主要用它编辑java和python文件,设置如下:
二、windows下的卡顿问题
因为英文版的windows下,这emacs运行飞快,猜测是字库问题引起的缓慢,在emacs文件中设置下缓存限制和字体,果然不再卡顿~
一是设置字体最大缓存
二是设置好中英文字体
设置完后就飞快了。。
三、编辑java项目的一些配置
我使用的是meghanada来装逼,有些折腾……感觉还是老老实实用idea效率高些。meghanada需要的插件可以自行上github上下载直接放进去即可。。附我的配置文件
;;;
;;; Buffer fontification
;;;
(global-font-lock-mode t) ; fontify all buffers
(setq font-lock-maximum-size 5000000) ; Set 5Mb file size limit for fontification
(setq visible-bell t) ; flash not beep
(setq transient-mark-mode t) ; Enable highlighting of active marked region
(setq blink-matching-paren-distance 500000) ;maximum distance to search for paren
(setq line-number-display-limit nil) ; Show line count for big files
(column-number-mode 1) ; Show current column number
(setq fill-column 80) ; line wrap column
(setq default-buffer-file-coding-system 'utf-8) ;默认buffer编码是utf-8,(新文件)
(prefer-coding-system 'utf-8) ;指定文件编码优先,此时buffer新建和读取都默认是utf-8,也可以M-x prefer-coding-system 只执行一次
;;java mode加载插件)
(require 'linum)
(global-linum-mode t) ;;line num
(setq-default auto-save-timeout 15) ; 15秒无动作,自动保存
(setq-default auto-save-interval 100) ; 100个字符间隔, 自动保存
(setq
backup-by-copying t ; 自动备份
backup-directory-alist
'(("." . "~/.em_backup")) ; 自动备份在目录"~/.em_backup"下
delete-old-versions t ; 自动删除旧的备份文件
kept-new-versions 3 ; 保留最近的3个备份文件
kept-old-versions 1 ; 保留最早的1个备份文件
version-control t) ; 多次备份
(add-to-list 'load-path "~/site-lisp/dash")
(add-to-list 'load-path "~/site-lisp/color-theme")
(add-to-list 'load-path "~/site-lisp/meghanada")
(add-to-list 'load-path "~/site-lisp/company")
(add-to-list 'load-path "~/site-lisp/flycheck")
(add-to-list 'load-path "~/site-lisp/yasnippet")
(add-to-list 'load-path "~/site-lisp/use-package")
;;;Color Theme
(require 'color-theme)
(color-theme-initialize)
(color-theme-gnome2)
;;设置字体
(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.
'(default ((t (:family "Courier New" :foundry "outline" :slant normal :weight normal :height 120 :width normal)))))
;; Setting Chinese Font
(dolist (charset '(kana han symbol cjk-misc bopomofo))
(set-fontset-font (frame-parameter nil 'font)
charset
(font-spec :family "Microsoft Yahei" :size 16)))
;;设置package
;;(require 'package)
;;(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos))
;; (not (gnutls-available-p))))
;; (proto (if no-ssl "http" "https")))
;; (add-to-list 'package-archives (cons "melpa" (concat proto "://melpa.org/packages/")) t)
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
;; and `package-pinned-packages`. Most users will not need or want to do this.
;;(add-to-list 'package-archives (cons "melpa-stable" (concat proto "://stable.melpa.org/packages/")) t)
;; )
;;(package-initialize)
;;设置java模式
(require 'yasnippet)
(yas-global-mode 1)
(require 'meghanada)
(add-hook 'java-mode-hook
(lambda ()
;; meghanada-mode on
(meghanada-mode t)
;; enable telemetry
(meghanada-telemetry-enable t)
(flycheck-mode +1)
(setq c-basic-offset 2)
;; use code format
(add-hook 'before-save-hook 'meghanada-code-beautify-before-save)))
(cond
((eq system-type 'windows-nt)
(setq meghanada-java-path (expand-file-name "bin/java.exe" (getenv "JAVA_HOME")))
(setq meghanada-maven-path "mvn.cmd"))
(t
(setq meghanada-java-path "java")
(setq meghanada-maven-path "mvn")))
(require 'use-package)
(put 'upcase-region 'disabled nil)