(auto-revert-mode . "")
;; default is Ind
(org-indent-mode . "")
+ ;; default is Fly
+ (flyspell-mode . "")
;; Major modes
(lisp-interaction-mode . "λ")
(hi-lock-mode . "")
(global-set-key (kbd "s-u") 'undo-tree-visualize)
#+END_SRC
+*** flyspell
+Stolen from [[https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-spelling.el][here]], hunspell will search dictionary in =DICPATH=
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (setenv "DICPATH" "/usr/local/share/hunspell")
+
+ (when (executable-find "hunspell")
+ (setq-default ispell-program-name "hunspell")
+ (setq ispell-really-hunspell t))
+
+ ;; (defun text-mode-hook-setup ()
+ ;; ;; Turn off RUN-TOGETHER option when spell check text-mode
+ ;; (setq-local ispell-extra-args (flyspell-detect-ispell-args)))
+ ;; (add-hook 'text-mode-hook 'text-mode-hook-setup)
+ (add-hook 'text-mode-hook 'flyspell-mode)
+
+ ;; enable flyspell check on comments and strings in progmamming modes
+ (add-hook 'prog-mode-hook 'flyspell-prog-mode)
+#+END_SRC
+
+Make flyspell enabled for org-mode, see [[http://emacs.stackexchange.com/questions/9333/how-does-one-use-flyspell-in-org-buffers-without-flyspell-triggering-on-tangled][here]]
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ ;; NO spell check for embedded snippets
+ (defadvice org-mode-flyspell-verify (after org-mode-flyspell-verify-hack activate)
+ (let ((rlt ad-return-value)
+ (begin-regexp "^[ \t]*#\\+begin_\\(src\\|html\\|latex\\)")
+ (end-regexp "^[ \t]*#\\+end_\\(src\\|html\\|latex\\)")
+ old-flag
+ b e)
+ (when ad-return-value
+ (save-excursion
+ (setq old-flag case-fold-search)
+ (setq case-fold-search t)
+ (setq b (re-search-backward begin-regexp nil t))
+ (if b (setq e (re-search-forward end-regexp nil t)))
+ (setq case-fold-search old-flag))
+ (if (and b e (< (point) e)) (setq rlt nil)))
+ (setq ad-return-value rlt)))
+#+END_SRC
+
+*** Expand-region
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package expand-region
+ :ensure t
+ :config
+ (global-set-key (kbd "C-=") 'er/expand-region))
+#+END_SRC
+
** Motion
*** Avy
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
*** =M-g= prefix
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (global-set-key (kbd "M-g g") 'avy-goto-line)
+ (global-set-key (kbd "M-g j") 'avy-goto-line-below)
+ (global-set-key (kbd "M-g k") 'avy-goto-line-above)
+ (global-set-key (kbd "M-g w") 'avy-goto-word-1-below)
+ (global-set-key (kbd "M-g b") 'avy-goto-word-1-above)
(global-set-key (kbd "M-g e") 'avy-goto-word-0)
- (global-set-key (kbd "M-g w") 'avy-goto-word-1)
- (global-set-key (kbd "M-g c") 'avy-goto-char-timer)
- (global-set-key (kbd "M-g f") 'avy-goto-char-in-line)
+ (global-set-key (kbd "M-g f") 'avy-goto-char-timer)
+ (global-set-key (kbd "M-g c") 'avy-goto-char-in-line)
;; M-g TAB move-to-column
;; M-g ESC Prefix Command
;; C-7
;; C-Space
-
-
-
-
-
-
-
#+END_SRC
** =Super= bindings for file, buffer and windows
magit-staged-section-map))
(define-key map "j" 'magit-section-forward)
(define-key map "k" 'magit-section-backward)
- (define-key map "D" 'magit-discard-file)
+ (define-key map "D" 'magit-discard)
+ (define-key map "O" 'magit-discard-file)
(define-key map "n" nil)
(define-key map "p" nil)
(define-key map "v" 'recenter-top-bottom)
** TODO bookmark
** TODO Calendar
+** advice info
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (defun sd/info-mode ()
+ (interactive)
+ (unless (equal major-mode 'Info-mode)
+ (unless (> (length (window-list)) 1)
+ (split-window-right))
+ (other-window 1)
+ ;; (info)
+ ))
+
+ ;; (global-set-key (kbd "C-h i") 'sd/info-mode)
+
+ ;; open Info buffer in other window instead of current window
+ (defadvice info (before my-info (&optional file buf) activate)
+ (sd/info-mode))
+
+ (defadvice Info-exit (after my-info-exit activate)
+ (sd/delete-current-window))
+#+END_SRC
* Programming