ranger.el gives dired a preview pane and a stack of parents
Bringing the goodness of ranger to dired!
At a glance
- What is it?
- ranger.el is an Emacs minor mode that runs inside dired and emulates many features of ranger, with a preview window, multi column parent directories, a history log and copy and paste. It suits people who live in Emacs and want file management without leaving the editor, and it asks for Emacs 27.1 or later and a MELPA setup.
- Who is it for?
- ranger.el suits an Emacs user who wants ranger's browsing model inside dired rather than as a separate application, especially if the work already happens in Emacs, since the mode updates the parent buffers as you move and previews the selected file without leaving the editor.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 150 days ago.
- What is it written in?
- Mainly Emacs Lisp, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A dired minor mode, not a file manager
The scope is stated in the first line of the description: this is a minor mode that runs within dired, and it emulates many of ranger's features. That distinction decides what you are installing. You are not getting a file manager, you are getting a layer inside an existing dired buffer that changes how that buffer behaves, and the surrounding Emacs session keeps its own buffer model, its own undo, its own window configuration. The second point of the description is the mechanism that makes the mode feel like ranger. It shows a stack of parent directories, and it updates the parent buffers while you navigate the file system, so the columns to the left of the active window follow your movement rather than staying frozen. The preview window takes some of its ideas from Peep-Dired, to display previews for the selected files in the primary dired buffer. The features list spells out the scope of the emulation. Preview the selected file or directory, multi column display of parent directories, a history log and a prompt to navigate through history, a toggle between literal and fully formatted preview, indirect scrolling through previewed files, images in the preview window, images fitted to the window when previewing which requires image-dired, quick and persistent sorting across folders, quick access to the shell, mouse support, Emacs bookmarks support, bindings to go up or down to the next directory, a minimal ranger mode called deer mode, copy and paste functionality with persistent flags showing recently copied items, and optional hydra integration for discoverable command menus. The audience is an Emacs user, and the tools it emulates are the ones people reach for when a terminal is not available or not wanted.
The three window roles and the keys that move between them
The window conventions are documented in detail because the layout is the mode. Ranger has the ability to show parent directories for the current working directory, and a preview of the currently selected file or folder. In this package, the parent windows denote any window to the left of the active ranger window, and these represent the selected file or folder's immediate parent directory, and to the left of the parent window there can be any number of grandparent windows if the ranger-parent-depth variable is greater than 1. If you navigate to the root directory then the parent window disappears. The parent window is not expected to be interacted with, but the keys [ and ] navigate up and down the parent directories, and <Mouse-1> can be used to quickly navigate to a file or folder in the parent window. The active window is the ranger or primary window, where most file activities are performed: h navigates up to the parent directory and l opens the selected file or directory, and when a file is opened in ranger the ranger interface closes and the window configuration reverts to its previous state, which is the behaviour that makes the mode feel like a modal browser rather than a permanent split. The window on the right side is the preview window, showing the contents of the selected file or directory. It is open by default and can be opened or closed by pressing i, its default state is set with the ranger-preview-file variable, and the literal preview of selected files can be toggled with zi, with the default state set by ranger-show-literal. To preview images, and the contents of archive files, the literal preview has to be disabled.
Installing from MELPA, and the hydra menu as an option
The installation path is short, and the requirement is explicit: Ranger requires Emacs 27.1 or later. Once MELPA is set up, the package-install command installs Ranger, and the package name is ranger. The optional piece is the hydra package, which gives the discoverable command menu, and the README gives it as an interactive command in the Emacs Lisp style.
M-x package-install RET hydra RETThat is the whole install. The package is on MELPA, with the badge linking to the MELPA package page, and the development chat is on Gitter under the ralesi organisation. There is also a hydra example in the README's key binding section, and a separate minimal mode called deer mode, listed in the table of contents as Minimal Ranger Mode (deer), which is the reduced variant for people who want the navigation model without the preview machinery. Two things about the project shape are worth knowing. The repository carries a master branch and a develop branch with separate build status badges, and the build is Travis based, with a .travis.yml at the top level and a Makefile that carries a full Emacs build configuration. The Makefile can build a minimal Emacs with no special flags to build as fast as possible, using the EMACSCONFFLAGS variable set to --with-x-toolkit=no --without-x --without-all with an XML2 option and optimised compiler flags. The tests directory at the top level suggests the mode is exercised rather than only demonstrated, and the screenshots directory holds the images the README links.
Key bindings for the everyday operations
The binding scheme follows ranger closely, which is the point of the emulation, so muscle memory from the terminal version carries over. The basic commands are compact: ? shows the basic commands in the minibuffer, du shows the selected files with their file size, q and ZZ close the tab or disable ranger, Q and ZQ disable ranger, and C-r refreshes the ranger buffer. Navigation uses h for up and l for opening, with the bracket keys moving between parent directories. Searching for a file or directory, copying, renaming, moving or deleting, marking, sorting, toggles and settings, the shell, the writable dired mode, mouse handling and the other commands each have their own section in the table of contents, and the README documents them in the same grouped way ranger documents its own bindings. The minibuffer help binding is worth remembering first, because the mode is dense and the docs are long. One feature deserves separate attention because it changes how you work with large trees. The mode offers quick and persistent sorting across folders, and a history log with a prompt to navigate through history, so that a sequence of jumps through a deep tree can be replayed. Combined with the parent directory stack, the mode is less a file list than a memory of where you have been, which is the ranger idea that dired alone does not have.
The TODO list says plainly what is missing
The README keeps a short list of unfinished work, and for a minor mode it is worth reading before you commit. Preview PDF and document viewing is on the list, so a PDF is not previewed in the pane today. Improved navigation within archive files is on the list, which matches the earlier note that previewing the contents of archive files requires disabling the literal preview, so the support is partial rather than absent. Setting up tabs and navigate between them is on the list, and so is work with flattened subdirs and tree. The table of contents also lists sections for coming from dired, for setting ranger as the default directory handler, for bookmark navigation, for tab and history usage, for copy and paste functionality, for selected file actions, for file sorting and listing, and for troubleshooting and package workarounds, including a helm-descbinds entry, which is a hint that dependency conflicts with other packages are a known practical issue. A separate section covers configuration in some depth, with buffer management, directory listing, window decoration and appearance including header lines and delays, parent window options, and preview window options, and within the preview options an exclude list that can be kept by extension, by size, and for binary files. That exclusion list is the knob to reach for first when a preview misbehaves.
The licensing and maintenance picture is thin
Two facts about the repository need stating because the README does not state them. The licence field for this project is recorded as unknown, and the top level listing has no LICENSE file, so the terms you rely on are the ones in the file headers rather than a licence document. The Makefile carries an MIT style permission notice with a copyright line naming Sebastian Wiesner and the years 2015 and 2016, and the source repository is the ranger.el project with the badge links pointing at ralesi and ranger.el on Gitter and MELPA, while the fork you are reading lives under the punassuming organisation, so the question of what the fork's own licensing state is has to be answered by reading the headers. That is a real consideration for anyone shipping this inside a product. The maintenance picture is thinner still. The repository is not archived and the last push was on 2026-05-27, and there are no GitHub releases, so there is no version to pin and no changelog to read, and the build status badges point at a Travis service that the project has since moved away from. The practical consequence is that installing from MELPA gives you whatever the package archive currently holds, and if you need a reproducible Emacs configuration you should vendor ranger.el into your own setup rather than depend on the archive entry updating. The milestones.org file at the top level suggests a planning document exists, but its content is not part of what the README documents.
Editorial conclusion
ranger.el suits an Emacs user who wants ranger's browsing model inside dired rather than as a separate application, especially if the work already happens in Emacs, since the mode updates the parent buffers as you move and previews the selected file without leaving the editor. It is the wrong tool if you want the standalone ranger in a terminal, because this is an Emacs minor mode and not a file manager of its own, and it is the wrong tool if you expect feature parity, since the TODO list still carries archive navigation, tabs and document preview. Before you install it, set up MELPA and install the ranger package, then check the hydra package if you want the discoverable command menu, and note that the licence field for this repository is recorded as unknown, with the copyright notice sitting in the Makefile rather than in a LICENSE file.
Frequently asked questions
What is ranger.el and how does it relate to dired?
ranger.el is an Emacs minor mode that runs within dired and emulates many of ranger's features, showing a stack of parent directories, updating the parent buffers as you navigate, and adding a preview window that takes some ideas from Peep-Dired. It requires Emacs 27.1 or later.
How do I install ranger.el in Emacs?
Set up MELPA, then use the package-install command to install it, and the package name is ranger. For the optional hydra command menu, install the hydra package as well with M-x package-install RET hydra RET.
How do I show a preview of the selected file in ranger.el?
The preview window on the right shows the contents of the selected file or directory and is open by default, and you can toggle it with i. Selected files are previewed literally by default, and pressing zi toggles between a fully formatted and a literal preview, with the literal state set by ranger-show-literal and the window state by ranger-preview-file.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/punassuming-ranger-el)Was this useful?