Written in rust.
``` FM : dired like file manager
Usage: fm [OPTIONS]
Options:
-p, --path
Start it from command line with no parameters :
sh
fm
or with a path :
sh
fm -p ~/Downloads
Many ways to jump somewhere :
Change display, removing details or displaying a single pane.
Most of those features are inspired by ranger and alternatives (Midnight commander), the look and feel by dired.
When you open a file with i, it will send an event to Neovim and open it in a new buffer. Recent versions of neovim export the RPC server address to an environement variable which is read if no argument is provided.
It should always work, even outside of neovim.
It's also possible to pass the RPC server address with fm -s address
.
When leaving fm, it prints the last visited path.
If you add this function to your zshrc
/ bashrc
, it will listen to stdout and cd to the last dir.
bash
function f() {
# start the fm filemanager, enabling cd on quit.
dest=$(fm $@)
if [[ ! -z $dest ]]
then
cd $dest
fi
}
Press h
by default to display the help.
Your current keybindings are shown. Here are the default ones.
`
fm: a dired like file manager. Keybindings.
Char('q'): quit ## Configuration
Char('h'): help
Every configuration file is saved in `~/.config/fm/`
- Navigation -
Left: cd to parent directory You can configure :
Right: cd to child directory
Up: one line up - **Colors** for non standard file types (directory, socket, char device, block device)
Down: one line down - **Keybindings**. Some should be left as they are, but all keybindings can be configured.
Home: go to first line use the provided config file as a default.
End: go to last line Multiple keys can be bound the the same action.
PageUp: 10 lines up - **Openers**. fm tries to be smart and open some files with a standard program.
PageDown: 10 lines down You can change that and use whatever installed program you want. Specify if it
Tab: cycle tab requires a shell to be run (like neovim) or not (like subl).
- **Marks**. Users can save about 100 differents marks to jump to, they're saved
- Actions - in your marks.config file. It's easier to let fm manage your marks, but if
Char('D'): toggle dual pane - if the width is sufficiant you made a mess or want to start over, simply delete the file or a single line.
Char('a'): toggle hidden
Char('s'): shell in current directory ## Neovim file picker
Char('o'): open the selected file
Char('i'): open in current nvim session If you bind this key to start fm, it will send it its RPC server address to fm
Char('P'): preview this file as an argument.
Char('T'): display a thumbnail of an image
Char('-'): move back to previous dir When you execute `NvimFilePicker` on a file, fm will send an event to this
Char('~'): move to $HOME address and it should open the file.
Char('M'): mark current path
Char('\''): jump to a mark ## cd on quit
Ctrl('e'): toggle metadata on files
Ctrl('f'): fuzzy finder When the application is stopped normally, it prints the last visited path on
Ctrl('r'): refresh view stdout.
Ctrl('c'): copy filename to clipboard
Ctrl('p'): copy filepath to clipboard If you add the following function to your .zshrc file, you will cd on quit
Alt('d'): dragon-drop selected file to this directory.
- Action on flagged files - ## Contribution
Char(' '): toggle flag on a file
Char('*'): flag all
Char('u'): clear flags
Char('v'): reverse flags
Char('c'): copy to current dir
Char('p'): move to current dir
Char('x'): delete files
Char('l'): symlink files
Char('B'): bulkrename files
- MODES -
Char('m'): CHMOD
Char('e'): EXEC
Char('d'): NEWDIR
Char('n'): NEWFILE
Char('r'): RENAME
Char('g'): GOTO
Char('w'): REGEXMATCH
Char('j'): JUMP
Char('O'): SORT
Char('H'): HISTORY
Char('G'): SHORTCUT
Char('/'): SEARCH
Char('F'): FILTER
(by name "n name", by ext "e ext", only directories d or all for reset)
````