emacs.d

My emacs configuration, done in a literate programming fashion using org-mode

git clone git://git.shimmy1996.com/emacs.d.git
commit 1a5fd96de340982276797e887411ca19225278ab
parent 5ef177e3e212ee944cfb1a83a4967182de984596
Author: Shimmy Xu <shimmy.xu@shimmy1996.com>
Date:   Sun, 24 Jun 2018 09:13:02 -0500

Merge branch 'ivy' and disable helm by default.

Diffstat:
MREADME.org | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 57 insertions(+), 4 deletions(-)
diff --git a/README.org b/README.org
@@ -288,7 +288,7 @@ Use mouse wheel to adjust zoom level.
 
 * Enhancements
 Packages providing enhancements to Emacs interface. Mostly simple
-plug-and-play packages.
+plug-and-play packages or keybinding changes.
 
 ** Dashboard
 An extensible Emacs startup screen showing you what’s most important.
@@ -374,6 +374,13 @@ that people can see what I see.
     :ensure t)
 #+END_SRC
 
+** Keybindings
+*** IBuffer
+Use =ibuffer= instead of =list-buffer=.
+#+BEGIN_SRC emacs-lisp
+  (global-set-key (kbd "C-x C-b") 'ibuffer)
+  (autoload 'ibuffer "ibuffer" "List buffers." t)
+#+END_SRC
 ** Keyfreq
 Records command frequency. I am planning on adjusting my keyboard
 layout with this information.
@@ -408,7 +415,7 @@ Install =projectile=.
     (projectile-global-mode))
 #+END_SRC
 
-*** Enable =helm= support
+*** DISABLED Enable =helm= support
 Since I use =helm=, I need to install additional support.
 #+BEGIN_SRC emacs-lisp
   (use-package helm-projectile
@@ -425,10 +432,56 @@ configurations is a lot more complex and may be spread out, any
 subtree that depends on packages in this section will have a tag to
 mark the dependency.
 
-** Helm
+** Ivy
+Flexible, simple tools for minibuffer completion in Emacs.
+
+Ivy, a generic completion mechanism for Emacs.
+Counsel, a collection of Ivy-enhanced versions of common Emacs commands.
+Swiper, an Ivy-enhanced alternative to isearch.
+
+*** Installation
+#+BEGIN_SRC emacs-lisp
+  (use-package ivy
+    :ensure t
+    :init
+    (setq enable-recursive-minibuffers t)
+    (ivy-mode 1)
+    :config
+    ;; Show recents and bookmarks in find-file.
+    (setq ivy-use-virtual-buffers t)
+    ;; Use Enter to navigate into the directory, not open it with dired.
+    (define-key ivy-minibuffer-map (kbd "C-m") 'ivy-alt-done)
+    ;; Use C-l to go back one level.
+    (define-key ivy-minibuffer-map (kbd "C-l") 'ivy-backward-delete-char)
+    :bind
+    (("C-s"     . swiper)
+     ("M-x"     . counsel-M-x)
+     ("M-y"     . counsel-yank-pop)
+     ("C-c c f" . counsel-git)
+     ("C-c c s" . counsel-git-grep)
+     ("C-x C-f" . counsel-find-file)
+     ("C-x r b" . counsel-bookmark)
+     ("C-h a"   . counsel-apropos)
+     ("C-h f"   . counsel-describe-function)
+     ("C-h v"   . counsel-describe-variable)
+     ("C-h l"   . counsel-find-library)
+     ("C-h b"   . counsel-descbinds)
+     ("C-h i"   . counsel-info-lookup-symbol)
+     ("<f2> u"  . counsel-unicode-char)
+     ("C-c C-r" . ivy-resume)))
+#+END_SRC
+
+*** Integration
+Integration with =magit= and =projectile=.
+#+BEGIN_SRC emacs-lisp
+  (setq magit-completing-read-function 'ivy-completing-read)
+  (setq projectile-completion-system 'ivy)
+#+END_SRC
+
+** DISABLED Helm
 Stolen from Admiral Akber's config.
 
-*** Info
+*** Install
 Helm is incredible, it really supercharges emacs. It's a framework for
 incremental searching / completion / narrowing down options. Sounds
 simple, and it is in application, and it's so worth it.