Personally I find that a better starting point.
I agree. There is a lot of "magic" going on, and it doesn't help that Spacemacs is a lot slower and less stable than my less-intensive personal customization.
Of course, that's the problem with any significant starter kit. As a new user, now you don't just have to learn emacs, you have to learn emacs + whatever heavy modifications they've done to emacs.
In principle, I liked Spacemacs, but stability is a big problem. Often certain org functionality stops working, etc. I now have a reasonably stable snapshot and I just don't update ELPA/MELPA packages anymore, because the risk is simply too big that things break (yes, I know that you can rollback).
Another problem that I have been running into is that Mitsuharu Yamamoto's emacs-mac, which is IMO by far the nicest Mac version regularly seems to trigger a bug where WindowServer starts using 100% CPU. I haven't really nailed it down (I only notice it later when the fans start getting loud), except that it only occurs sometimes when I run emacs-mac.
I use it, though I'm not a heavy emacs user.
(setq ido-enable-flex-matching t) (setq ido-everywhere t) (setq ido-create-new-buffer 'always) (ido-mode 1)
(projectile-global-mode)
Maybe enable flycheck globally if you're used to syntax checking.
(global-flycheck-mode)
Also worth learning TRAMP if you're used to sshing into boxes and running vim. M-x info, C-s tramp.
Get rid of the waste of space toolbar:
(tool-bar-mode -1)
And install a nice theme, whatever floats your boat, I use a solarized theme [1]. The default theme is gross. (setq custom-theme-directory "~/.emacs.d/theme")
(setq custom-safe-themes t)
(when (display-graphic-p)
(load-theme 'my-solarized))
I use eshell, I think the plan9 smart shell features are nice: (require 'em-smart)
Basically includes additional editing features in eshell. It creates keybindings to edit previous commands and page through the output of commands.Make CTRL L clear eshell
(defun eshell/clear ()
"Clear the eshell buffer"
(interactive)
(let ((inhibit-read-only t))
(erase-buffer)
(eshell-send-input)))
(defun my-eshell-mode-hook ()
(local-set-key (kbd "C-c e") 'end-of-buffer)
(local-set-key (kbd "C-l") 'eshell/clear)
(eshell-smart-initialize))
(add-hook 'eshell-mode-hook 'my-eshell-mode-hook)
Line numbers, but only when you're editing code (GUI and text): (when (not (display-graphic-p))
(setq linum-format "%4d | "))
(defcustom linum-disabled-modes-list '(eshell-mode wl-summary-mode compilation-mode org-mode text-mode dired-mode doc-view-mode image-mode rcirc-mode)
"* List of modes disabled when global linum mode is on"
:type '(repeat (sexp :tag "Major mode"))
:tag " Major modes where linum is disabled: "
:group 'linum)
;; override linum-on because there is no good way to disable global-linum-mode
;; on a per-mode basis
(defun linum-on ()
(unless (or (minibufferp)
(member major-mode linum-disabled-modes-list)
(string-match "*" (buffer-name))
(> (buffer-size) 3000000))
(linum-mode 1)))
"Smooth scrolling"https://www.emacswiki.org/emacs/SmoothScrolling
[1] https://raw.githubusercontent.com/wcummings/dotemacs/master/...
- if you're on a mac set the command modifier to meta
- ido mode
- transform yes or no into y or n
- Disable the bell and the visual bell
- cua mode (this begins to be personal so I'll stop there)