Emacs - avy goto
authorPeng Li <seudut@gmail.com>
Sat, 28 Oct 2017 13:09:18 +0000 (21:09 +0800)
committerPeng Li <seudut@gmail.com>
Sat, 28 Oct 2017 13:09:18 +0000 (21:09 +0800)
emacs.d/config.org
emacs.d/emacs-evil.org

index 976bc82..7dc3fc6 100644 (file)
@@ -2404,18 +2404,18 @@ C/C++ ide tools
   ;; (setq c-default-style "stroustrup"
   ;;       c-basic-offset 4)
 
-  ;; "C-M-j" is my global binding for avy goto line below
-  ;; disable it in c mode
-  (mapcar #'(lambda (map)
-             (define-key map (kbd "C-M-j") nil))
-          (list c-mode-map
-                c++-mode-map
-                objc-mode-map))
+  ;; ;; "C-M-j" is my global binding for avy goto line below
+  ;; ;; disable it in c mode
+  ;; (mapcar #'(lambda (map)
+  ;;            (define-key map (kbd "C-M-j") nil))
+  ;;         (list c-mode-map
+  ;;               c++-mode-map
+  ;;               objc-mode-map))
 
   ;; objective c
   (add-to-list 'auto-mode-alist '("\\.mm\\'" . objc-mode))
 
-  (setq c-hungry-delete-key t)
+  (setq-default c-hungry-delete-key t)
 
 
   ;; Looks `c-hanging-braces-alist' doesn't work as expected when  `electric-pair-mode' is enabled.
@@ -2442,7 +2442,6 @@ C/C++ ide tools
 
   ;; (advice-add 'c-electric-brace :after (lambda (arg) "Add new line after insert {}" (newline-and-indent)))
 #+END_SRC
-
 *** irony
 **** install irony server
 Install clang, on mac, it has =libclang.dylib=, but no develop headers. Install by =brew=
@@ -2481,10 +2480,10 @@ irony-mode-hook, copied from [[https://github.com/Sarcasm/irony-mode][irony-mode
     (define-key irony-mode-map [remap complete-symbol]
       'irony-completion-at-point-async))
 
-  (add-hook 'irony-mode-hook 'my-irony-mode-hook)
-  (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
+  ;; (add-hook 'irony-mode-hook 'my-irony-mode-hook)
+  ;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
 
-  (add-hook 'c++-mode-local-vars-hook #'sd/c++-mode-local-vars)
+  ;; (add-hook 'c++-mode-local-vars-hook #'sd/c++-mode-local-vars)
 
   ;; add C++ completions, because by default c++ file can not complete
   ;; c++ std functions, another method is create .dir-local.el file, for p
@@ -2591,7 +2590,7 @@ irony-company
         (setq out-file-name (shell-quote-argument (concat (file-name-sans-extension buffer-file-name) ".out"))))
       (setq-local compilation-read-command t)
       (set (make-local-variable 'compile-command)
-           (concat "g++ -Wall "
+           (concat "g++ -Wall -std=c++11 "
                    current-file-name
                    " -o "
                    out-file-name
@@ -2845,6 +2844,13 @@ Emacs lisp auto-insert, based on the default module in =autoinsert.el=, but repl
     :ensure t)
 #+END_SRC
 
+* Iedit
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (use-package iedit
+    :ensure t
+    :init
+    (global-set-key (kbd "C-;") #'iedit-mode))
+#+END_SRC
 * Gnus
 ** Gmail setting 
 Refer [[https://www.emacswiki.org/emacs/GnusGmail][GnusGmail]]
index 8413280..fc936b2 100644 (file)
@@ -22,7 +22,7 @@ https://www.emacswiki.org/emacs/Evil.
     (setq evil-replace-state-cursor '("red" bar))
     (setq evil-operator-state-cursor '("red" hollow))
     ;; others, don't move back cursor when exit insert mode
-    (setq evil-move-cursor-back nil)
+    ;; (setq evil-move-cursor-back nil)
     :config
     (use-package evil-leader
       :ensure t
@@ -37,16 +37,6 @@ https://www.emacswiki.org/emacs/Evil.
                                 (modify-syntax-entry ?_ "w")
                                 ;; (modify-syntax-entry ?- "w")
                                 ))
-
-  (with-eval-after-load "evil"
-    ;; remap x to X as `evil-move-cursor-back' is set nil
-    ;; (define-key evil-normal-state-map [remap evil-delete-char] 'evil-delete-backward-char)
-    (define-key evil-normal-state-map (kbd "x") (lambda () (interactive)
-                                                  (let ((org evil-move-cursor-back))
-                                                    (setq evil-move-cursor-back t)
-                                                    (call-interactively 'evil-delete-char)
-                                                    ;; (evil-delete-char)
-                                                    (setq evil-move-cursor-back org)))))
 #+END_SRC
 
 ** Initial mode and state config
@@ -168,19 +158,18 @@ There are three kinds key bindings
             (define-key map (kbd ",") 'evil-repeat-find-char))
           (list evil-normal-state-map evil-motion-state-map))
 
-    
-    ;; (define-key evil-normal-state-map  "s" nil)
-    ;; (define-key evil-normal-state-map  "sj" 'ivy-switch-buffer)
-    ;; normal state
-    ;; (define-key evil-normal-state-map (kbd "C-SPC") 'mode-line-other-buffer)
-    (define-key evil-normal-state-map (kbd "C-;") 'previous-multiframe-window)
     ;; insert state
-    (define-key evil-insert-state-map (kbd "C-p") 'previous-line)
-    (define-key evil-insert-state-map (kbd "C-n") 'next-line)
-    (define-key evil-insert-state-map (kbd "C-h") 'delete-backward-char)
-    (define-key evil-insert-state-map (kbd "C-a") 'move-beginning-of-line)
-    (define-key evil-insert-state-map (kbd "C-e") 'move-end-of-line)
-    (define-key evil-insert-state-map (kbd "C-k") 'kill-line)
+    (cl-loop for (key-sequence . fun) in '(("C-;" . iedit-mode)
+                                           ("C-n" . next-line)
+                                           ("C-p" . previous-line)
+                                           ("C-a" . move-beginning-of-line)
+                                           ("C-e" . move-end-of-line)
+                                           ("C-h" . delete-backward-char)
+                                           ("C-k" . kill-line))
+             do (define-key evil-insert-state-map (kbd key-sequence) fun))
+    
+    
+    
     ;; motion mode
     (define-key evil-motion-state-map (kbd "SPC") 'scroll-up-command)
     (define-key evil-motion-state-map (kbd "S-SPC") 'scroll-down-command))
@@ -308,10 +297,19 @@ Let the search highlight persistent, https://stackoverflow.com/questions/2576803
 
 ** Avy & Evil
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (setq avy-keys '(?a ?s ?d ?g
+                      ?h ?k ?l
+                      ?q ?w ?e ?r ?t
+                      ?y ?u ?i ?o ?p
+                      ?z ?x ?c ?v ?b
+                      ?n ?m ?f ?j 59))
+  ;; (setq avy-background t)
   (with-eval-after-load "evil"
     (dolist (map (list evil-normal-state-map
                        evil-visual-state-map
                        evil-motion-state-map))
+      (define-key map (kbd "gw") 'avy-goto-word-0-below)
+      (define-key map (kbd "gb") 'avy-goto-word-0-above)
       (define-key map (kbd "J") 'avy-goto-line-below)
       (define-key map (kbd "K") 'avy-goto-line-above)
       (define-key map (kbd "F") 'avy-goto-char)