Starter Kit Misc
This is part of the Emacs Starter Kit.
Starter Kit Misc
Things that don't fit anywhere else.
Color Themes
The Color Themes package provides support for changing, saving,
sharing Emacs color themes. To view and apply color themes available
on your system run M-x color-theme-select
. See the color theme
website and EmacsWiki pages for more information.
This following loads color-theme so that it is available by default.
(add-to-list 'load-path (expand-file-name "color-theme" (expand-file-name "src" dotfiles-dir))) (require 'color-theme) (eval-after-load "color-theme" '(progn (color-theme-initialize)))
Once you've selected a preferred color theme it can be installed by adding its function to your initialization. For example
(color-theme-railscasts)
will load the railscasts
color theme when Emacs starts.
Window system stuff
(when window-system (setq frame-title-format '(buffer-file-name "%f" ("%b"))) (tooltip-mode -1) (tool-bar-mode -1) (blink-cursor-mode -1) (mouse-wheel-mode t)) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (prefer-coding-system 'utf-8) (setq visible-bell t echo-keystrokes 0.1 font-lock-maximum-decoration t inhibit-startup-message t transient-mark-mode t color-theme-is-global t delete-by-moving-to-trash t shift-select-mode nil truncate-partial-width-windows nil uniquify-buffer-name-style 'forward whitespace-style '(trailing lines space-before-tab indentation space-after-tab) whitespace-line-column 100 ediff-window-setup-function 'ediff-setup-windows-plain oddmuse-directory (concat dotfiles-dir "oddmuse") xterm-mouse-mode t save-place-file (concat dotfiles-dir "places"))
Nxhtml – utilities for we development
Nxhtml is a large package of utilities for web development and for embedding multiple major modes in a single buffer.
Nxhtml is not installed in this version of the starter-kit by default, for information on installing nxhtml see EmacsWiki-Nxhtml.
Set browser
Set this to whatever browser you use e.g…
;; (setq browse-url-browser-function 'browse-url-firefox) ;; (setq browse-url-browser-function 'browse-default-macosx-browser) ;; (setq browse-url-browser-function 'browse-default-windows-browser) ;; (setq browse-url-browser-function 'browse-default-kde) ;; (setq browse-url-browser-function 'browse-default-epiphany) ;; (setq browse-url-browser-function 'browse-default-w3m) ;; (setq browse-url-browser-function 'browse-url-generic ;; browse-url-generic-program "~/src/conkeror/conkeror")
Transparently open compressed files
(auto-compression-mode t)
Enable syntax highlighting for older Emacsen that have it off
(global-font-lock-mode t)
No Menu Bar
You really don't need this; trust me.
(menu-bar-mode -1)
Save a list of recent files visited.
(recentf-mode 1)
Highlight matching parentheses when the point is on them.
(show-paren-mode 1)
ido mode
ido-mode is like magic pixie dust!
(when (> emacs-major-version 21) (ido-mode t) (setq ido-enable-prefix nil ido-enable-flex-matching t ido-create-new-buffer 'always ido-use-filename-at-point t ido-max-prospects 10))
Other
(set-default 'indent-tabs-mode nil) (set-default 'indicate-empty-lines t) (set-default 'imenu-auto-rescan t) (add-hook 'text-mode-hook 'turn-on-auto-fill) (add-hook 'text-mode-hook 'turn-on-flyspell) (defvar coding-hook nil "Hook that gets run on activation of any programming mode.") (defalias 'yes-or-no-p 'y-or-n-p) (random t) ;; Seed the random-number generator
possible issues/resolutions with flyspell
Most of the solution came from EmacsWiki-FlySpell. Here is one possible fix.
- Emacs set path to aspell
it's possible aspell isn't in your path(setq exec-path (append exec-path '("/opt/local/bin")))
- Emacs specify spelling program
- This didn't work at first, possibly because cocoAspell was
building its dictionary. Now it seems to work fine.
(setq ispell-program-name "aspell" ispell-dictionary "english" ispell-dictionary-alist (let ((default '("[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "english" "--dict-dir" "/Library/Application Support/cocoAspell/aspell6-en-6.0-0") nil iso-8859-1))) `((nil ,@default) ("english" ,@default))))
- This didn't work at first, possibly because cocoAspell was
building its dictionary. Now it seems to work fine.
Hippie expand: at times perhaps too hip
(delete 'try-expand-line hippie-expand-try-functions-list) (delete 'try-expand-list hippie-expand-try-functions-list)
Don't clutter up directories with files~
(setq backup-directory-alist `(("." . ,(expand-file-name (concat dotfiles-dir "backups")))))
Associate modes with file extensions
(add-to-list 'auto-mode-alist '("COMMIT_EDITMSG$" . diff-mode)) (add-to-list 'auto-mode-alist '("\\.css$" . css-mode)) (require 'yaml-mode) (add-to-list 'auto-mode-alist '("\\.ya?ml$" . yaml-mode)) (add-to-list 'auto-mode-alist '("\\.rb$" . ruby-mode)) (add-to-list 'auto-mode-alist '("Rakefile$" . ruby-mode)) (add-to-list 'auto-mode-alist '("\\.js\\(on\\)?$" . js2-mode)) ;; (add-to-list 'auto-mode-alist '("\\.xml$" . nxml-mode))
Default to unified diffs
(setq diff-switches "-u")
Cosmetics
(eval-after-load 'diff-mode '(progn (set-face-foreground 'diff-added "green4") (set-face-foreground 'diff-removed "red3"))) (eval-after-load 'magit '(progn (set-face-foreground 'magit-diff-add "green3") (set-face-foreground 'magit-diff-del "red3")))