Emacs - Use Ivy instead of ido
[dotfiles.git] / emacs.d / config.org
index 76330ed..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
 
@@ -3086,6 +3076,31 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
           (let ((root (projectile-project-root)))
             (with-current-buffer buffer
               (cd root))))))
+
+
+
+  ;; https://emacs.stackexchange.com/questions/16497/how-to-exclude-files-from-projectile
+  (setq projectile-enable-caching t)
+  (if (executable-find "rg")
+      (progn
+        (defconst modi/rg-arguments
+          `("--line-number"               ; line numbers
+            "--smart-case"
+            "--follow"                    ; follow symlinks
+            "--mmap")                     ; apply memory map optimization when possible
+          "Default rg arguments used in the functions in `projectile' package.")
+
+        (defun modi/advice-projectile-use-rg ()
+          "Always use `rg' for getting a list of all files in the project."
+          (mapconcat 'identity
+                     (append '("\\rg")    ; used unaliased version of `rg': \rg
+                             modi/rg-arguments
+                             '("--null"   ; output null separated results,
+                               "--files")) ; get file names matching the regex '' (all files)
+                     " "))
+
+        (advice-add 'projectile-get-ext-command :override #'modi/advice-projectile-use-rg))
+    (message "rg is not found"))
 #+END_SRC
 
 *** project config =super= keybindings
@@ -3572,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)
@@ -3584,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