#+END_SRC
-* Key bindings
+* Normal Text Operation
+** Edit
+*** undo-tree
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package undo-tree
+ :ensure t
+ :config
+ (define-key undo-tree-visualizer-mode-map "j" 'undo-tree-visualize-redo)
+ (define-key undo-tree-visualizer-mode-map "k" 'undo-tree-visualize-undo)
+ (define-key undo-tree-visualizer-mode-map "h" 'undo-tree-visualize-switch-branch-left)
+ (define-key undo-tree-visualizer-mode-map "l" 'undo-tree-visualize-switch-branch-right)
+ (global-undo-tree-mode 1))
-** Remove prefix =ESC=, refer [[http://emacs.stackexchange.com/questions/14755/how-to-remove-bindings-to-the-esc-prefix-key][here]]
+ (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))
- ;; (define-key key-translation-map (kbd "ESC") (kbd "C-g"))
+ ;; (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
+** Motion
+*** Avy
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package avy
+ :ensure t
+ :config
+ (avy-setup-default))
+#+END_SRC
+
+*** =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 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)
+
+ ;; M-g TAB move-to-column
+ ;; M-g ESC Prefix Command
+ ;; M-g c goto-char
+ ;; M-g g goto-line
+ ;; M-g n next-error
+ ;; M-g p previous-error
+
+ ;; M-g M-g goto-line
+ ;; M-g M-n next-error
+ ;; M-g M-p previous-error
+#+END_SRC
+
+
+** Search & highlight
+* Key bindings
+
** Esc on Minibuffer
Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
(global-set-key (kbd "s-=") 'text-scale-increase)
(global-set-key (kbd "s--") 'text-scale-decrease)
+ ;; (global-set-key (kbd "s-u") 'undo-tree-visualize)
+
;; someothers default mapping on super (command) key
;; s-s save-buffer
(sd/make-keymap "\M-s"
'(("w" . save-buffer)
;; ("\M-w" . save-buffer)
- ("W" . revert-buffer)
+ ("e" . revert-buffer)
("s" . isearch-forward-regexp)
("r" . isearch-backward-regexp)
("." . isearch-forward-symbol-at-point)
#+END_SRC
-** undo-tree
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (use-package undo-tree
- :ensure t
- :config
- (define-key undo-tree-visualizer-mode-map "j" 'undo-tree-visualize-redo)
- (define-key undo-tree-visualizer-mode-map "k" 'undo-tree-visualize-undo)
- (define-key undo-tree-visualizer-mode-map "h" 'undo-tree-visualize-switch-branch-left)
- (define-key undo-tree-visualizer-mode-map "l" 'undo-tree-visualize-switch-branch-right)
- (global-undo-tree-mode 1))
-#+END_SRC
-
** Tabbar
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
** TODO bookmark
** TODO Calendar
+** TODO 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 activate)
+ (sd/info-mode))
+
+ (defadvice Info-exit (after my-info-exit activate)
+ (sd/delete-current-window))
+#+END_SRC
* Programming