Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Do you have a good set of basic customisations that anyone using Emacs should do?


You've probably heard about it, but Mastering Emacs is fantastic.

https://masteringemacs.org/reading-guide


https://github.com/technomancy/better-defaults aims to be "a small number of better defaults for Emacs".

I use it, though I'm not a heavy emacs user.


I think ido mode in the mini buffer is a requirement for smooth emacs use. And of course, installing any editing modes for particular program languages that you use.


I'm not sure how you are with vim bindings but in my opinion evil mode helps a lot with productivity.


And spacemacs is a great starting point.


Or God mode.


- grab a decent theme

- 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)


Install ido-mode and projectile as a bare minimum. All these can be installed with M-x package-install, or you can do something like this https://github.com/wcummings/dotemacs/blob/master/modes/my-p... to automagically install your packages.

(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/...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: