Command line file manager in Rust with VIM-inspired keybindings.
NOTE!! This is still in Work in Progress and not usable for daily use until version 0.1.0 is released.
- Fast: The application should be snappier at startup times after reading all necessary configs, loading resources, etc.
- Fully operational: Most of the features of a morden file manager should be implemented, although support for uncommon features should be offloaded to scripts/plugins
- Keyboard Driven: The whole idea of the project is based upon the keyboard driven approach inspired from vim.
- Functional: Composition/chaining of vim-like commands based on your existing muscle memory, to just get things done. I am not inclined towards defining new set of keybindings/commands until unless it is absolutely necessary!
- 24-bit Image: Preview image with the help of w3mimg(or possibly ueberzug).
- Async: Make some of the core operations non-blocking
- Extensibility: Marcos could be extended with the help of plugins
- Support for lua/python plugins: Plugins can be written in lua/python languages
Only some key bindings are implemented as of now. All mentioned key bindings will be implemented before 0.1.0 release.
| Key | Action |
|---|---|
| q | Exit marcos |
| j | Select item down |
| k | Select item up |
| h | Go previous (left) |
| l | Go next(right) |
| : | Activate command mode |
| gg | Go to the first selection |
| G | Go to the last selection |
| [count]G | Go to the [count] item |
| za | Toggle visibility of hidden items |
| y | Yank(Copy) the selected file/folder(Similar to Ctrl-c) |
| x | Cut the selected file/folder(similar to Ctrl-x) |
| p | Paste the Copied/Cut file/folder(Similar to Ctrl-v) |
| r | Rename selected file/folder |
| dd | Delete selected file/folder(with confirmation) |
| o | Create new file(touch filename) |
| O | Create new directory (mkdir dirname) |
| P | Paste the Copied/Cut file/folder replacing existing with same name(with Confirmation) |
| mX | Create a bookmark with name X |
| `X | Jump to bookmark with name X |
| n | Move to next match |
| N | Move to previous match |
| / | Search |
| v | Starts visual mode, selects all files until you press ESC |
| V | Visual mode, select all |
| Ctrl+r | Refresh(listings, data, cache, etc) |
| ESC | Get me out! |
The best way to learn and know about the structure is by reading the docs by running:
cargo doc --open
Besides, I try my best to include relevant comments and TODO[detail] tags.