Searching the awesome-lists on Github

Discovered the glorious awesome lists today on Github. They are available through a simple search on github, and contain curated lists of resources of all kinds on a multitude of topics.

As one might expect, there is a lot of common ground between these lists, including topics and links.

How could one search for a keyword through all these repositories? I have always wanted search for particular keywords or code snippets in my Emacs configuration files, or in other files in a particular location. This is especially to verify if a bit of code or note is already available, in another location. Something that looks like this ;):

Searching for ‘datascience’ with emacs-helm-ag through a bunch of awesome-lists and other local repositories.

An answer had been available in Howard’s cool blog post on why one should learn Emacs - in a footnote (!), in which he’s mentioned ack and ag ( the silver searcher). 1. It is even possible to edit in line with each search.

The silver searcher github page provides clear examples of how it’s significantly faster than ack (and similar tools). Further exploration led me to the emacs-helm-ag package, which is a helm interface to the silver searcher. Implementing emacs-helm-ag was as simple as adding it to my list of packages, and adding a basic setup to my helm configuration.2

As of now, I add packages to Scimax using this bit of code that I’ve obviously borrowed from the internet, and this case - I’m afraid I did not note the source.

;; Setting up use packages

;; list the packages you want

(setq package-list '(diminish org-journal google-this ztree org-gcal w3m org-trello org-web-tools ox-hugo auto-indent-mode ob-sql-mode dash org-super-agenda ox-hugo workgroups2 switch-window ess ess-R-data-view interleave deft org-bookmark-heading writeroom-mode evil evil-leader polymode helm-ag))

;;fetch the list of packages available

(unless package-archive-contents
  (package-refresh-contents))

;; install the missing packages

(dolist (package package-list)
  (unless (package-installed-p package)
    (package-install package)))

;; Remember to start helm-ag. As per the Silver searcher github site, the helm-follow-mode-persistent has to be set before calling helm-ag.


(custom-set-variables
 '(helm-follow-mode-persistent t))

(require 'helm-ag)

This is how it looks in action » Sweet !!

Notice the search across multiple files. So I’ve called require org capture perhaps more times than necessary.

  1. This is my first animated gif in a blog post! It was tricky! I used the free GIPHY capture app on the Mac store. ↩︎

  2. ↩︎

Related