From c72234d6072ff46534b23b3388042db64a3e00af Mon Sep 17 00:00:00 2001
From: Aryadev Chavali <aryadev@aryadevchavali.com>
Date: Sun, 27 Sep 2020 21:47:05 +0100
Subject: (Emacs)~ripgrep -> ripgrep + grep

+bindings for the in-built grep systems, for compatibility
---
 Emacs/.config/emacs/config.org | 45 +++++++++++++++++++++++++++++++++++-------
 1 file changed, 38 insertions(+), 7 deletions(-)

(limited to 'Emacs/.config/emacs')

diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org
index f90bcd7..f550101 100644
--- a/Emacs/.config/emacs/config.org
+++ b/Emacs/.config/emacs/config.org
@@ -935,16 +935,47 @@ for exiting insert state.  Otherwise, I don't really need it.
   (key-chord-define evil-insert-state-map "jk" #'evil-normal-state)
   (key-chord-mode +1))
 #+end_src
-** Ripgrep
-The ripgrep package provides utilities to grep projects and files for
-strings via the rg tool.  Though [[*Ivy][ivy]] comes with =counsel-rg= using it
-makes me dependent on the ivy framework, and this configuration is
-intentionally built to be modular and switchable.
+** (Rip)grep
+*** Grep Preamble
+Grep is a historical artefact.  It is a searching utility that allows
+one to search files for certain regex patterns.  The fact that there
+have been so many attempts to replace grep (with some success) only
+goes to show how important a tool it is.
+
+Ripgrep is a grep-like utility written in Rust.  It subsumes not only
+the ability to search a given file but also to search multiple files
+within a directory (which is usually only found by composing the
+program find with grep to search multiple files).  Being incredibly
+fast through its regex optimisations, it also uses ignore files such
+as =.gitignore= to remove files from its searches.
+
+Grep has default Emacs utilities that use a =compilation= style buffer
+to search a variety of differing data sets.  =grep= searches files,
+=rgrep= searches in a directory using the =find= binary and =zgrep=
+searches archives.  This is a great solution for most environments as
+most of them will have grep and find installed.  Even when you =ssh=
+into a remote machine, they're likely to have these tools.
+
+The ripgrep package provides utilities to ripgrep projects and files
+for strings via the rg binary.  Though [[*Ivy][ivy]] comes with =counsel-rg=
+using it makes me dependent on the ivy framework, and this
+configuration is intentionally built to be modular and switchable.  Of
+course, this requires installing the rg binary which is available in
+most common repositories nowadays.  In terms of general speed, this is
+better.
+*** Grep
+#+begin_src emacs-lisp
+(use-package grep
+  :straight nil
+  :general
+  (leader
+    "sd" #'rgrep))
+#+end_src
+*** rg
 #+begin_src emacs-lisp
 (use-package rg
-  :after evil
   :general
-  (leader "r" #'rg)
+  (leader "sr" #'rg)
   (:keymaps 'rg-mode-map
    "]]" #'rg-next-file
    "[[" #'rg-prev-file
-- 
cgit v1.2.3-13-gbd6f