Commit 56734ca11a35

Vincent Demeester <vincent@sbr.pm>
2015-04-15 08:14:28
Add smart navigation to the beginning of a line (and fix dired mode map key binding)
1 parent 7cc734c
Changed files (1)
.emacs.d
.emacs.d/emacs.org
@@ -456,6 +456,41 @@
               (setq show-trailing-whitespace 't))
             )
 #+END_SRC
+
+Let's also rewrite some built-in to better /default/. Let's start with
+[[http://emacsredux.com/blog/2013/05/22/smarter-navigation-to-the-beginning-of-a-line/][smarter navigation to the beginning of a line]].
+
+
+#+BEGIN_SRC emacs-lisp
+  (defun smarter-move-beginning-of-line (arg)
+    "Move point back to indentation of beginning of line.
+
+  Move point to the first non-whitespace character on this line.
+  If point is already there, move to the beginning of the line.
+  Effectively toggle between the first non-whitespace character and
+  the beginning of the line.
+
+  If ARG is not nil or 1, move forward ARG - 1 lines first.  If
+  point reaches the beginning or end of the buffer, stop there."
+    (interactive "^p")
+    (setq arg (or arg 1))
+
+    ;; Move lines first
+    (when (/= arg 1)
+      (let ((line-move-visual nil))
+        (forward-line (1- arg))))
+
+    (let ((orig-point (point)))
+      (back-to-indentation)
+      (when (= orig-point (point))
+        (move-beginning-of-line 1))))
+
+  ;; remap C-a to `smarter-move-beginning-of-line'
+  (global-set-key [remap move-beginning-of-line]
+                  'smarter-move-beginning-of-line)
+#+END_SRC
+
+
 **** pretty-mode
 
      Pretty mode turn some stuff prettier, for example in Haskell =/== becomes =≠=, or
@@ -575,7 +610,7 @@
      C-c=)
 
      #+BEGIN_SRC emacs-lisp
-       (define-key dired-mode "e" 'wdired-change-to-wdired-mode)
+       (define-key dired-mode-map "e" 'wdired-change-to-wdired-mode)
      #+END_SRC
 
 
@@ -801,7 +836,6 @@
          :ensure t)
      #+END_SRC
 
-
 *** Server mode
 
     Start a server in not already running. I usually start emacs as a