diff options
author | luxagraf <sng@luxagraf> | 2021-02-24 20:58:20 -0500 |
---|---|---|
committer | luxagraf <sng@luxagraf> | 2021-02-24 20:58:20 -0500 |
commit | 3b5dcc3c56e2818b93f55ec40d6c35d605d54a49 (patch) | |
tree | 0bd0bbf174b1f5bad9cd72cc59180ee102c83be9 /src/src-ranger.txt | |
parent | 4df6d9a200b257f7e7c00ce4a8f25fcf26fe26ea (diff) |
rearranging, moving the single large file workflow.
Diffstat (limited to 'src/src-ranger.txt')
-rw-r--r-- | src/src-ranger.txt | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/src-ranger.txt b/src/src-ranger.txt new file mode 100644 index 0000000..f66a707 --- /dev/null +++ b/src/src-ranger.txt @@ -0,0 +1,63 @@ +[Ranger](http://nongnu.org/ranger/) is a terminal-based file browser with Vim-style keybindings. It uses ncurses and can hook into all sorts of other command line apps to create an incredibly powerful file manager. + +If you prefer a graphical experience, more power to you. I'm lazy. Since I'm already using the terminal for 90 percent of what I do, it make sense to not leave it just because I want to browse files. + +The keyword here for me is "browse." I do lots of things to files without using Ranger. Moving, copying, creating, things like that I tend to do directly with `cp`, `mv`, `touch`, `mkdir` and so on. But sometimes you want *browse* files, and in those cases Ranger is the best option I've used. + +That said, Ranger is something of a labyrinth of commands and keeping track of them all can be overwhelming. If I had a dollar for every time I've searched "show hidden files in Ranger" I could buy you a couple beers (the answer, fellow searchers, is `zh`). + +I'm going to assume you're familiar with the basics of movement in Ranger like `h`, `j`, `k`, `l`, `gg`, and `G`. Likewise that you're comfortable with `yy`, `dd`, `pp`, and other copy, cut, and paste commands. If you're not, if you're brand new to ranger, check out [the official documentation](https://github.com/ranger/ranger/wiki/Official-user-guide) which has a pretty good overview of how to do all the basic stuff you'll want to do with a file browser. + +Here's a few less obvious shortcuts I use all the time. Despite some overlap with Vim, I do not find these particularly intuitive, and had a difficult time remembering them at first: + +- `zh`: toggle hidden files +- `gh`: go home (`cd ~/`) +- `oc`: order by create date (newest at top) +- `7j`: jump down seven lines (any number followed by j or k will jump that many lines) +- `7G`: jump to line 7 (any number followed by `G` will jump to that line +- `.d`: show only directories +- `.f`: show only files +- `.c`: clear any filters (such as either of the previous two commands) + +Those are handy, but if you really want to speed up Ranger and bend it to the way you work, the config file is your friend. What follows are a few things I've done to tweak Ranger's config file to make my life easier. + +###Ranger Power User Recommendations + +Enabling line numbers was a revelation for me. Open `~/.config/ranger/rc.conf` and search for `set line_numbers` and change the value to either `absolute` or `relative`. The first numbers from the top no matter what, the `relative` option sets numbers relative to the cursor. I can't stand relative, but absolute works great for me, YMMV. + +Another big leap forward in my Ranger productivity came when I discovered local folder sorting options. As noted above, typing `oc` changes the sort order within a folder to sort by date created[^1]. While typing `oc` is pretty easy, there are some folders that I *always* want sorted by date modified. That's easily done with Ranger's `setlocal` config option. + +Here's a couple lines from my `rc.conf` file as an example: + +~~~bash +setlocal path=~/notes sort mtime +setlocal path=~/notes/reading sort mtime +~~~ + +This means that every time I open `~/notes` or `~/notes/reading` the files I've worked with most recently are at the top (and note that you can also use `sort_reverse` instead of `sort`). That puts the most recently edited files right at the top where I can find them. + +Having my most recent notes at the top of the pane is great, but what makes it even more useful is having line wrapped file previews so I don't even need to open the file to read it. To get that I currently use the latest Git version of Ranger which I installed via [Arch Linux's AUR](https://aur.archlinux.org/packages/ranger-git/). + +This feature, which is invaluable to me since one of my common use cases for Ranger is quickly scanning a bunch of text files, has been [merged to master](https://github.com/ranger/ranger/pull/1322), but not released yet. If you don't [use Arch Linux](/src/why-i-switched-arch-linux) you can always build from source, or you can wait for the next release which should include an option to line wrap your previews. + +###Bookmarks + +Part of what makes Ranger incredibly fast are bookmarks. With two keystrokes I can jump between folders, move/copy files, and so on. + +To set a bookmark, navigate to the directory, then hit `m` and whatever letter you want to serve as the bookmark. Once you've bookmarked it, type ``<letter>` to jump straight to that directory. I try to use Vim-like mnemonics for my bookmarks, e.g. ``d` takes me to documents, ``n` takes me to `~/notes`, ``l` takes me to the dev folder for this site, and so on. As with the other commands, typing just ``` will bring up a list of your bookmarks. + +###Conclusion + +Ranger is incredibly powerful and almost infinitely customizable. In fact I don't think I really appreciated how customizable it was until I wrote this and dug a little deeper into all the ways you can map shell scripts to one or two character shortcuts. It can end up being a lot to keep track of though. I suggest learning maybe one or two new shortcuts a week. When you know longer have to think abut them, move on to the next couple. + +Or you can do what I do, wait until you have something you want to do, but don't know how, figure out how to do it, then write it down so you remember it. + +####Shoulders Stood Upon + +* [Dquinton's Ranger setup details](http://dquinton.github.io/debian-install/config/ranger.html) - I have no idea who this person is, but their Ranger setup and detailed notes was hugely helpful. +* [Ranger documentation](https://ranger.github.io/ranger.1.html) - The docs have a pretty good overview of the options available, though sometimes it's challenging to translate that into real world use cases. +* [Arch Wiki Ranger page](https://wiki.archlinux.org/index.php/Ranger) - Where would we be without the Arch Wiki? + + + +[^1]: In fact, just type `o` and you'll get a list of other sorting options (and if you know what `normal` means, drop me a comment below, I'm still trying to figure out what that means). |