]> git.donarmstrong.com Git - emacs.git/blobdiff - .emacs
add with-library code; use it for tinyprocmail
[emacs.git] / .emacs
diff --git a/.emacs b/.emacs
index 672e569c2058286d6fd12a8a2ada2c170a3fabb8..2ab8315cfcc03cba59a72e60420dc46a471e7205 100644 (file)
--- a/.emacs
+++ b/.emacs
@@ -20,8 +20,7 @@
  '(global-auto-revert-mode t)
  '(global-font-lock-mode t nil (font-lock))
  '(global-set-key "\347" t)
- '(iswitchb-mode t)
- '(iswitchb-prompt-newbuffer nil)
+ '(icomplete-mode t)
  '(log-edit-keep-buffer t)
  '(mail-user-agent (quote sendmail-user-agent))
  '(markdown-enable-math t)
 (add-to-list 'load-path '"~/lib/emacs_el/tiny-tools/lisp/other")
 ;;(add-to-list 'Tex-style-path '"~/lib/emacs_el/auctex/")
 
-(setq tinyprocmail--procmail-version "v3.22")
-(add-hook 'tinyprocmail--load-hook 'tinyprocmail-install)
-(require 'tinyprocmail)
+;; From http://www.emacswiki.org/emacs/LoadingLispFiles
+;; execute conditional code when loading libraries
+(defmacro with-library (symbol &rest body)
+  `(when (require ,symbol nil t)
+     ,@body))
+(put 'with-library 'lisp-indent-function 1)
+
+;; load tinyprocmail
+(with-library tinyprocmail
+  (setq tinyprocmail--procmail-version "v3.22")
+  (add-hook 'tinyprocmail--load-hook 'tinyprocmail-install))
 
 (require 'vcl-mode)
 
@@ -287,8 +294,6 @@ Argument DESCRIPTION MIME description."
     (fill-paragraph arg))
   )
 
-;(iswitchb-default-keybindings)
-
 (column-number-mode t)
 (setq-default reftex-plug-into-AUCTeX t)
 
@@ -348,7 +353,7 @@ Argument DESCRIPTION MIME description."
 
 (desktop-load-default)
 (desktop-read)
-'(iswitchb-mode on)
+'(icomplete-mode on)
 (custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
@@ -356,14 +361,6 @@ Argument DESCRIPTION MIME description."
  ;; If there is more than one, they won't work right.
  '(menu ((((type x-toolkit)) (:background "black" :foreground "grey90")))))
 
-(defun ess-change-directory (path)
-  "Set the current working directory to PATH for both *R* and Emacs."
-  (interactive "DDirectory to change to: ")
-
-  (when (file-exists-p path)
-    (ess-command (concat "setwd(\"" path "\")\n"))
-    ;; use file-name-as-directory to ensure it has trailing /
-    (setq default-directory (file-name-as-directory path))))
 
 (put 'upcase-region 'disabled nil)
 (put 'downcase-region 'disabled nil)
@@ -376,23 +373,11 @@ Argument DESCRIPTION MIME description."
 (add-hook 'c-mode-common-hook 'flyspell-prog-mode)
 (add-hook 'cperl-mode-hook 'flyspell-prog-mode)
 (add-hook 'tcl-mode-hook 'flyspell-prog-mode)
-(add-hook 'ess-mode-hook 'flyspell-prog-mode)
 (defun turn-on-flyspell ()
    "Force flyspell-mode on using a positive arg.  For use in hooks."
    (interactive)
    (flyspell-mode 1))
 
-;;; outlining support for ess modes
-(add-hook 'ess-mode-hook
-      '(lambda ()
-         (outline-minor-mode)
-         (setq outline-regexp "\\(^#\\{4,5\\} \\)\\|\\(^[a-zA-Z0-9_\.]+ ?<- ?function\\)")
-         (defun outline-level ()
-           (cond ((looking-at "^##### ") 1)
-             ((looking-at "^#### ") 2)
-             ((looking-at "^[a-zA-Z0-9_\.]+ ?<- ?function(.*{") 3)
-             (t 1000)))
-         ))
 
  ; Outline-minor-mode key map
  (define-prefix-command 'cm-map nil "Outline-")
@@ -559,6 +544,24 @@ Argument DESCRIPTION MIME description."
 
 ; require org mode
 (load "org-mode-configuration")
+; ess configuration
+(load "ess_remote_eval")
+(load "ess_configuration")
+; procmailmode configuration
+(load "procmail_mode")
+
+(load "mode-line-cleaner")
+
+(defadvice ask-user-about-supersession-threat (around ask-user-about-supersession-threat-if-necessary)
+  "Call ask-user-about-supersession-threat only if the buffer is actually obsolete."
+  (if (or (buffer-modified-p)
+          (verify-visited-file-modtime)
+          (< (* 8 1024 1024) (buffer-size))
+          (/= 0 (call-process-region 1 (+ 1 (buffer-size)) "diff" nil nil nil "-q" (buffer-file-name) "-")))
+      ad-do-it
+    (clear-visited-file-modtime)
+    (not-modified)))
+(ad-activate 'ask-user-about-supersession-threat)
 
 ; apparently things like to step on C-;, so we'll use a hack from
 ; http://stackoverflow.com/questions/683425/globally-override-key-binding-in-emacs/5340797#5340797 to fix this