--- a/.emacs-my Sat Aug 02 23:24:15 2014 +0300
+++ b/.emacs-my Sat Sep 06 13:09:08 2014 +0300
@@ -754,12 +754,21 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "key binding, short-keys")
-(global-set-key [home] 'beginning-of-line)
-(global-set-key [end] 'end-of-line)
-(global-set-key [C-home] 'beginning-of-buffer)
-(global-set-key [C-end] 'end-of-buffer)
-(global-set-key [C-delete] 'kill-word)
-(global-set-key [delete] 'delete-char)
+(defun my-smart-beginning-of-line ()
+ "Move point to beginning-of-line. If repeat command it cycle
+position between `back-to-indentation' and `beginning-of-line'."
+ (interactive)
+ (if (and (eq last-command 'my-smart-beginning-of-line)
+ (= (line-beginning-position) (point)))
+ (back-to-indentation)
+ (beginning-of-line)))
+
+(global-set-key [home] 'my-smart-beginning-of-line)
+(global-set-key [end] 'end-of-line)
+(global-set-key [C-home] 'beginning-of-buffer)
+(global-set-key [C-end] 'end-of-buffer)
+(global-set-key [C-delete] 'kill-word)
+(global-set-key [delete] 'delete-char)
;; (global-set-key [backspace] 'backward-delete-char-untabify) ; not work properly in *info* mode
(global-set-key [f2] 'save-buffer)