updates
[emacs.git] / .emacs.d / config / emacs.org
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