(require 'package) (setq package-enable-at-startup nil) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/")) (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/")) (package-initialize) (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) (eval-when-compile (require 'use-package)) (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-faces-vector [default default default italic underline success warning error]) '(custom-enabled-themes (quote (wombat))) '(inhibit-startup-screen t) '(package-selected-packages (quote (neotree rjsx-mode powerline evil evil-mode use-package)))) (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. ) ;; Line numbers in modern emacs (when (version<= "26.0.50" emacs-version ) (global-display-line-numbers-mode)) ;; dumb-jump for "go to definition" (use-package dumb-jump :ensure t :config (dumb-jump-mode)) ;; neotree for project navigation (use-package neotree :ensure t :bind (([f8] . neotree-toggle))) ;; rjsx-mode for JSX convenience (use-package rjsx-mode :ensure t :mode "\\.jsx\\'" :interpreter "node") ;; powerline status bar (use-package powerline :ensure t :config (powerline-default-theme)) ;; evil mode for vim emulation (use-package evil :ensure t :defer .1 ;; don't block emacs when starting, load evil immediately after startup :init (setq evil-want-integration nil) ;; required by evil-collection (setq evil-search-module 'evil-search) (setq evil-ex-complete-emacs-commands nil) (setq evil-vsplit-window-right t) ;; like vim's 'splitright' (setq evil-split-window-below t) ;; like vim's 'splitbelow' (setq evil-shift-round nil) (setq evil-want-C-u-scroll t) :config (evil-mode)) ;; Sane Defaults (setq delete-old-versions -1 ) ; delete excess backup versions silently (setq version-control t ) ; use version control (setq vc-make-backup-files t ) ; make backups file even when in version controlled dir (setq backup-directory-alist `(("." . "~/.emacs.d/backups")) ) ; which directory to put backups file (setq vc-follow-symlinks t ) ; don't ask for confirmation when opening symlinked file (setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" )) ) ;transform backups file name (setq inhibit-startup-screen t ) ; inhibit useless and old-school startup screen (setq ring-bell-function 'ignore ) ; silent bell when you make a mistake (setq coding-system-for-read 'utf-8 ) ; use utf-8 by default (setq coding-system-for-write 'utf-8 ) (setq sentence-end-double-space nil) ; sentence SHOULD end with only a point. (setq default-fill-column 100) ; toggle wrapping text at the 80th character