updates
[emacs.git] / .emacs.d / config / emacs.org
index dee1126..61d5706 100644 (file)
@@ -538,6 +538,8 @@ In this day and age, UTF-8 is the way to go.
 (prefer-coding-system 'utf-8)
 (set-charset-priority 'unicode)
 (setq default-process-coding-system '(utf-8-unix . utf-8-unix))
+(when (display-graphic-p)
+  (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)))
 #+END_SRC
 
 *** Hilight matching parentheses
@@ -1092,6 +1094,7 @@ than electric-indent-mode.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package aggressive-indent
   :ensure aggressive-indent
+  :commands (aggressive-indent-mode global-aggressive-indent-mode)
   :config
   (progn
     (global-aggressive-indent-mode 0)
@@ -1107,7 +1110,8 @@ information in the mode-line in various search modes.
 (use-package anzu
   :ensure anzu
   :diminish anzu-mode
-  :init
+  :defer t
+  :idle
   (progn
     (global-anzu-mode 1))
   :config
@@ -1148,12 +1152,8 @@ already had typed.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package auto-complete-config
   :ensure auto-complete
-  :init
-  (progn
-    (use-package pos-tip
-      :ensure t)
-    (ac-config-default)
-    )
+  :idle
+  (ac-config-default)
   :config
   (progn
     ;; hook AC into completion-at-point
@@ -1168,6 +1168,9 @@ already had typed.
     (defun sanityinc/dabbrev-friend-buffer (other-buffer)
       (< (buffer-size other-buffer) (* 1 1024 1024)))
 
+    (use-package pos-tip
+      :ensure t)
+
     ;; custom keybindings to use tab, enter and up and down arrows
     (bind-key "\t" 'ac-expand ac-complete-mode-map)
     (bind-key "\r" 'ac-complete ac-complete-mode-map)
@@ -1235,7 +1238,7 @@ with it. Not to have to revert buffers myself
 (use-package autorevert
   :commands auto-revert-mode
   :diminish auto-revert-mode
-  :init
+  :idle
   (progn
     (setq global-auto-revert-mode t)
     (setq global-auto-revert-non-file-buffers t)
@@ -1320,32 +1323,28 @@ are saved automatically when they are killed"
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package cal
   :commands (cal/insert)
-  :bind ("C-c c" . cal/insert))
-#+END_SRC
-
-Weeks start on Monday, not sunday.
-#+BEGIN_SRC emacs-lisp :tangle yes
-(setq calendar-week-start-day 1)
-#+END_SRC
+  :bind ("C-c c" . cal/insert)
+  :config
+  (progn
+    ; Weeks start on Monday, not sunday.
+    (setq calendar-week-start-day 1)
+
+    ; Display ISO week numbers in Calendar Mode
+    (copy-face font-lock-constant-face 'calendar-iso-week-face)
+    (set-face-attribute 'calendar-iso-week-face nil :height 0.7)
+    (setq calendar-intermonth-text
+          '(propertize
+            (format "%2d"
+                    (car
+                     (calendar-iso-from-absolute
+                      (calendar-absolute-from-gregorian (list month day year)))))
+            'font-lock-face 'calendar-iso-week-face))
+    (copy-face 'default 'calendar-iso-week-header-face)
+    (set-face-attribute 'calendar-iso-week-header-face nil :height 0.7)
+    (setq calendar-intermonth-header
+          (propertize "Wk"                  ; or e.g. "KW" in Germany
+                      'font-lock-face 'calendar-iso-week-header-face))))
 
-Display ISO week numbers in Calendar Mode
-#+BEGIN_SRC emacs-lisp :tangle yes
-(copy-face font-lock-constant-face 'calendar-iso-week-face)
-(set-face-attribute 'calendar-iso-week-face nil
-                    :height 0.7)
-(setq calendar-intermonth-text
-      '(propertize
-        (format "%2d"
-                (car
-                 (calendar-iso-from-absolute
-                  (calendar-absolute-from-gregorian (list month day year)))))
-        'font-lock-face 'calendar-iso-week-face))
-(copy-face 'default 'calendar-iso-week-header-face)
-(set-face-attribute 'calendar-iso-week-header-face nil
-                    :height 0.7)
-(setq calendar-intermonth-header
-      (propertize "Wk"                  ; or e.g. "KW" in Germany
-                  'font-lock-face 'calendar-iso-week-header-face))
 #+END_SRC
 
 ** crontab-mode
@@ -1425,6 +1424,7 @@ movement keys.
 (use-package dired
   :commands (dired dired-other-window dired-other-frame dired-noselect
                    dired-mode dired-jump)
+  :defines (dired-omit-regexp-orig)
   :init
   (progn
     (setq diredp-hide-details-initially-flag nil))
@@ -1581,6 +1581,7 @@ Discover key bindings and their meaning for the current Emacs major mode.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package discover-my-major
   :ensure discover-my-major
+  :commands discover-my-major
   :bind ("C-h C-m" . discover-my-major))
 #+END_SRC
 ** easypg
@@ -1630,8 +1631,7 @@ ediff - don't start another frame
   :config (progn
             (setq ediff-window-setup-function 'ediff-setup-windows-plain)
             (setq ediff-split-window-function 'split-window-horizontally)
-            (bind-key "j" 'ediff-next-difference ediff-mode-map)
-            (bind-key "k" 'ediff-previous-difference ediff-mode-map))
+            )
 )
 #+END_SRC
 ** emms
@@ -1809,7 +1809,8 @@ Proper whitespace handling
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package expand-region
   :ensure expand-region
-  :bind ("C-M-+" . er/expand-region))
+  :bind ("C-M-+" . er/expand-region)
+  :commands er/expand-region)
 #+END_SRC
 ** filladapt
 [2013-05-02 Thu 00:04]
@@ -1819,7 +1820,7 @@ bullet points like “1.” or “*”.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package filladapt
   :diminish filladapt-mode
-  :init
+  :idle
   (setq-default filladapt-mode t))
 #+END_SRC
 ** flycheck
@@ -1833,7 +1834,7 @@ understand for me.
   :diminish flycheck-mode
   :bind (("M-n" . next-error)
          ("M-p" . previous-error))
-  :init
+  :idle
   (progn
     (add-hook 'find-file-hook
           (lambda ()
@@ -1886,7 +1887,7 @@ And I want to have it everywhere.
          ("C-x s" . git-gutter+-stage-hunks)
          ("C-x c" . git-gutter+-commit)
          )
-  :init
+  :idle
   (progn
     (setq git-gutter+-disabled-modes '(org-mode))
     (global-git-gutter+-mode 1))
@@ -1921,7 +1922,8 @@ useful when you want to know why this line was changed.
 Browse historic versions of a file with p (previous) and n (next).
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package git-timemachine
-  :ensure git-timemachine)
+  :ensure git-timemachine
+  :commands git-timemachine)
 #+END_SRC
 ** gnus
 Most of my gnus config is in an own file, [[file:gnus.org][gnus.org]], here I only have
@@ -2004,6 +2006,7 @@ tries to expand it in various ways.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package hippie-exp
   :bind ("M-/" . hippie-expand)
+  :commands hippie-expand
   :config
   (progn
     (setq hippie-expand-try-functions-list '(try-expand-dabbrev
@@ -2112,8 +2115,19 @@ _l_ linum-mode:         % 4`linum-mode     _k_ linum relative:    %`linum-format
          ("<XF86WebCam>" . ibuffer)
          )
   :commands (ibuffer)
-  :init
+  :defines (ibuffer-filtering-alist
+            ibuffer-filter-groups ibuffer-compile-formats ibuffer-git-column-length
+            ibuffer-show-empty-filter-groups ibuffer-saved-filter-groups)
+  :config
   (progn
+    (defvar my-ibufffer-separator " • ")
+    (setq ibuffer-filter-group-name-face 'variable-pitch
+          ibuffer-use-header-line t
+          ibuffer-old-time 12)
+    (unbind-key "M-o" ibuffer-mode-map)
+    (bind-key "s" 'isearch-forward-regexp ibuffer-mode-map)
+    (bind-key "." 'ibuffer-invert-sorting ibuffer-mode-map)
+
     (use-package ibuffer-vc
       :ensure t
       :commands
@@ -2130,16 +2144,7 @@ _l_ linum-mode:         % 4`linum-mode     _k_ linum relative:    %`linum-format
         ad-do-it
         (ibuffer-update nil t)
         (unless (string= recent-buffer-name "*Ibuffer*")
-          (ibuffer-jump-to-buffer recent-buffer-name)))))
-  :config
-  (progn
-    (defvar my-ibufffer-separator " • ")
-    (setq ibuffer-filter-group-name-face 'variable-pitch
-          ibuffer-use-header-line t
-          ibuffer-old-time 12)
-    (unbind-key "M-o" ibuffer-mode-map)
-    (bind-key "s" 'isearch-forward-regexp ibuffer-mode-map)
-    (bind-key "." 'ibuffer-invert-sorting ibuffer-mode-map)
+          (ibuffer-jump-to-buffer recent-buffer-name))))
 
     (defun ibuffer-magit-status ()
       (interactive)
@@ -2426,7 +2431,7 @@ list of matching commands is echoed
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package info
   :bind ("C-h C-i" . info-lookup-symbol)
-
+  :commands info-lookup-symbol
   :config
   (progn
     ;; (defadvice info-setup (after load-info+ activate)
@@ -2464,14 +2469,19 @@ gnus, so we have a list of modes where we don't want to see it.
         ad-do-it))
 
     (ad-activate 'linum-on)
+
     (use-package linum-relative
-      :ensure linum-relative)
-    )
+      :ensure linum-relative
+      :init
+      (progn
+        (setq linum-format 'dynamic)
+        )))
   :init
   (global-linum-mode 1))
 #+END_SRC
 
 ** lisp editing stuff
+
 [2013-04-21 So 21:00]
 I'm not doing much of it, except for my emacs and gnus configs, but
 then I like it nice too...
@@ -2509,7 +2519,6 @@ then I like it nice too...
 (after "eldoc"
   '(diminish 'eldoc-mode))
 #+END_SRC
-
 ** magit
 [2013-04-21 So 20:48]
 magit is a mode for interacting with git.
@@ -2530,13 +2539,16 @@ magit is a mode for interacting with git.
                             )
           magit-repo-dirs-depth 4
           magit-log-auto-more t)
+
     (use-package magit-blame
-      :commands magit-blame-mode)
+      :commands magit-blame-mode
+      :defer t)
 
     (use-package magit-svn
       :ensure magit-svn
       :commands (magit-svn-mode
-                 turn-on-magit-svn))
+                 turn-on-magit-svn)
+      :defer t)
 
     (add-hook 'magit-mode-hook 'hl-line-mode)
     (defun magit-status-with-prefix ()
@@ -2588,8 +2600,10 @@ magit is a mode for interacting with git.
 #+END_SRC
 ** message
 #+BEGIN_SRC emacs-lisp :tangle yes
-(require 'message)
-(setq message-kill-buffer-on-exit t)
+(use-package message
+  :idle
+  (progn
+    (setq message-kill-buffer-on-exit t)))
 #+END_SRC
 ** mingus
 [[https://github.com/pft/mingus][Mingus]] is a nice interface to mpd, the Music Player Daemon.
@@ -2615,6 +2629,7 @@ Edit minibuffer in a full (text-mode) buffer by pressing *M-C-e*.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package miniedit
   :ensure miniedit
+  :commands miniedit
   :config
   (progn
     (bind-key "M-C-e" 'miniedit minibuffer-local-map)
@@ -2629,7 +2644,7 @@ Edit minibuffer in a full (text-mode) buffer by pressing *M-C-e*.
 [2013-05-21 Tue 23:39]
 MMM Mode is a minor mode for Emacs that allows Multiple Major Modes to
 coexist in one buffer.
-#+BEGIN_SRC emacs-lisp :tangle yes
+#+BEGIN_SRC emacs-lisp :tangle no
 (use-package mmm-auto
   :ensure mmm-mode
   :init
@@ -2668,7 +2683,6 @@ coexist in one buffer.
 ** mo-git-blame
 This is [[https://github.com/mbunkus/mo-git-blame][mo-git-blame -- An interactive, iterative 'git blame' mode for
 Emacs]].
-
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package mo-git-blame
   :ensure mo-git-blame
@@ -2691,6 +2705,10 @@ Use multiple cursors mode. See [[http://emacsrocks.com/e13.html][Emacs Rocks! mu
              mc/create-fake-cursor-at-point
              mc/pop-state-from-overlay
              mc/maybe-multiple-cursors-mode)
+  :defines (multiple-cursors-mode
+            mc--read-char
+            mc--read-quoted-char
+            rectangular-region-mode)
   :bind (("C-S-c C-S-c" . mc/edit-lines)
          ("C->"     . mc/mark-next-like-this)
          ("C-<"     . mc/mark-previous-like-this)
@@ -2716,7 +2734,7 @@ A emacs tree plugin
   :commands (neotree-find
              neotree-toggle
              neotree)
-  :init
+  :idle
   (progn
     (setq neo-smart-open t))
   :config
@@ -3816,7 +3834,7 @@ up here to be used.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package cperl-mode
   :commands cperl-mode
-  :init
+  :idle
   (progn
     (defalias 'perl-mode 'cperl-mode)
     (add-auto-mode 'cperl-mode "\\.\\([pP][Llm]\\|al\\)\\'")
@@ -3863,15 +3881,19 @@ up here to be used.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package puppet-mode
   :mode ("\\.pp\\'" . puppet-mode)
-  :config
-  (use-package puppet-ext
-  :init
+  :commands puppet-mode
+  :idle
   (progn
-    (bind-key "C-x ?" 'puppet-set-anchor puppet-mode-map)
-    (bind-key "C-c C-r" 'puppet-create-require puppet-mode-map)
     (defun my-puppet-mode-hook ()
       (setq require-final-newline nil))
-    (add-hook 'puppet-mode-hook 'my-puppet-mode-hook))))
+    (add-hook 'puppet-mode-hook 'my-puppet-mode-hook))
+  :config
+  (progn
+    (use-package puppet-ext
+      :init
+      (progn
+        (bind-key "C-x ?" 'puppet-set-anchor puppet-mode-map)
+        (bind-key "C-c C-r" 'puppet-create-require puppet-mode-map)))))
 #+END_SRC
 
 ** python
@@ -4036,6 +4058,7 @@ and tell which statements are at the same depth.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package rainbow-delimiters
   :ensure rainbow-delimiters
+  :commands rainbow-delimiters-mode
   :init
   (add-hook 'prog-mode-hook #'rainbow-delimiters-mode))
 #+END_SRC
@@ -4043,6 +4066,7 @@ and tell which statements are at the same depth.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package rainbow-mode
   :ensure rainbow-mode
+  :defer t
   :diminish rainbow-mode)
 #+END_SRC
 
@@ -4050,7 +4074,7 @@ and tell which statements are at the same depth.
 Saner regex syntax
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package re-builder
-  :command re-builder
+  :commands re-builder
   :defer t
   :config
   (setq reb-re-syntax 'string))
@@ -4295,6 +4319,15 @@ Settings for shell scripts
 (use-package sh-toggle
   :bind ("C-. C-z" . shell-toggle))
 #+END_SRC
+** smartscan
+[2015-02-24 Tue 23:35]
+Make =M-n= and =M-p= go forward/backword to the symbol at point.
+#+BEGIN_SRC emacs-lisp :tangle yes
+(use-package smartscan
+  :ensure smartscan
+  :defer t
+  :idle (global-smartscan-mode t))
+#+END_SRC
 ** timestamp
 By default, Emacs can update the time stamp for the following two
 formats if one exists in the first 8 lines of the file.
@@ -4303,7 +4336,7 @@ formats if one exists in the first 8 lines of the file.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package time-stamp
   :commands time-stamp
-  :init
+  :idle
   (progn
     (add-hook 'write-file-hooks 'time-stamp)
     (setq time-stamp-active t))
@@ -4374,26 +4407,23 @@ keeping the full power of emacs undo/redo.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package undo-tree
   :ensure undo-tree
+  :diminish undo-tree-mode
   :init
-  (global-undo-tree-mode)
-  :diminish undo-tree-mode)
-#+END_SRC
-
-Additionally I would like to keep the region active should I undo
-while I have one.
-
-#+BEGIN_SRC emacs-lisp :tangle yes
-;; Keep region when undoing in region
-(defadvice undo-tree-undo (around keep-region activate)
-  (if (use-region-p)
-      (let ((m (set-marker (make-marker) (mark)))
-            (p (set-marker (make-marker) (point))))
-        ad-do-it
-        (goto-char p)
-        (set-mark m)
-        (set-marker p nil)
-        (set-marker m nil))
-    ad-do-it))
+  (progn
+    (global-undo-tree-mode)
+    (setq undo-tree-visualizer-timestamps t)
+    (setq undo-tree-visualizer-diff t)
+    ;; Keep region when undoing in region
+    (defadvice undo-tree-undo (around keep-region activate)
+      (if (use-region-p)
+          (let ((m (set-marker (make-marker) (mark)))
+                (p (set-marker (make-marker) (point))))
+            ad-do-it
+            (goto-char p)
+            (set-mark m)
+            (set-marker p nil)
+            (set-marker m nil))
+        ad-do-it))))
 #+END_SRC
 ** uniquify
 Always have unique buffernames. See [[http://www.gnu.org/software/emacs/manual/html_node/emacs/Uniquify.html][Uniquify - GNU Emacs Manual]]
@@ -4435,10 +4465,22 @@ your operation actually changed in the buffer.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package volatile-highlights
   :ensure volatile-highlights
-  :init
+  :idle
   (volatile-highlights-mode t)
   :diminish volatile-highlights-mode)
 #+END_SRC
+** winner mode - undo and redo window configuration
+[2015-02-24 Tue 23:11]
+=winner-mode= lets you use =C-c <left>= and =C-c <right>= to switch between
+window configurations. This is handy when something has popped up a
+buffer that you want to look at briefly before returning to whatever
+you were working on. When you're done, press =C-c <left>=.
+#+BEGIN_SRC emacs-lisp :tangle yes
+(use-package winner
+  :ensure t
+  :defer t
+  :idle (winner-mode 1))
+#+END_SRC
 ** writegood
 This highlights some /weaselwords/, a mode to /aid in finding common
 writing problems/...
@@ -4455,6 +4497,7 @@ writing problems/...
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package web-mode
   :ensure web-mode
+  :defer t
   :mode (("\\.phtml\\'" . web-mode)
          ("\\.tpl\\.php\\'" . web-mode)
          ("\\.jsp\\'" . web-mode)
@@ -4476,8 +4519,14 @@ writing problems/...
                 (setq web-mode-enable-current-element-highlight t))))
   :config
   (progn
+    (setq web-mode-enable-current-element-highlight t)
+    (setq web-mode-ac-sources-alist
+          '(("css" . (ac-source-css-property))
+            ("html" . (ac-source-words-in-buffer ac-source-abbrev))))
     (use-package impatient-mode
-      :ensure impatient-mode))
+      :ensure impatient-mode
+      :defer t
+      :commands impatient-mode))
   )
 
 #+END_SRC
@@ -4499,7 +4548,6 @@ readable/editable without getting a big headache.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package yaml-mode
   :ensure yaml-mode
-
   :mode ("\\.ya?ml\\'" . yaml-mode)
   :config
     (bind-key "C-m" 'newline-and-indent yaml-mode-map ))
@@ -4513,12 +4561,17 @@ whatever the snippet holds.
 (setq yas-snippet-dirs (expand-file-name "yasnippet/snippets" jj-elisp-dir))
 (use-package yasnippet
   :ensure yasnippet
-  :init
+  :defer t
+  :diminish yas-minor-mode
+  :commands yas-global-mode
+  :idle
   (progn
-    (yas-global-mode 1)
     ;; Integrate hippie-expand with ya-snippet
     (add-to-list 'hippie-expand-try-functions-list
                  'yas-hippie-try-expand)
+    (yas-global-mode 1)
+    (setq yas-expand-only-for-last-commands '(self-insert-command))
+    (bind-key "\t" 'hippie-expand yas-minor-mode-map)
     ))
 #+END_SRC
 * Thats it