@@ -16,7 +16,7 @@ look to fix it.
16
16
17
17
I've since come to realize users are better suited by small, focused
18
18
packages which provide specific pieces of new functionality. So rather
19
- than putting up in a big pile of code, the Starter Kit has shifted to
19
+ than putting up a big pile of code, the Starter Kit has shifted to
20
20
become merely a guide. As an Emacs user, you're going to have to get
21
21
comfortable seeking out new pieces of elisp, bringing them in,
22
22
configuring them, and eventually writing your own. The Starter Kit can
@@ -26,46 +26,52 @@ personal journey for which you must take the first steps.
26
26
27
27
## Getting Started
28
28
29
- If you do nothing else, start by adding
30
- [ Marmalade] ( https://marmalade-repo.org/ ) to your packages list and
31
- installing the
32
- [ better-defaults package] ( https://github.com/technomancy/better-defaults ) .
33
- Place this in your ` ~/.emacs.d/init.el ` file:
29
+ I strongly recommend keeping your dotfiles under version control and
30
+ installing Emacs packages inside it using [ git subtree] ( https://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/ ) .
31
+
32
+ This avoids many [ common] ( https://glyph.twistedmatrix.com/2015/11/editor-malware.html )
33
+ [ problems] ( https://github.com/melpa/melpa/issues/2342 ) with
34
+ ` package.el ` , and it allows you to seamlessly roll back upgrades which
35
+ introduce breaking changes as well as guaranteeing that all machines you
36
+ work on share the same versions.
34
37
35
38
``` lisp
36
- (require 'package)
37
- (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
39
+ (defun pnh-reinit-libs ()
40
+ (interactive)
41
+ (let ((generated-autoload-file (concat user-emacs-directory "my-autoload.el")))
42
+ (dolist (d (directory-files (concat user-emacs-directory "lib") t "^[^\.]"))
43
+ (dolist (f (directory-files d t "\\.el$"))
44
+ (byte-compile-file f))
45
+ (update-directory-autoloads d))))
46
+
47
+ (dolist (l (directory-files (concat user-emacs-directory "lib") nil "^[^\.]"))
48
+ (add-to-list 'load-path (concat user-emacs-directory "lib/" l))
49
+ (autoload (intern l) (concat l ".el")))
50
+
51
+ (when (not (file-exists-p (concat user-emacs-directory "my-autoload.el")))
52
+ (pnh-reinit-libs))
53
+
54
+ (load (concat user-emacs-directory "my-autoload.el")))
38
55
```
39
56
40
- Evaluate it with ` M-x eval-buffer ` and run ` M-x package-install [RET] better-defaults ` .
41
-
42
57
### If you liked ... you might also like
43
58
44
59
These are all libraries that focus on doing one thing and do it consistently well.
45
60
61
+ * [ better-defaults] ( https://github.com/technomancy/better-defaults ) fix bad built-in behavior.
46
62
* [ magit] ( https://magit.vc ) use git without being driven insane.
47
63
* [ smex] ( https://github.com/nonsequitur/smex ) for getting ido-style feedback in M-x.
48
64
* [ ido-ubiquitous] ( https://github.com/DarwinAwardWinner/ido-ubiquitous ) for geting ido goodness everywhere else.
49
65
* [ paredit] ( http://www.emacswiki.org/emacs/ParEdit ) keeps parentheses under control.
50
66
* [ idle-highlight-mode] ( https://github.com/nonsequitur/idle-highlight-mode ) for seeing everywhere else an identifier is used at a glance.
51
67
* [ find-file-in-project] ( https://github.com/technomancy/find-file-in-project ) quick project-scoped navigation
52
68
* [ scpaste] ( http://p.hagelb.org ) the pastebin of champions.
53
-
54
- You can drop some code into ` init.el ` to install these automatically when they are missing:
55
-
56
- ``` lisp
57
- (defvar my-packages '(better-defaults paredit idle-highlight-mode ido-ubiquitous
58
- find-file-in-project magit smex scpaste))
59
-
60
- (package-initialize)
61
- (dolist (p my-packages)
62
- (when (not (package-installed-p p))
63
- (package-install p)))
64
- ```
69
+ * [ elisp-slime-nav] ( https://github.com/purcell/elisp-slime-nav ) nicer navigation for emacs lisp code.
70
+ * [ exwm] ( https://github.com/ch11ng/exwm ) a tiling window manager for X.
65
71
66
72
## Copyright
67
73
68
- Copyright © 2008-2014 Phil Hagelberg and contributors
74
+ Copyright © 2008-2017 Phil Hagelberg and contributors
69
75
70
76
Files are licensed under the same license as Emacs unless otherwise
71
77
specified. See the file COPYING for details.
0 commit comments