updates
authorJoerg Jaspert <joerg@debian.org>
Sun, 13 Sep 2015 12:24:32 +0000 (14:24 +0200)
committerJoerg Jaspert <joerg@debian.org>
Sun, 13 Sep 2015 12:24:32 +0000 (14:24 +0200)
.emacs.d/config/customized.el
.emacs.d/config/emacs.org
.emacs.d/elisp/local/ganneff-gnus.el
.emacs.d/elisp/local/ganneff.el

index 0fcb776..19c3840 100644 (file)
     (("inbox" . "tag:inbox")
      ("unread" . "tag:unread")
      ("personal unread" . "tag:inbox AND (to:joerg@ganneff.de OR to:joerg@debian.org OR to:joerg@debconf.org)"))))
+ '(package-selected-packages
+   (quote
+    (message-x calfw yasnippet yaml-mode web-mode volatile-highlights visual-regexp undo-tree swiper smartscan runner ruby-hash-syntax region-bindings-mode rainbow-mode rainbow-delimiters pyvenv projectile pos-tip paredit paradox nose neotree multiple-cursors modeline-posn mo-git-blame mmm-mode miniedit magit-svn magit-find-file linum-relative keyfreq key-chord inf-ruby impatient-mode iedit idomenu ibuffer-vc ibuffer-tramp ibuffer-git hydra highlight-indentation guide-key golden-ratio git-timemachine git-messenger git-gutter-fringe+ fuzzy flycheck-color-mode-line find-file-in-project f expand-region eww-lnum ethan-wspace eshell-prompt-extras discover-my-major dired-single dired+ crontab-mode auto-complete async anzu aggressive-indent ace-window ac-dabbrev)))
  '(randomsig-files (quote randomsig-search-sigfiles))
  '(randomsig-static-string "bye, Joerg
 ")
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
- )
+ '(diff-added ((((background dark)) (:foreground "#FFFF9B9BFFFF")) (t (:foreground "DarkGreen"))))
+ '(diff-changed ((((background dark)) (:foreground "Yellow")) (t (:foreground "MediumBlue"))))
+ '(diff-context ((((background dark)) (:foreground "White")) (t (:foreground "Black"))))
+ '(diff-file-header ((((background dark)) (:foreground "Cyan" :background "Black")) (t (:foreground "Red" :background "White"))))
+ '(diff-header ((((background dark)) (:foreground "Cyan")) (t (:foreground "Red"))))
+ '(diff-hunk-header ((((background dark)) (:foreground "Black" :background "#05057F7F8D8D")) (t (:foreground "White" :background "Salmon"))))
+ '(diff-index ((((background dark)) (:foreground "Magenta")) (t (:foreground "Green"))))
+ '(diff-nonexistent ((((background dark)) (:foreground "#FFFFFFFF7474")) (t (:foreground "DarkBlue"))))
+ '(diff-removed ((((background dark)) (:foreground "#7474FFFF7474")) (t (:foreground "DarkMagenta")))))
index 59ba0d6..197815b 100644 (file)
@@ -429,8 +429,50 @@ Shell. zsh in my case.
 (setq comint-buffer-maximum-size 20000)    ; max lenght of the buffer in lines
 (setq comint-prompt-read-only nil)         ; if this is t, it breaks shell-command
 #+END_SRC
-
-
+*** Keyboard related changes
+**** Cycle Spacing
+This lets M-SPC cycle through spacing, that is
+1. replace all spaces with a single space
+2. remove all spaces
+3. restore the original spacing
+#+BEGIN_SRC emacs-lisp :tangle yes
+(bind-key "M-SPC" 'cycle-spacing)
+#+END_SRC
+**** Toggle/Cycle letter case
+[2015-05-22 Fri 22:42]
+
+This is from [[http://ergoemacs.org/emacs/modernization_upcase-word.html][Emacs: Toggle/Cycle Letter Case]]
+
+Emacs has several user level commands for changing letter case. They
+are: upcase-word 【Alt+u】, downcase-word 【Alt+l】, capitalize-word
+【Alt+c】.
+
+There are also “region” versions for each: upcase-region 【Ctrl+x
+Ctrl+u】, downcase-region 【Ctrl+x Ctrl+l】, capitalize-region, and
+also upcase-initials-region. (Note: for elisp programing, there are
+also these functions: upcase, capitalize, downcase, upcase-initials.)
+
+One problem with these commands is that you need to move your cursor
+to the beginning of the word first. For example, if you have the text
+“THat”, and your cursor is on the “a”, and you call downcase-word, but
+it doesn't do anything because it only start at the cursor point to
+end of word. It would be nice if it'll just automatically perform the
+operation on the whole word.
+
+Another problem is that it does not consider the final result. For
+example, if you have “oncE upon a time …”, and you select the whole
+sentence and call upcase-initials-region, it becomes “OncE Upon A Time
+…”. Note the capital E is not automatically lowered. For elisp
+programing, the orthogonal precision is nice, but as user commands, it
+is better to change the whole sentence.
+
+Also, these commands have a “-word” and “-region” variants, great for
+precision in elisp programing but not smart as user commands. It would
+be nice if emacs automatically choose the right command depending
+whether there is text selection.
+#+BEGIN_SRC emacs-lisp :tangle yes
+(bind-key "M-c" 'toggle-letter-case)
+#+END_SRC
 ** Miscellaneous stuff
 Searches and matches should ignore case.
 #+BEGIN_SRC emacs-lisp
@@ -1509,7 +1551,7 @@ jump half-windows?
 (setq scroll-conservatively 100000)
 (setq scroll-up-aggressively 0.0)
 (setq scroll-down-aggressively 0.0)
-(setq scroll-preserve-screen-position t)
+(setq scroll-preserve-screen-position 'always)
 #+END_SRC
 
 *** Copy/Paste with X
index 3afdbd6..45993b1 100644 (file)
 ;;;###autoload
 (defun sign-or-crypt ()
   (interactive)
-  (let ((ans (completing-read "Sign/Encrypt/Nothing? "
-                             '(("s") ("e") ("n"))
-                              t nil nil nil)))
+  (let ((ans (completing-read "Sign/Inlinesign/Encrypt/Nothing? "
+                              '(("s" s) ("i" i) ("e" e) ("n" n))
+                              nil t nil)))
     (cond ((string= ans "s")
-          (message-goto-body)
-          (insert "<#secure method=pgpmime mode=sign>\n"))
+           (mml-secure-message mml-default-sign-method 'sign)
+           ;(message-goto-body)
+           ;(insert "<#secure method=pgpmime mode=sign>\n")
+           )
+          ((string= ans "i")
+           (mml-secure-message "pgp" 'sign))
           ((string= ans "e")
-          (message-goto-body)
-          (insert "<#secure method=pgpmime mode=signencrypt>\n"))
+           (mml-secure-message-encrypt-pgpmime)
+           ;(message-goto-body)
+           ;(insert "<#secure method=pgpmime mode=signencrypt>\n")
+           )
           ((string= ans "n")
            (message "Message sent unmodified."))
           (t
            (error "Invalid choice.")))))
 
-
 (provide 'ganneff-gnus)
index ed7649d..a7c9a39 100644 (file)
@@ -294,6 +294,44 @@ This functions should be added to the hooks of major modes for programming."
         regexp-history)
   (call-interactively 'occur))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; change case of letters                                                 ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; http://ergoemacs.org/emacs/modernization_upcase-word.html
+;;;###autoload
+(defun toggle-letter-case ()
+  "Toggle the letter case of current word or text selection.
+Toggles between: “all lower”, “Init Caps”, “ALL CAPS”."
+  (interactive)
+  (let (p1 p2 (deactivate-mark nil) (case-fold-search nil))
+    (if (region-active-p)
+        (setq p1 (region-beginning) p2 (region-end))
+      (let ((bds (bounds-of-thing-at-point 'word) ) )
+        (setq p1 (car bds) p2 (cdr bds)) ) )
+
+    (when (not (eq last-command this-command))
+      (save-excursion
+        (goto-char p1)
+        (cond
+         ((looking-at "[[:lower:]][[:lower:]]") (put this-command 'state "all lower"))
+         ((looking-at "[[:upper:]][[:upper:]]") (put this-command 'state "all caps") )
+         ((looking-at "[[:upper:]][[:lower:]]") (put this-command 'state "init caps") )
+         ((looking-at "[[:lower:]]") (put this-command 'state "all lower"))
+         ((looking-at "[[:upper:]]") (put this-command 'state "all caps") )
+         (t (put this-command 'state "all lower") ) ) )
+      )
+
+    (cond
+     ((string= "all lower" (get this-command 'state))
+      (upcase-initials-region p1 p2) (put this-command 'state "init caps"))
+     ((string= "init caps" (get this-command 'state))
+      (upcase-region p1 p2) (put this-command 'state "all caps"))
+     ((string= "all caps" (get this-command 'state))
+      (downcase-region p1 p2) (put this-command 'state "all lower")) )
+    )
+  )
+
+
 (provide 'ganneff)
 
 ;;; ganneff.el ends here