 Over the last four years of using Linux full-time. I've discovered that I really like using terminal file managers And over the last couple years my go-to terminal file manager has been Ranger and I love Ranger. It's fantastic It's customizable. It's fast enough. There's tons of extensions and stuff that you can use You can customize the key bindings very easily It's similar to kind of customizing them and that there's just a ton of stuff that you can do with it But lately I've been using a file manager called NNN and I've really come to truly enjoy using it So I thought what I'd do is go through and Compare the two Briefly and then talk a little bit about why I've switched from Ranger to NNN. So that's what we're gonna do today Let's go ahead and jump in So first let's go ahead and look at Ranger. So this is the Ranger github page and Ranger is written in Python almost exclusively in Python and that turns a lot of people off, but really I've never really had a problem with anything written in Python I know technically it's slower than like Rust or C or any of the other programming languages But I've never really had an experience where I've been completely turned off with something being so slow The only example I can think of where something was kind of slower than I really expected me was Castero Which is a podcast terminal application That was a little slower than normal, but that was that's the only example. I've ever used it I've seen where pep Python has really been a negative But I know a lot of people dislike Python. So that's just put that out there Ranger is written in Python Now this is what my re oops. That's not the right one this is what my ranger looks like and Really, I've not done a ton of customization terms of look and feel I've only thing I've done over the last few years is Just go through and add a whole bunch of key binding so I can go to let's say I want to jump to one Of my external hard drives. I just can hit The key binding I had to wait for the hard drive to spin up obviously But eventually it will and then it will just go to that key bind or that that location Same thing for bulk rename Bulk delete and so on and so forth. I have key bindings for those things and also, you know And it's just makes it so easy. So eventually it did show up there That didn't have anything to do with ranger being slow That's just because I have a mechanical hard drive that you know takes forever to spin up So if I go back home here, there's just a ton of things that I can do with this So let's just say I'm in my wallpapers app And I wanted to go through and select a whole bunch of things and then I could just do bulk Rename and and I could go through and actually rename every single one of these Just like that and then it would go through and save those files with the new names That is really cool. And it's something that I've used a lot One of the other things I really like about ranger is that it's easy to customize So if we take a look at the ranger configuration file, which is located in .config ranger And then we can actually just go ahead and look at it like this You can see that it's very easy to configure So there's a lot of stuff here that reminds you a lot of either i3 or them in terms of configuration syntax So you'll see a lot of things like set view mode to a certain thing You'll see a lot of things like If we go down here to the bottom, a lot of this stuff looks almost precisely what you'd see in a vmrc file It's named a little bit differently, but the key it's kind of the same And it's very easy to configure very easy to get your mind around And I really truly do like that. So if you're into ranger The things that you need to know is that it's very extensible very easy to customize is quick enough and has Some features that are really good. So if you noticed earlier When we're in the pictures folder here Go down to walls You can see there's actually Image previews. Now, this is one of the areas where ranger kind of falls down Mostly because the image previews thing is built in but it's also kind of hacky and it also is very terminal dependent So this right here is st and it works just fine in st. So if I quit this And put out of this and start up. Let's go to We go here and we're in alacrity. Now, you can see that there's no terminal image terminal image preview and That is pretty much your experience A lot of the times with ranger because sometimes image preview will work in alacrity. Sometimes it won't Sometimes it will work in st. Sometimes it won't What causes it to work and not work? I have no clue and I'm pretty sure nobody else does either It's just a really weird quirk of ranger where sometimes your image previews won't work. So That was my biggest problem with rangers that it's sometimes inconsistent on how it works in certain terminals specifically with the image previews It's just really weird and it's something that if you rely on image previews So like like say I wanted to set this wallpaper here as a Or set this wallpaper here as my default wallpaper. I have a key binding for that But how would I know that that's the one that I want to choose, you know, because it's just the The file name is not at all helpful So I'd actually have to go through and you know, open that up and then hit my key binding to actually set it That's a not a great way to do it. So And you'll also notice that once you've opened up that preview if you change files It opens up another preview window instead of just, you know, going through them. That's also not all that great It's something that kind of really bothered me and it More often than not, it just made me just go through and use a image preview application like xx Sxiv and where the things just kind of just are meant to be shown as a picture. So The reason why I just decided I was going to move away from ranger was because of this image preview stuff. So Let's go ahead then and take a look at nnn So If we open up nnn, it's just as simple as it is this and this is not really what nnn looks like out of the box There's no Icons here for one when you first download it Basically, this is what you get and you can navigate this just like you can in them using the Vim keys And stuff now you can see there's no image preview here because they handle image previews differently And I'll get to that here in a few minutes Because you can navigate just like you can in ranger using the Vim keys and so on and so forth You can multiple select things by using the spacebar. You can Create your own Keybindings and stuff to go to certain directories do certain things bulk rename and so on and so forth. It's it's all there So really the question you have to ask then is so if the similarities are Quite prevalent, then why would I switch and the answer to that question is twofold one? It is faster. So this is written in C And bash scripting. So it's mostly C. There's but there's quite a bit of bash So you you will notice that it it does move between things faster and it does load things faster The second reason is that it has a much more extensive Plugin system. So I didn't really talk much about the plugins in ranger But if we go through here to the ranger Wiki and we look at the ranger plugins. We can see that there's a few there's 15 of them You know, it's good. There's some things to do mp3 conversion. There's stuff here for get and Diff and stuff This stuff, you know fzf is here. So, you know, it's Not as if there's no plugins for ranger. There are and there's probably the ones that you want, right? There's not You know, you're not going to drag in is here. So you can actually drag and drop stuff It's the the main stuff that you actually need. But if you if we go to The nnn stuff here and we look at the plugins These are all plugins and there are a couple dozen of these things. I'm not exactly sure. I didn't go through an actual account them But, you know, there's just tons of them. It just goes on and on and on and on. There's just tons of them and some of them are really weird For example, there was one up here called Guten read. It's where you can browse download and read from the project Gutenberg I don't know why that's in a file manager, but it's there. You know, so there's a ton of them. There's a few of them that are like kind of like that But uh, for the most part, these things are really useful. So there's a whole bunch of different ones for fuzzy finding There's some to update the plugins themselves. There's some to update the plugins themselves stuff for katie connect. There's stuff for launching GUI applications. There's stuff for mp3 conversion and playing music and so on and so forth. There's just tons of them, right? So that really Allowed me to go through and do quite a bit with nnn that I wasn't able to do the ranger specifically around previews So let's talk a little bit more about plugins specifically previews. So Probably the biggest downside of nnn is that it does not have a configuration file like at all. There's not one There never will be one. It's just not the way they do things and That's a little disappointing because it's mixed things quite a bit harder. So in order to configure nnn You have to use environment variables So if we go to back here and we quit this out and we see you back into my home directory and I'm using zsh all my environment variables are located in The zsh end file. So if I vim into dot zsh Env We'll see all of my Environment variables. Now if you're using bash, you're going to be looking for bash profile If you're using fish, you'll have to go to your fish your fish configuration file where you'll find more Of your environment variables. Now, basically if you don't know what an environment variable is Is basically it's one thing that sets a default for the entire system. So for example Up here, I have export editor nvim. That's basically telling My linux system when I'm Using a file that can be edited. I want it to open up an nvm A lot of times the default is nano a lot of times the default is vim or vi or whatever But in my case, I want to be nvm same thing with the browser if I open up a link I want it to open up in firefox. So for nnn All of our configuration stuff is done here now if you want to control colors and stuff There's a there's a way to do your colors and stuff right here remember this I know I haven't actually changed any of the colors here because I just let it I just let it inherit stuff from the terminal itself But you can define your colors here. You can define Other certain characteristics of how nnn looks here But basically what I've done and what you have to do is if you want to go through and use The nnn plugins. So first of all you download the plugins to a certain folder And then you can just go through and use them You have to export this specific environment variable And then you just go through and say For the letter p. I want to use the plugin preview dash tab for the letter f. I want to use The plugin fz open for the letter i I want to use image view for the number one I want to use wall and number two. I want to use wall two and I'll talk about wall and wall two here in just a minute, but Basically what this means is if we open up another terminal here and go to nnn So for example, let's just say I want to use the fuzzy finder So I can go through and let's just enter into my pictures folder here. So let's just do Semicolon which tells nnn that you want to use a key binding to get into a plugin and then use the letter f and then I can just go through and search for something like walls And I'll take everything that has walls in it So it's it's just your regular fuzzy finder and then you can just go through and navigate things with your Your arrow keys and let's just say I wanted to open up. I don't know this one here And that will just you know open up the file And then you can just hit q to quit. So that's fuzzy finding and like I showed you earlier There's a few fuzzy finders that will go through your history Open up files and so on and so forth So another one that I have is preview tab now. This is really where nnn kind of shines So let's go ahead and go into my walls folder here And then just go here. It doesn't really matter Let's find one that has a whole bunch of actual things in it This one will work. So let's say I wanted to preview these. Let's go ahead and Mix this smaller In ranger Depending on what term alignment. I just hover over. I just hover hover over These and I would preview but like I said, that's kind of finicky in nnn in order to do this I have to do semi colon and then p and that will actually go through and Preview that image now. What's cool about this is that because it uses sxiv I can just go back through and refocus on nnn and I can actually cycle through these and it will preview every single one That's really quite cool, right? And it works. So that is how preview works The other plugin that I use which is image will just preview that one image. It won't cycle through them now One of the cool plugins that Nnn has is the ability to set your wallpaper now I've went through and coded this into ranger as well But this comes out of the box, you know, as long as you have plugins enabled. So let's just say I wanted to set this It doesn't really matter. Just let's say I wanted to set this wallpaper here as my wallpaper now It uses nitrogen to do this now The reason why I have two is because by default It will just set your wallpaper to span both your monitors So if you have two monitors, it just spanned it across both of them And most of these wallpapers are meant to be shown on a 1080p screen not a large widescreen spanning two monitors. So for me, I just went through and Cloned the first wallpaper thing and then changed the little script so that I can set for both my wallpaper. So Or both my monitors. So if I do semi-colon One that changes the wallpaper. It looks like this And then you won't be able to see this but I could do semi-colon two And my wallpaper on my other monitor changes as well So that's how that works and it's really cool. Those plugins really make Nnn super special Now, like I said, the biggest problem I have with Nnn is that It's configured through the environment variables that makes it really hard uh, not only because There's a certain syntax that you have to use here But it just doesn't seem that there's as much you can do with it because there's not like an a configuration file That you can get in into and you know tinker with stuff The way Nnn does stuff through the plugins stuff you do all that stuff through bash all these Plugins and stuff they're bash script So you can basically create your own bash script and then associate that with a plugin And it will allow you to create your own plugins and that's how you extend Nnn to do cool new things Other than that the biggest difference between Nnn and ranger is probably the look so if we open up ranger here again, you'll notice that you can see Where you are in the tree all the time So if I just go to the pictures again and walls And like this I can see the previous folder over here, right? And there's always a You know, you pretty much always know where you are and it's kind of like a tree based system and you can only always see this with Nnn You're only seeing the file you're in now you can see the Path that you're in which only seeing the file that you're or the directory that you're located in And that's that's that's one way of doing it and it's not something that's really bothered me But it's something to get used to because it looks very simple, but basically the way Nnn works is that it does things by tabs. So if you notice these one two three four up here These are basically tabs and they call them something different But if if I go to two and then go back to my home directory And then go back to one you can see I now have both of these things open And I can do that for three two so I can go to my music directory here And then go back to two three One and so on and so forth and I can transfer files between these very easily just by selecting them and yanking them Just like you would in ranger with ranger You have tabs like you can do tabs and It's easy to do tabs But it doesn't feel like it was really meant to be used as tabs But you can actually go through and do quite a bit more with ranger because you can also set up dual pane mode Similar to what you could do with midnight commander. So that's really cool. That's not something that you can do with Nnn so If you're looking for something that's a little bit more complex. I just feel like ranger is definitely the more complex of them out of the box because All the features are there like it has a few plugins, but most of the features that you'll need are inside ranger And you can go through do a ton of things with it. You can go through and do the dual pane mode You can do you know change the look and feel quite a bit more than you can do with nnn But if you're looking for something that's more even more extensible, I think nnn is something that you can build up kind of from the you know the Bottom up because you can go through and just create as many script, you know Bash scripts as you want to do as many things as you want to interact with your files And you know kind of the sky's the limit. So That was a little rambly video comparing ranger and and and There's tons of stuff that I didn't cover But the reason why I want to talk about is because I'm switching to nnn and the biggest reason I talk Is because of what I said with the image previews the image previews in ranger are very finicky So I've just decided to switch to nnn. I also like the idea that I can go through and create a whole bunch of bash scripts and That will allow me to interact with my files in a whole bunch of different ways now You can do the whole bash script thing with ranger as well I don't want to give the impression that because the whole bash script interacting with files through a Terminal file manager is specific to nnn. That's not the case I just like the fact that nnn has a whole bunch of them created for me out out of the box but I mean almost out of the box and That means that there's tons of stuff that I don't actually have to go through and do afterwards So I'm switching to nnn in the comments below. Let me know if you use a terminal file manager And if so, which one I'd love to hear from you Thank you for watching. You can follow us on twitter at the linux cash You can follow us on facebook at the linux casting support us on patreon at patreon.com Slash the next cast patrons in tiers two three four and five get early access to some of our videos So if you're interested in that make sure you check out patreon.com slash linux cast I'd like to take a moment to thank your current patrons devon marcus maiglin donnie svin maric camp and michel thanks everybody for your support Thank you for watching. I'll see you next time