 Today I want to share with you some really neat functionality that is available to you inside Emacs. I want to share with you iMenu. What is iMenu? iMenu is essentially a menu that allows you to quickly navigate, jump to certain locations within a document. So for example, let me switch over to my desktop. Let me open up a org document. Now iMenu will work differently depending on what kind of document you're working in, but let me zoom in a little bit into this config.org. This is my Doom Emacs config file. And if you do meta x and type iMenu, you'll get a menu here that you could navigate through or search. You know, you could use the arrow keys to go up and down or you could just start searching for something like iMenu because I actually have an iMenu heading here in the document. And I could hit enter and it will navigate to that section here in the document. Now iMenu automatically populates itself depending on what kind of file you're working in. For example, let me do a split here. And if I go and navigate to my home directory, my dot bash rc, for example. And I do meta x iMenu. I'm not going to have much here. I'm going to have cdown, ex, and up. And what these are, these are actually functions that I actually have in this document. If I scroll down, you can see this function right here up. So what iMenu populates in the menu or what they call major definitions. So what is a major definition? Well, in programming, if you define a function, that's a major definition, right? That's something that's very important in that document. So it gets listed in iMenu. If you're working in something like org mode or markdown or any kind of outlining tool, you know, anything like that, and then obviously the headings, right, the top level headings, the second level headings, those are typically will be populated inside iMenu. Let me close that split. Now inside Doom Emacs, they actually have a key binding already set for iMenu. It's space si. So if I do space si, it brings up iMenu. Actually, this is a different iMenu program. This is actually council dash iMenu. You can see it's got a few more headings. Just the top level headings. We get the top level headings. We also get some second level headings as well. So I actually like this much better than the standard iMenu program. So that's council dash iMenu. If you're using Doom Emacs, space si will bring that up. But honestly, there is a better way to implement iMenu. And I found this program over on GitHub, iMenu dash list. So what I did is I went ahead and installed iMenu dash list. And what this does, it displays iMenu in a horizontal split, like a sidebar, almost like a nerd tree-like side menu for you. And I really like it. I've been playing around with it just for a couple of hours here today, but I think I'm going to keep it. And if I do space ti, this is a key binding, I set myself. You can see now I get this iMenu list in a sidebar, space ti will toggle that back off, space ti again. I can navigate the list. You can see I've got top level headings. I've got some second level headings, third level headings. Actually, you can actually fold these with the tab key, kind of like you can fold like the menus here. You know, inside a org mode document, the same kind of tab to fold works in the iMenu dash list. And of course, you can navigate the iMenu list. So typically, the default key bindings, if you're not using Evil mode, will be in for next line, P for previous line, your standard Emax key bindings. If you're using Evil mode like I am, J and K to go up and down, of course, you can search through the buffer as well. But you find something that you want to jump to. For example, maybe I want to jump to the clippy section here inside the document. And you can see it takes me directly to that over here in this buffer. Now it keeps the iMenu list sidebar up. But again, I have a key binding to toggle that. So I'm using space ti for toggle iMenu. But you could do anything for that. Let me search for the iMenu heading here and jump to that space ti to get out of that. So let me show you how to install the iMenu dash list program. Now remember, you don't have to install the standard iMenu program. It's just part of Emax. But iMenu list, let me show you how you install this, at least inside Doom Emax. So I do space period to do the find file command. Let me navigate over to the packages.el file. So packages.el is the file inside Doom Emax where you list all the third-party Emax programs that you want to install. And you can see I have this line right here, package exclamation space iMenu dash list. So it tells Doom Emax to install a program called iMenu dash list. And once that line is there, space hrr to restart Doom Emax. And it'll install any new packages that you've told it to install. And now if I do a space BP for previous buffer, I'll go back to this buffer. If I do a meta x and I search for iMenu dash list, it is there. Now I could hit enter on it and open the iMenu. But really what I want is I want to run this program here, iMenu dash list dash smart dash toggle. Because what that does is it toggles the iMenu, meaning if it's not showing, it shows the iMenu. If it is showing, it hides the iMenu. And I recommend just adding a key binding. That's what I did here. So space TI toggles it on, space TI toggles it back off. And actually if I do space TI to toggle it back on, other than doing a space TI to toggle it back off, you could just hit Q for quit. And it would also get rid of the iMenu for you. Now you notice when I do space TI, the focus, right, the cursor actually jumps to the iMenu list. Which to me, that should be the default setting for iMenu list. But it's actually not. By default, when you open the iMenu list, the focus still stays in the document you're working in. Which is a little weird because then you have to do, you know, control www to get into the vertical split and that you actually want to work in. So they do have a setting though. You can see I've got this variable here, iMenu dash list dash focus dash after dash activation. That's a very long variable name, but it's very descriptive. You know exactly what it means. And you can see I set that to T for true. So when iMenu list is open, it switches the focus to the iMenu list. Now I think probably everyone, if you're going to install iMenu list, you definitely want that setting. There's a few other variables that you can play around with and set. But most of the other ones were things that I really didn't feel like I needed to play with. But you can read the iMenu list GitHub page. Not much to the program, but there are some settings that you can play with if you feel like you need to. So I'm going to go ahead and push my latest config.org for Do Me Max over to my .files repository on my GitLab. So you guys can check out some of this. There's really not much to this section, but if you want to just copy and paste some of the code that I've already got here, I'll put that on my .files repository probably in the next couple of minutes. Now before I go, I need to thank a few special people. I need to thank the producers of this episode. And of course I'm talking about Gabe James-Maxim, Homie Stubald-Matt, Mimit Mitchell-Paul-Royal-West, Armored Dragon, Bash Potato Chuck, Commander Ingrid George Lee, Marsdrom-Methos, Nate Erion-Paul, Peace Archimvedor, Polytech Realities 4 Less, Red Prophet Roland, Tools Devler-Williams, and a bit these guys. They're my high-steered patrons. Over on Patreon with these guys. This quick look at iMenu inside Emacs would not have been possible. The show is also brought to you by each and every one of these fine ladies and gentlemen. All these names you're seeing on the screen right now. These are all my supporters over on Patreon. I don't have any corporate sponsors. I depend on you guys to help support my work. Subscribe to DistroTube over on Patreon. All right, guys. Peace. iMenu's a great program, but a horrible name. Sounds like a crapple device.