Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
243 lines (187 sloc) 6.5 KB
Grant Rettke
Table of Contents
_________________
1. Watch What You Eat
.. 1. Use-Package
.. 2. El-Get
.. 3. Stand-Alone
.. 4. Helper
Never compile this.
,----
| ;; -*- no-byte-compile: t; -*-
`----
1 Watch What You Eat
====================
ID: org_gcr_2017-05-12_mara:BD133C8B-8DFF-45C0-967D-CB83693C54B4
1.1 Use-Package
~~~~~~~~~~~~~~~
ID: org_gcr_2018-04-11T09-44-43-05-00_mara:55083825-349A-44D0-8026-2E652BE228A9
Configure `use-package'.
Sysop is likely to use this infrequently.
Start EMACS with this command:
,----
| emacs --debug-init --no-init-file --no-splash --background-color white --foreground-color black --vertical-scroll-bars --eval '(switch-to-buffer "*Messages*")' --name O2B-TEST --title O2B-TEST --load ~/src/help/.org-mode-package-management.emacs.el
`----
,----
| (load-file "~/src/help/.org-mode-fundamentals.emacs.el")
`----
*Code requiring package-management can only follow this block.*
Before ELPA, I used SVN to manage software packages for EMACS. After ELPA, I
used ELPA-packages. Now this system uses MELPA and GNU. MELPA packages always
have their issues fixed very quickly. GNU packages rarely have issues.
Initialize Package.
,----
| (package-initialize)
| (add-to-list 'package-archives
| '("melpa" . "http://melpa.org/packages/") t)
| (add-to-list 'package-archives
| '("gnu" . "http://elpa.gnu.org/packages/") t)
`----
Use-Package is the most configurable and performant way to manage ELPA
packages. Startup speed matters but not right now so don't use `:defer'.
Add the Use-Package distribution the load path.
,----
| (add-to-list 'load-path"~/src/use-package")
`----
Load Use-Package and it's partner Diminish. Every package loaded before this
point uses `require'. Every package loaded after this point uses
`use-package'.
,----
| (eval-when-compile
| (require 'use-package))
| (use-package diminish)
`----
1.2 El-Get
~~~~~~~~~~
ID: org_gcr_2018-04-11T09-44-43-05-00_mara:925A5891-AB13-4972-9C95-3B49B7D47885
EL-Get handles things that don't easily fit anywhere else.
Initialize EL-Get.
,----
| (add-to-list 'load-path "~/.emacs.d/el-get/el-get")
|
| (unless (require 'el-get nil 'noerror)
| (with-current-buffer
| (url-retrieve-synchronously
| "https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el")
| (goto-char (point-max))
| (eval-print-last-sexp)))
`----
,----
| (setq help/el-get-packages nil)
`----
Make it really easy to remind yourself and others what EMACS really stands for
(in this case it is fun).
,----
| (add-to-list
| 'el-get-sources
| '(:name emacs-name
| :type http
| :url "http://www.splode.com/~friedman/software/emacs-lisp/src/emacs-name.el"
| :features emacs-name
| :autoloads nil
| :website "http://www.splode.com/"
| :description "emacs acronym expansions"))
| (add-to-list 'help/el-get-packages 'emacs-name)
`----
It is not good to flame people on the Internet. It is good to /know/ what it
is all about, and here is a way to see some examples of the absurdity of it
all.
,----
| (add-to-list
| 'el-get-sources
| '(:name flame
| :type http
| :url "http://www.splode.com/~friedman/software/emacs-lisp/src/flame.el"
| :features flame
| :autoloads nil
| :website "http://www.splode.com/"
| :description "automatic generation of flamage, as if we needed more"))
| (add-to-list 'help/el-get-packages 'flame)
`----
People love horoscopes, so, provide them.
,----
| (add-to-list
| 'el-get-sources
| '(:name horoscope
| :type http
| :url "http://www.splode.com/~friedman/software/emacs-lisp/src/horoscope.el"
| :features horoscope
| :autoloads t
| :website "http://www.splode.com/"
| :description "generate horoscopes"))
| (add-to-list 'help/el-get-packages 'horoscope)
`----
James Parry [1] must always be honored.
,----
| (add-to-list
| 'el-get-sources
| '(:name kibologize
| :type http
| :url "http://www.splode.com/~friedman/software/emacs-lisp/src/kibologize.el"
| :features kibologize
| :autoloads nil
| :website "http://www.splode.com/"
| :description "generate ravings about kibology, in the style of kibo"))
| (add-to-list 'help/el-get-packages 'kibologize)
| (defun help/kibologize-insert ()
| (interactive)
| (let ((current-prefix-arg '(4)))
| (call-interactively 'kibologize)))
`----
You might not always remember your shopping list, but we will remember it for
you… though not necessarily for wholesale.
,----
| (add-to-list
| 'el-get-sources
| '(:name shop
| :type http
| :url "http://www.splode.com/~friedman/software/emacs-lisp/src/shop.el"
| :features shop
| :autoloads nil
| :website "http://www.splode.com/"
| :description "generate random shopping lists"))
| (add-to-list 'help/el-get-packages 'shop)
`----
Do you remember when those great AT&T adds were on television and it changed
your life and bought you a kitten? You will.
,----
| (add-to-list
| 'el-get-sources
| '(:name youwill
| :type http
| :url "http://www.splode.com/~friedman/software/emacs-lisp/src/youwill.el"
| :features youwill
| :autoloads t
| :website "http://www.splode.com/"
| :description "generate meaningless marketing hype"))
| (add-to-list 'help/el-get-packages 'youwill)
| (defun help/youwill-insert ()
| (interactive)
| (let ((current-prefix-arg '(4)))
| (call-interactively 'youwill)))
`----
Ask el-get to make sure that those desired packages are installed.
,----
| (el-get 'sync help/el-get-packages)
`----
1.3 Stand-Alone
~~~~~~~~~~~~~~~
ID: org_gcr_2018-06-12T21-48-52-05-00_mara:D53227C4-5084-4A36-AD92-49B72D3C198C
,----
| (add-to-list 'load-path "~/src/help/lisp")
`----
1.4 Helper
~~~~~~~~~~
ID: org_gcr_2018-04-11T09-44-43-05-00_mara:27CF9494-7866-4AB9-A2AD-254F84224658
Speed up code execution. Review as desired.
,----
| (use-package auto-compile
| :ensure t
| :config
| (auto-compile-on-load-mode)
| (auto-compile-on-save-mode)
| (setq auto-compile-display-buffer 1))
`----
Footnotes
_________
[1] <https://en.wikipedia.org/wiki/James_Parry>