From ec3015036271d6b57b8f5f20b75643629a22e046 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Mon, 25 Sep 2017 17:11:51 +0800 Subject: [PATCH] Emacs - Use Ivy instead of ido --- emacs.d/config.org | 20 +++++++----------- emacs.d/emacs-evil.org | 56 ++++++++++++++++++++++++++++---------------------- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/emacs.d/config.org b/emacs.d/config.org index 166f110..aa75064 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -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 diff --git a/emacs.d/emacs-evil.org b/emacs.d/emacs-evil.org index 2923d5e..8c91ebc 100644 --- a/emacs.d/emacs-evil.org +++ b/emacs.d/emacs-evil.org @@ -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)))) -- 2.11.0