Add emacs config
This commit is contained in:
parent
f9135409a4
commit
564d72de60
92
emacs/emacs.dotflie
Normal file
92
emacs/emacs.dotflie
Normal file
@ -0,0 +1,92 @@
|
||||
;; initialize packages
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives
|
||||
'("melpa" . "http://melpa.org/packages/"))
|
||||
(add-to-list 'package-archives
|
||||
'("elpy" . "https://jorgenschaefer.github.io/packages/"))
|
||||
(package-initialize)
|
||||
|
||||
;; line numbers
|
||||
(global-linum-mode t)
|
||||
(column-number-mode 1)
|
||||
(setq linum-format "%4d ")
|
||||
|
||||
;; git gutter
|
||||
(require 'git-gutter)
|
||||
(global-git-gutter-mode t)
|
||||
(git-gutter:linum-setup)
|
||||
|
||||
;; vim emulation
|
||||
(require 'evil)
|
||||
(evil-mode 1)
|
||||
(require 'evil-surround)
|
||||
(global-evil-surround-mode 1)
|
||||
|
||||
;; disable menubar
|
||||
(menu-bar-mode -1)
|
||||
|
||||
;; 80 column marker
|
||||
(require 'whitespace)
|
||||
(setq whitespace-style '(face indentation trailing tab-mark lines-tail))
|
||||
(global-whitespace-mode t)
|
||||
|
||||
;; prevent extraneous tabs
|
||||
(setq-default indent-tabs-mode nil)
|
||||
|
||||
;; infer tab settings
|
||||
(defun how-many-region (begin end regexp &optional interactive)
|
||||
"Print number of non-trivial matches for REGEXP in region.
|
||||
Non-interactive arguments are Begin End Regexp"
|
||||
(interactive "r\nsHow many matches for (regexp): \np")
|
||||
(let ((count 0) opoint)
|
||||
(save-excursion
|
||||
(setq end (or end (point-max)))
|
||||
(goto-char (or begin (point)))
|
||||
(while (and (< (setq opoint (point)) end)
|
||||
(re-search-forward regexp end t))
|
||||
(if (= opoint (point))
|
||||
(forward-char 1)
|
||||
(setq count (1+ count))))
|
||||
(if interactive (message "%d occurrences" count))
|
||||
count)))
|
||||
|
||||
(defun infer-indentation-style ()
|
||||
;; if our source file uses tabs, we use tabs, if spaces spaces, and if
|
||||
;; neither, we use the current indent-tabs-mode
|
||||
(let ((space-count (how-many-region (point-min) (point-max) "^ "))
|
||||
(tab-count (how-many-region (point-min) (point-max) "^\t")))
|
||||
(if (> space-count tab-count) (setq indent-tabs-mode nil))
|
||||
(if (> tab-count space-count) (setq indent-tabs-mode t))))
|
||||
(infer-indentation-style)
|
||||
|
||||
;; auto remove trailing whitespace
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
(setq mode-require-final-newline t)
|
||||
|
||||
;; automatic pairs
|
||||
(electric-pair-mode)
|
||||
|
||||
;; neotree
|
||||
(require 'neotree)
|
||||
(global-set-key [f8] 'neotree-toggle)
|
||||
(add-hook 'neotree-mode-hook
|
||||
(lambda ()
|
||||
(define-key evil-normal-state-local-map (kbd "TAB") 'neotree-enter)
|
||||
(define-key evil-normal-state-local-map (kbd "SPC") 'neotree-enter)
|
||||
(define-key evil-normal-state-local-map (kbd "RET") 'neotree-enter)
|
||||
(define-key evil-normal-state-local-map (kbd "q") 'neotree-hide)))
|
||||
(neotree-toggle)
|
||||
|
||||
;; backup in separate directory
|
||||
(setq backup-directory-alist `(("." . "~/.emacs.d/backups")))
|
||||
(setq backup-by-copying t)
|
||||
|
||||
;; projectile
|
||||
(projectile-global-mode)
|
||||
(setq projectile-find-file (kbd "C-p"))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
;; python config ;;
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(elpy-enable)
|
Loading…
x
Reference in New Issue
Block a user