emacs/var/elfeed/db/data/6a/6acce97573a2ffa1905ccb8dde6af9098ade40c5
2022-01-03 12:49:32 -06:00

70 lines
2.9 KiB
Plaintext

<p>
One of the comments on my last video talked about the new project
management support Emacs includes in it's latest version -
project.el. I remembered reading about it when it rolled around but
then forgot and never checked it out.</p>
<p>
Up until recently when working in projects I used <a href="https://github.com/bbatsov/projectile">Projectile</a>, a great
package by <a href="https://twitter.com/bbatsov">Bozhidar Batsov</a>, also known as Bug. I only used it when
doing development work - that's when I find myself jumping around
within a group of related files. At other times, I'm pretty much in
one file, do my thing, then move on.</p>
<p>
I wrote a post and did a video on Projectile a while ago - you can
check it out [[<a href="https://cestlaz.github.io/posts/using-emacs-33-projectile-jump/">https://cestlaz.github.io/posts/using-emacs-33-projectile-jump/</a>
][here]].</p>
<p>
As I mentioned in the last video, I decided to rebuild my Emacs config
from scratch and I'm trying to be a bit more minimalist so with that
reminder I got, I figure it's time to check out the now built in
project.el. If it's as good as projectile, or even, good enough, it
could be a nice alternative.</p>
<p>
At it's core, project.el works similarly to projectile. There's a
prefix key an then an action which is restricted to your project. For
projectile, it was <code>C-c p</code> and the default for project.el is <code>C-x
p</code>. No big difference there. Projectile seems to have many many more
options but in general, I find that all I need is</p>
<ul>
<li>
<p>Switch to a project - <code>C-x p p</code></p>
</li>
<li>
<p>Find or open a file in a project - <code>C-x p f</code></p>
</li>
<li>
<p>Switch buffers in a project - <code>C-x p b</code></p>
</li>
<li>
<p>Delete all the project buffers - <code>C-x p k</code></p>
</li>
<li>
<p>List the project buffers</p>
</li>
</ul>
<p>Project.el has all except listing all the buffers. It also supports a
few other features that I think I'll find useful:</p>
<ul>
<li>
<p>project dired - <code>C-x p d</code></p>
</li>
<li>
<p>project shell (or eshell) <code>C-x p s</code></p>
</li>
<li>
<p>project regex search and variants <code>C-x p g</code></p>
</li>
</ul>
<p>I'm not sure if projectile has these. It probably does and I could see
them being useful. I probable won't use the regex searches much
because I'll likely use other tools for those like consult-ripgrep.</p>
<p>
So, it certainly seems like project.el has enough coverage for my
purposes. Another difference between the two projects is that
project.el only supports a couple of project definitions - things that
are supported by Emacs' VC system ad things supported by Emacs EDE
thing (which I've never really played with). I seem to recall
Projectile being more flexible.</p>
<p>
In any event, project.el looks like it's a nice simple alternative at
least for me. Check out the video for the runthrough:</p>