Merge branch 'master' of git.ganneff.de:emacs
[emacs.git] / .emacs.d / config / emacs.org
index 794d6a5..99f4736 100644 (file)
@@ -254,7 +254,7 @@ shell. Consistent look is great.
 Make the fringe (gutter) smaller, the argument is a width in pixels (the default is 8)
 #+BEGIN_SRC emacs-lisp :tangle yes
 (if (fboundp 'fringe-mode)
-    (fringe-mode 4))
+    (fringe-mode 8))
 #+END_SRC
 
 A bit more spacing between buffer lines
@@ -759,6 +759,11 @@ buffers path.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (bind-key "H-t" 'jj-open-shell)
 #+END_SRC
+
+Align code
+#+BEGIN_SRC emacs-lisp :tangle yes
+(bind-key "M-[" 'align-code)
+#+END_SRC
 **** Overwrite mode
 Usually you can press the *Ins*ert key, to get into overwrite mode. I
 don't like that, have broken much with it and so just forbid it by
@@ -769,34 +774,6 @@ disabling that.
 #+END_SRC
 
 ** Miscellaneous stuff
-Emacs should keep backup copies of files I edit, but I do not want them
-to clutter up the filesystem everywhere. So I put them into one defined
-place, backup-directory, which even contains my username (for systems
-where =temporary-file-directory= is not inside my home).
-#+BEGIN_SRC emacs-lisp :tangle yes
-(setq backup-directory-alist `(("." . ,jj-backup-directory)))
-(setq auto-save-file-name-transforms `((".*" ,jj-backup-directory t)))
-
-(setq version-control t)     ;; Use version numbers for backups
-(setq kept-new-versions 10)  ;; Number of newest versions to keep
-(setq kept-old-versions 2)   ;; Number of oldest versions to keep
-(setq delete-old-versions t) ;; Ask to delete excess backup versions?
-
-(add-hook 'before-save-hook  'force-backup-of-buffer)
-
-(setq backup-by-copying-when-linked t) ;; Copy linked files, don't rename.
-(setq backup-by-copying t)
-(setq make-backup-files t)
-
-(setq backup-enable-predicate
-      (lambda (name)
-        (and (normal-backup-enable-predicate name)
-             (not
-              (let ((method (file-remote-p name 'method)))
-                (when (stringp method)
-                  (member method '("su" "sudo"))))))))
-#+END_SRC
-
 Weeks start on Monday, not sunday.
 #+BEGIN_SRC emacs-lisp :tangle yes
 (setq calendar-week-start-day 1)
@@ -962,6 +939,71 @@ Quickly move around in buffers.
 
     (bind-key "C-c e A" 'ascii-toggle)))
 #+END_SRC
+** backups
+Emacs should keep backup copies of files I edit, but I do not want them
+to clutter up the filesystem everywhere. So I put them into one defined
+place, backup-directory, which even contains my username (for systems
+where =temporary-file-directory= is not inside my home).
+#+BEGIN_SRC emacs-lisp :tangle yes
+(use-package backups-mode
+  :load-path "elisp/backups-mode"
+  :bind   (("\C-cv" . save-version)
+           ("\C-cb" . list-backups)
+           ("\C-ck" . kill-buffer-prompt)
+           ("\C-cw" . backup-walker-start))
+  :init
+  (progn
+    (setq backup-directory jj-backup-directory)
+    (setq tramp-backup-directory (concat jj-backup-directory "/tramp"))
+    (if (not (file-exists-p tramp-backup-directory))
+        (make-directory tramp-backup-directory))
+    (setq tramp-backup-directory-alist `((".*" . ,tramp-backup-directory)))
+    (setq backup-directory-alist `(("." . ,jj-backup-directory)))
+    (setq auto-save-list-file-prefix (concat jj-backup-directory ".auto-saves-"))
+    (setq auto-save-file-name-transforms `((".*" ,jj-backup-directory t)))
+
+    (setq version-control t)     ;; Use version numbers for backups
+    (setq kept-new-versions 10)  ;; Number of newest versions to keep
+    (setq kept-old-versions 2)   ;; Number of oldest versions to keep
+    (setq delete-old-versions t) ;; Ask to delete excess backup versions?
+    (setq backup-by-copying t)
+    (setq backup-by-copying-when-linked t) ;; Copy linked files, don't rename.
+    (setq make-backup-files t)
+
+    (defadvice kill-buffer (around kill-buffer)
+      "Always save before killing a file buffer"
+      (when (and (buffer-modified-p)
+                 (buffer-file-name)
+                 (file-exists-p (buffer-file-name)))
+        (save-buffer))
+      ad-do-it)
+    (ad-activate 'kill-buffer)
+
+    (defadvice save-buffers-kill-emacs (around save-buffers-kill-emacs)
+      "Always save before killing emacs"
+      (save-some-buffers t)
+      ad-do-it)
+    (ad-activate 'save-buffers-kill-emacs)
+
+    (defun kill-buffer-prompt ()
+      "Allows one to kill a buffer without saving it.
+This is necessary since once you start backups-mode all file based buffers
+are saved automatically when they are killed"
+      (interactive)
+      (if (and (buffer-modified-p) (buffer-file-name) (file-exists-p (buffer-file-name)) (y-or-n-p "Save buffer?"))
+          (save-buffer)
+        (set-buffer-modified-p nil))
+      (kill-buffer))
+
+    (setq backup-enable-predicate
+          (lambda (name)
+            (and (normal-backup-enable-predicate name)
+                 (not
+                  (let ((method (file-remote-p name 'method)))
+                    (when (stringp method)
+                      (member method '("su" "sudo"))))))))))
+
+#+END_SRC
 ** markdown-mode
 [2014-05-20 Tue 23:04]
 #+BEGIN_SRC emacs-lisp :tangle yes
@@ -2687,7 +2729,6 @@ Save and restore the desktop
               do (funcall func))
 
         (unless (or noninteractive
-                    running-alternate-emacs
                     (eq 'listen (process-status server-process)))
           (server-start))))
 
@@ -2974,7 +3015,34 @@ magit is a mode for interacting with git.
                   (flyspell-mode)))
     ))
 #+END_SRC
+** git-gutter+
+[2014-05-21 Wed 22:56]
+#+BEGIN_SRC emacs-lisp :tangle yes
+(use-package git-gutter+
+  :ensure git-gutter+
+  :diminish git-gutter+-mode
+  :bind (("C-x n" . git-gutter+-next-hunk)
+         ("C-x p" . git-gutter+-previous-hunk)
+         ("C-x v =" . git-gutter+-show-hunk)
+         ("C-x r" . git-gutter+-revert-hunks)
+         ("C-x s" . git-gutter+-stage-hunks)
+         ("C-x c" . git-gutter+-commit)
+         )
+  :init
+  (progn
+    (setq git-gutter+-disabled-modes '(org-mode)))
+  :config
+  (progn
+    (use-package git-gutter-fringe+
+      :ensure git-gutter-fringe+
+      :config
+      (progn
+        (setq git-gutter-fr+-side 'right-fringe)
+        ;(git-gutter-fr+-minimal)
+        ))
+    (global-git-gutter+-mode 1)))
 
+#+END_SRC
 ** git rebase mode
 #+BEGIN_SRC emacs-lisp :tangle yes
 (use-package git-rebase-mode
@@ -3534,7 +3602,38 @@ the preferred method python evaluation.
 (setq python-shell-completion-string-code
    "';'.join(get_ipython().Completer.all_completions('''%s'''))\n")
 #+END_SRC
+** highlight mode
+[2014-05-21 Wed 23:51]
+#+BEGIN_SRC emacs-lisp :tangle yes
+(use-package hi-lock
+  :bind (("M-o l" . highlight-lines-matching-regexp)
+         ("M-o r" . highlight-regexp)
+         ("M-o w" . highlight-phrase)))
+
+;;;_ , hilit-chg
+
+(use-package hilit-chg
+  :bind ("M-o C" . highlight-changes-mode))
 
+#+END_SRC
+** ibuffer
+[2014-05-21 Wed 23:54]
+#+BEGIN_SRC emacs-lisp :tangle yes
+(use-package ibuffer
+  :bind ("C-x C-b" . ibuffer))
+#+END_SRC
+** puppet
+[2014-05-22 Thu 00:05]
+#+BEGIN_SRC emacs-lisp :tangle yes
+(use-package puppet-mode
+  :mode ("\\.pp\\'" . puppet-mode)
+  :config
+  (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
 * Thats it
 And thats it for this file, control passes "back" to [[file:../initjj.org][initjj.org/el]]
 which then may load more files.