Using Emacs - 33 - projectile, dumb-jump


If you keep Emacs open all the time you end up accumulating lots of buffers. That can make navigating a little bit awkward.

Projectile is a really nice package that makes navigating in and between projects much easier. I also have counsel-projectile installed.

Here's my configuration:

;; projectile
(use-package projectile
:ensure t
(setq projectile-completion-system 'ivy))

(use-package counsel-projectile
:ensure t

Projectile considers a sub-directory tree to be a project if it's a git or other source control repo, if it's created by tool like lein, maven, or sbt, or if you put an empty file named **.projectile** in the root directory of the project.

Projectile learns about projects when you open a file in that project and then stores that information in an Emacs bookmark file in your .emacs.d directory.

You can switch between projects using C-c p and when in a project, load another file using C-c f. If you use the which-key package as I do, just type C-c - the projectile prefix and then which-key will bring up help.

The video goes through some of my favorite features and you can find the full documentation can be found here.

The other package I show is dumb-jump. It's basically a zero (or almost zero) configuration tags replacement. Really nice.

Here's my current config:

(use-package dumb-jump
:bind (("M-g o" . dumb-jump-go-other-window)
("M-g j" . dumb-jump-go)
("M-g x" . dumb-jump-go-prefer-external)
("M-g z" . dumb-jump-go-prefer-external-other-window))
:config (setq dumb-jump-selector 'ivy) ;; (setq dumb-jump-selector 'helm)

;; (setq dumb-jump-selector 'ivy) ;; (setq dumb-jump-selector 'helm)