#+BEGIN_SRC emacs-lisp
(setq package-enable-at-startup nil)
(setq package--init-file-ensured t)
+ (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
+ ("melpa" . "https://melpa.org/packages/")
+ ("org" . "http://orgmode.org/elpa/") ))
(eval-and-compile
(setq use-package-verbose (not (bound-and-true-p byte-compile-current-file))))
(mapc #'(lambda (add) (add-to-list 'load-path add))
nil))
load-path))))))
- (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
- ("melpa" . "https://melpa.org/packages/")
- ("org" . "http://orgmode.org/elpa/") ))
(require 'use-package)
(require 'diminish)
(require 'bind-key)
))
#+END_SRC
+** Markdown mode
+#+BEGIN_SRC emacs-lisp
+ (use-package markdown-mode
+ :ensure t
+ :mode (("\\.md\\'" . markdown-mode)
+ ("\\.mdwn\\'" . markdown-mode)
+ ("README\\.md\\'" . gfm-mode)
+ )
+ :config
+ (setq markdown-enable-math t)
+ (setq markdown-follow-wiki-link-on-enter nil)
+ (bind-key "M-." #'markdown-jump markdown-mode-map)
+ (add-hook 'markdown-mode-hook #'flyspell-mode)
+ (add-hook 'markdown-mode-hook #'outline-minor-mode)
+ (bind-key "C-<tab>" #'outline-cycle markdown-mode-map)
+ )
+
+#+END_SRC
+** SQL mode
+#+BEGIN_SRC emacs-lisp
+ ; load sql-indent when sql is loaded
+(use-package sql
+ :mode (("\\.sql\\'" . sql-mode))
+ :config
+ (require sql-indent))
+#+END_SRC
+** Ediff
+#+BEGIN_SRC emacs-lisp
+ (use-package ediff
+ :commands ediff ediff3
+ :ensure f
+ :config
+ ;; ediff configuration
+ ;; don't use the multi-window configuration
+ (setq ediff-window-setup-function 'ediff-setup-windows-plain)
+ )
+#+END_SRC
+** VCL --editing varnish configuration files
+#+BEGIN_SRC emacs-lisp
+ (use-package vcl-mode
+ :ensure t
+ :mode "\\.vcl\\'"
+ )
+
+#+END_SRC
** Helm
#+BEGIN_SRC emacs-lisp
(defun malb/helm-omni (&rest arg)
** Tramp
#+BEGIN_SRC emacs-lisp
- (add-to-list 'tramp-methods '("vcsh"
- (tramp-login-program "vcsh")
- (tramp-login-args
- (("enter")
- ("%h")))
- (tramp-remote-shell "/bin/sh")
- (tramp-remote-shell-args
- ("-c"))))
+ (use-package tramp
+ :config
+ (add-to-list 'tramp-methods '("vcsh"
+ (tramp-login-program "vcsh")
+ (tramp-login-args
+ (("enter")
+ ("%h")))
+ (tramp-remote-shell "/bin/sh")
+ (tramp-remote-shell-args
+ ("-c")))))
#+END_SRC
** Reftex
#+BEGIN_SRC emacs-lisp
(use-package ess
:ensure t
:commands R
- :mode "\\.R\\'"
+ :mode ("\\.R\\'" . ess-r-mode)
:bind (:map ess-mode-map
("C-c C-R" . dla/ess-region-remote-eval))
:config
(defun ess-change-directory (path)
"Set the current working directory to PATH for both *R* and Emacs."
- (interactive "DDirectory to change to: ")
+ (interactive "Directory to change to: ")
(when (file-exists-p path)
(ess-command (concat "setwd(\"" path "\")\n"))
** Spamassassin Mode
#+BEGIN_SRC emacs-lisp
(use-package spamassassin-mode
- :defer
+ :commands spamassassin-mode
:ensure f
)
#+END_SRC
** Abbrev Mode
#+BEGIN_SRC emacs-lisp
(use-package abbrev
- :diminish abbrev
+ :diminish abbrev-mode
:config
;; load abbreviations from
(setq abbrev-file-name
#+BEGIN_SRC emacs-lisp
(use-package message
:ensure f
- :diminish "β"
- :mode "muttng-[a-z0-9]+-[0-9]+-"
- :mode "mutt-[a-z0-9]+-[0-9]+-"
+ :diminish (message "β")
+ :mode ("muttng-[a-z0-9]+-[0-9]+-" . message-mode)
+ :mode ("mutt-[a-z0-9]+-[0-9]+-" . message-mode)
:hook 'my/message-mode-settings
:hook 'turn-on-flyspell
:bind (:map message-mode-map
- ("C-c C-a" . my/post-attach-file))
- :config
+ ("C-c C-a" . my/post-attach-file))
+ :delight (message-mode "β")
+ :config
(defun my/message-mode-settings ()
(font-lock-add-keywords nil
- '(("^[ \t]*>[ \t]*>[ \t]*>.*$"
- (0 'message-multiply-quoted-text-face))
- ("^[ \t]*>[ \t]*>.*$"
- (0 'message-double-quoted-text-face))))
+ '(("^[ \t]*>[ \t]*>[ \t]*>.*$"
+ (0 'message-multiply-quoted-text-face))
+ ("^[ \t]*>[ \t]*>.*$"
+ (0 'message-double-quoted-text-face))))
)
(defun my/post-attach-file ()
"Prompt for an attachment."
(interactive)
- (let ((file (read-file-name "Attach file: " nil nil t nil))
- (description (string-read "Description: ")))
- (my/header-attach-file file description)))
+ (let ((file (read-file-name "Attach file: " nil nil t nil)))
+ (my/header-attach-file file "")))
(defun my/header-attach-file (file description)
"Attach a FILE to the current message (works with Mutt).
Argument DESCRIPTION MIME description."
(interactive "fAttach file: \nsDescription: ")
(when (> (length file) 0)
- (save-excursion
- (save-match-data
- (save-restriction
- (widen)
- (goto-char (point-min))
- (search-forward-regexp "^$")
- (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " "
- description "\n"))
- (message (concat "Attached '" file "'."))
- (setq post-has-attachment t))))))
+ (save-excursion
+ (save-match-data
+ (save-restriction
+ (widen)
+ (goto-char (point-min))
+ (search-forward-regexp "^$")
+ (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " "
+ description "\n"))
+ (message (concat "Attached '" file "'."))
+ (setq post-has-attachment t))))))
(setq mail-yank-prefix "> ")
)
* Base emacs
** Reverting buffers
#+BEGIN_SRC emacs-lisp
- (setq global-auto-revert-non-file-buffers t
- global-auto-revert-ignore-modes '(pdf-view-mode)
- auto-revert-verbose nil)
- (global-auto-revert-mode 1)
+ (use-package autorevert
+ :diminish auto-revert-mode
+ :config
+ (setq global-auto-revert-non-file-buffers t
+ global-auto-revert-ignore-modes '(pdf-view-mode)
+ auto-revert-verbose nil)
+ (global-auto-revert-mode 1))
#+END_SRC
* Org Mode
** Use-package and load things
#+BEGIN_SRC emacs-lisp
(use-package org
+ :delight (org-mode "ΓΈ")
:config
#+END_SRC
(fset 'perl-mode 'cperl-mode)
;;(load-file "cperl-mode.el")
- (require 'vcl-mode)
-
- (global-set-key "\C-xp" 'server-edit)
-
- (setq-default auto-mode-alist (cons '("\.wml$" .
- (lambda () (html-mode) (auto-fill-mode)))
- auto-mode-alist))
-
-
- ; use markdown mode for mdwn files
- (add-to-list 'auto-mode-alist '("\\.mdwn$" . markdown-mode))
- (add-to-list 'auto-mode-alist '("\\.md$" . markdown-mode))
-
-
;; tramp configuration
(setq tramp-use-ssh-controlmaster-options nil)
(column-number-mode t)
- (desktop-save-mode)
- (desktop-read)
+#+END_SRC
+** Desktop-save-mode
+If the envvar EMACS_SERVER_NAME is set, consider this a separate
+emacs, and use a different desktop file to restore history
+#+BEGIN_SRC emacs-lisp
+ (use-package emacs
+ :demand
+ :config
+ (setq desktop-base-file-name
+ (convert-standard-filename
+ (concat ".emacs"
+ (or (getenv "EMACS_SERVER_NAME")
+ "")
+ ".desktop")
+ ))
+ (setq desktop-base-lock-name
+ (convert-standard-filename
+ (concat desktop-base-file-name
+ ".lock")))
+ (setq desktop-auto-save-timeout 60)
+ (setq desktop-restore-eager 5)
+ (setq desktop-lazy-verbose nil)
+ (desktop-save-mode 1)
+ ; (desktop-read)
+ )
+#+END_SRC
+** Misc (Uncharacterized)
+#+BEGIN_SRC emacs-lisp
'(icomplete-mode on)
(custom-set-faces
;; custom-set-faces was added by Custom.
(define-key cm-map "f" 'outline-forward-same-level) ; Forward - same level
(define-key cm-map "b" 'outline-backward-same-level) ; Backward - same level
(global-set-key "\M-o" cm-map)
-
- ; ediff configuration
- ; don't use the multi-window configuration
- (setq ediff-window-setup-function 'ediff-setup-windows-plain)
-
- ; fix up css mode to not be silly
- ; from http://www.stokebloke.com/wordpress/2008/03/21/css-mode-indent-buffer-fix/
- (setq cssm-indent-level 4)
- (setq cssm-newline-before-closing-bracket t)
- (setq cssm-indent-function #'cssm-c-style-indenter)
- (setq cssm-mirror-mode nil)
-
- (require 'multi-web-mode)
- (setq mweb-default-major-mode 'html-mode)
- (setq mweb-tags '((php-mode "<\\?php\\|<\\? \\|<\\?=" "\\?>")
- (js-mode "<script +\\(type=\"text/javascript\"\\|language=\"javascript\"\\)[^>]*>" "</script>")
- (css-mode "<style +type=\"text/css\"[^>]*>" "</style>")))
- (setq mweb-filename-extensions '("php" "htm" "html" "ctp" "phtml" "php4" "php5"))
- (multi-web-global-mode 1)
-
- ; load sql-indent when sql is loaded
- (eval-after-load "sql"
- '(load-library "sql-indent"))
-
; fix up tmux xterm keys
; stolen from http://unix.stackexchange.com/questions/24414/shift-arrow-not-working-in-emacs-within-tmux
(defun fix-up-tmux-keys ()
(ad-activate 'ask-user-about-supersession-threat)
#+END_SRC
-* Server
+* Start Server
#+BEGIN_SRC emacs-lisp
- (unless (server-running-p)
- (server-start))
+ (use-package server
+ :config
+ (setq server-name
+ (or (getenv "EMACS_SERVER_NAME")
+ "server"))
+ (unless (server-running-p)
+ (global-set-key "\C-xp" 'server-edit)
+ (server-start)))
#+END_SRC