= HTML tags.
+ Luckily it's trivial to teach it. It does know about == HTML
+ tags, and basically I just want == tags to be treated almost as
+ == tags, so to do that we just have to define a =shr-tag-code=
+ function. I've copied the =shr-tag-pre= function and removed the calls
+ to =ensure-newline=, because == tags are inline tags.
+
+ In order to remain a little future-proof, it should only be done if
+ it doesn't already exist.
+
+ *Note:* See my [[Vacuous defvar][note]] on vacuous defvar for this use of =defvar=.
+
+ *Note:* See my [[Function declarations][note]] on function declarations about the use of
+ =declare-function=.
+
+ #+BEGIN_SRC emacs-lisp
+ (defvar shr-folding-mode)
+ (declare-function shr-indent "shr")
+ (declare-function shr-generic "shr")
+
+ (with-eval-after-load 'shr
+ (unless (fboundp 'shr-tag-code)
+ (defun shr-tag-code (cont)
+ (let ((shr-folding-mode 'none))
+ (shr-indent)
+ (shr-generic cont)))))
+ #+END_SRC
+
+* Use scheme-mode for scsh interpreted files
+
+ Set the major mode for files interpreted by scsh (for example, by
+ having ~#!/usr/local/bin/scsh~ at the top) to use =scheme-mode=.
+
+ #+BEGIN_SRC emacs-lisp
+ (add-to-list 'interpreter-mode-alist '("scsh" . scheme-mode))
+ #+END_SRC
+
+* Set default scheme implementation
+
+ Set the default implementation for geiser to guile so it doesn't ask
+ which implementation to use every time.
+
+ #+BEGIN_SRC emacs-lisp
+ (defvar geiser-default-implementation)
+
+ (with-eval-after-load 'geiser
+ (setq geiser-default-implementation 'guile))
+ #+END_SRC
+
+* Setup eww-lnum
+
+ As recommended in the [[https://github.com/m00natic/eww-lnum][README]], set the keys in the =eww-mode-map=.
+
+ #+BEGIN_SRC emacs-lisp
+ (defvar eww-mode-map)
+
+ (with-eval-after-load 'eww
+ (define-key eww-mode-map "f" 'eww-lnum-follow)
+ (define-key eww-mode-map "F" 'eww-lnum-universal))
+ #+END_SRC
+
+* Don't compile scss files
+
+ By default =scss-mode= tries compiling a file each time it's saved. I
+ don't have SCSS properly installed globally so this always fails,
+ highly annoying.
+
+ #+BEGIN_SRC emacs-lisp
+ (defvar scss-compile-at-save)
+
+ (with-eval-after-load 'scss-mode
+ (setq scss-compile-at-save nil))
+ #+END_SRC
+
+* Change listings in dired
+
+ The number of bytes a file is doesn't usually tell me much when it's
+ something like ~292837~. I prefer seeing just how many Kb or Mb a
+ certain file is. I also don't need to see the ~.~ and ~..~ directories
+ when I insert directories into the current dired buffer, as there is
+ a great chance that the current and parent directory are already
+ shown in the buffer.
+
+ #+BEGIN_SRC emacs-lisp
+ (defvar dired-subdir-switches)
+
+ (with-eval-after-load 'dired
+ (setq dired-listing-switches "-alh"
+ dired-subdir-switches "-Alh"))
+ #+END_SRC
+
+* Load custom file
+
+ I don't really use the Emacs customization interface much, but I
+ have used it as a kind-of persistent datastore, specifically for
+ desktop-registry[fn:9]. I do very much like the idea of it, it's a
+ very cool thing to have. I also use ~custom.el~ for storing some
+ things that I really can't store in a public viewing location like
+ this file or the git repository it lives in.
+
+ #+BEGIN_SRC emacs-lisp
+ (setq custom-file "~/.emacs.d/custom.el")
+ (load custom-file)
+ #+END_SRC
+
+* Notes
+
+ Here are some random or somewhat general notes about things you may
+ run into when looking through my Emacs init.
+
+** Vacuous defvar
+
+ A =defvar= without a value like =(defvar some-variable)= tells the
+ byte-compiler that the variable will appear, but doesn't give it a
+ value. It should only count for the file where it is used and once
+ the file with the /actual/ =defvar= is loaded it will be populated with
+ its value, contrary to what would happen if you'd given it a value
+ before loading its original file.
+
+** Function declarations
+
+ The function =declare-function= tells the byte-compiler where to find
+ a certain function. This keeps the byte-compiler from complaining
+ about certain functions possibly not being defined at run-time.
+
+* Footnotes
+
+[fn:1] This runs =tmm-menubar=, which lets you navigate the menubar in a
+ text-driven way. I don't ever use it because I know what all my
+ favorite functions are called, but it seems a great deal more
+ efficient than having to click on everything.
+
+[fn:2] https://github.com/sabof/svg-mode-line-themes
+
+[fn:3] It works fine for me with something like jabber chats and the
+ like.
+
+[fn:4] I like to program in Lisp, parentheses are important to me!
+ Parentheses should be nice and round, not almost like bars!
+
+[fn:5] https://github.com/belluzj/fantasque-sans
+
+[fn:6] Used to be Cosmic Sans Neue Mono, the name changed because
+ people misread it as "Comic" (me included, which was the original
+ reason I checked it out, for laughs) and hate Comic Sans, and also
+ because there was already a Cosmic Sans font as well, which could
+ cause confusion.
+
+[fn:7] http://stackoverflow.com/questions/22175214/automatically-switch-language-in-gnus-depending-on-recipient
+
+[fn:8] I still use 2 spaces for some languages, like HTML.
+
+[fn:9] http://code.ryuslash.org/desktop-registry/about/
--
cgit v1.2.3-54-g00ecf