Emacs - Use Ivy instead of ido
authorPeng Li <seudut@gmail.com>
Mon, 25 Sep 2017 09:11:51 +0000 (17:11 +0800)
committerPeng Li <seudut@gmail.com>
Tue, 26 Sep 2017 18:30:49 +0000 (02:30 +0800)
emacs.d/config.org
emacs.d/emacs-evil.org

index 166f110..aa75064 100644 (file)
@@ -608,9 +608,10 @@ set height in mode line
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (use-package ido
     :ensure t
-    :init (setq ido-enable-flex-matching nil
+    :init (setq ido-enable-flex-matching t
                 ido-ignore-extensions t
                 ido-use-virtual-buffers t
+                ido-use-faces nil
                 ido-everywhere t)
     (setq ido-save-directory-list-file (concat sd-temp-directory "ido.last"))
     :config
@@ -623,15 +624,6 @@ set height in mode line
     (define-key ido-file-completion-map (kbd "C-w") #'ido-delete-backward-word-updir)
     (define-key ido-file-dir-completion-map (kbd "C-w") #'ido-delete-backward-updir)
     ;; (define-key ido-file-dir-completion-map (kbd "C-i") #'ido-copy-current-word)
-    
-    ;; (dolist (map (list
-    ;;               ido-buffer-completion-map
-    ;;               ido-file-completion-map
-    ;;               ido-file-dir-completion-map
-    ;;               ido-common-completion-map))
-    ;;   (define-key map (kbd "C-w") #'ido-delete-backward-word-updir)
-    ;;   ;; (define-key map (kbd "C-i") #'ido-copy-current-file-name)
-    ;;   )
     )
 
   (icomplete-mode t)
@@ -641,8 +633,6 @@ set height in mode line
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (use-package flx-ido
     :ensure t
-    :init (setq ido-enable-flex-matching nil
-                ido-use-faces nil)
     :config (flx-ido-mode nil))
 #+END_SRC
 
@@ -3597,7 +3587,8 @@ stolen from [[https://github.com/mariolong/emacs.d/blob/f6a061594ef1b5d1f4750e9d
   (use-package swiper
     :ensure t
     :init
-    (setq ivy-use-virtual-buffers t)
+    (setq ivy-use-virtual-buffers nil)
+    (setq ivy-wrap t)
     (set-face-attribute 'ivy-current-match nil :background "Orange" :foreground "black")
     :config
     (ivy-mode)
@@ -3609,6 +3600,9 @@ stolen from [[https://github.com/mariolong/emacs.d/blob/f6a061594ef1b5d1f4750e9d
     (define-key swiper-map (kbd "M-.") (lambda ()
                                          (interactive)
                                          (insert (format "%s" (with-ivy-window (thing-at-point 'symbol)))))))
+
+  (with-eval-after-load "ivy"
+    (define-key ivy-minibuffer-map (kbd "C-o") 'ivy-dispatching-done))
 #+END_SRC
 
 ** Expand region map
index 2923d5e..8c91ebc 100644 (file)
@@ -97,28 +97,6 @@ https://www.emacswiki.org/emacs/Evil.
     (evil-escape-mode))
 #+END_SRC
 
-* Evil-Leader
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (with-eval-after-load "evil-leader"
-    ;; Buffer & File
-    (evil-leader/set-key "f" 'ido-switch-buffer)
-    (evil-leader/set-key "b" 'ido-switch-buffer)
-    (evil-leader/set-key "w" 'evil-save)
-    (evil-leader/set-key "r" 'ivy-recentf)
-    (evil-leader/set-key "w" 'save-buffer)
-    (evil-leader/set-key "o" 'ido-find-file)
-    (evil-leader/set-key "t" 'projectile-find-file)
-    ;; Window
-    (evil-leader/set-key "s" 'evil-window-split)
-    (evil-leader/set-key "v" 'evil-window-vsplit)
-    (evil-leader/set-key "q" 'evil-quit)
-    ;; others
-    (evil-leader/set-key "g" 'magit-status)
-    (evil-leader/set-key "d" (lambda () (interactive) (dired default-directory)))
-    (evil-leader/set-key "e" 'sd/toggle-project-eshell)
-    (evil-leader/set-key "h" 'help))
-#+END_SRC
-
 * other extention
 ** Evil-matchit
 [[https://github.com/redguardtoo/evil-matchit]]
@@ -146,7 +124,35 @@ https://www.emacswiki.org/emacs/Evil.
     :config
     (global-evil-surround-mode 1))
 #+END_SRC
+
+
 * Key bindings
+** Evil-Leader
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (with-eval-after-load "evil-leader"
+    ;; Buffer & File explore
+    ;; (with-eval-after-load "ivy")
+    ;; (with-eval-after-load "counsel")
+    ;; (when (require 'ivy))
+    (evil-leader/set-key "b" 'counsel-projectile-find-file)
+    (evil-leader/set-key "f" 'ivy-switch-buffer)
+    (evil-leader/set-key "r" 'ivy-recentf)
+    
+    ;; (evil-leader/set-key "o" 'ido-find-file)
+    ;; (evil-leader/set-key "t" 'projectile-find-file)
+    ;; (evil-leader/set-key "w" 'evil-save)
+    (evil-leader/set-key "w" 'save-buffer)
+    ;; Window
+    (evil-leader/set-key "s" 'evil-window-split)
+    (evil-leader/set-key "v" 'evil-window-vsplit)
+    (evil-leader/set-key "q" 'evil-quit)
+    ;; others
+    (evil-leader/set-key "g" 'magit-status)
+    ;; (evil-leader/set-key "d" (lambda () (interactive) (dired default-directory)))
+    (evil-leader/set-key "d" 'dired)
+    (evil-leader/set-key "e" 'sd/toggle-project-eshell)
+    (evil-leader/set-key "h" 'help))
+#+END_SRC
 ** Basic state bindings
 There are three kinds key bindings
 - prefix key is the leader key, defined by evil-leader.
@@ -197,9 +203,11 @@ Let the search highlight persistent, https://stackoverflow.com/questions/2576803
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (add-hook 'eshell-mode-hook (lambda ()
                                 (when (and (boundp 'evil-mode) evil-mode)
-                                  (dolist (key-fun '(("e" . sd/toggle-project-eshell)
+                                  (dolist (key-fun '(("f" . ivy-switch-buffer)
+                                                     ("b" . counsel-projectile-find-file)
+                                                     ("r" . counsel-recentf)
+                                                     ("e" . sd/toggle-project-eshell)
                                                      ("d" . dired)
-                                                     ("f" . ido-switch-buffer)
                                                      ("'" . other-window)
                                                      ("q" . evil-quit)))
                                     (evil-define-key 'emacs eshell-mode-map (kbd (concat evil-leader/leader (car key-fun))) (cdr key-fun))))