tui file manager with vim-like key mapping
A tui file manager with Vim-like key mapping, written in Rust.
Fast, simple, and easy to configure & use.
For the overview of this app, take a look at this README, especially
key manual.
For more detailed document, visit https://kyoheiu.dev/felix.
c in visual mode to rename selected items by your default editor at once.ImageSignature::Bigtiff to recognize BigTIFF.and to go up/down 1/2 page in both normal mode and visual mode.PreviewType::TooLargeText (over 1MB).test_has_write_permission test by set_readonly.For more details, see CHANGELOG.md.
| OS | Status |
|---|---|
| Linux | works |
| NetBSD | works |
| MacOS | works |
| Windows | not fully tested yet |
For Windows users: From v1.3.0, it can be at least compiled on Windows (see
.github/workflows/install_test.yml.) If you're interested, please try and
report any problems.
| package | installation command | notes |
|---|---|---|
| crates.io | cargo install felix |
Minimum Supported rustc Version: 1.78.0 |
| Arch Linux | pacman -S felix-rs |
The binary name is felix if you install via pacman. Alias fx='felix' if you want, as this document (and other installations) uses fx. |
| NetBSD | pkgin install felix |
gcc is installed.Update Rust if rustc Show items in the current directory.
fx => Show items in the directory.
Both relative and absolute path available.
### Options
--help | -h => Print help.
--log | -l => Launch the app, automatically generating a log file in {data_local_dir}/felix/log.
--init => Returns a shell script that can be sourced for shell integration.
### Key manual
j / :Go down. k / :Go up. :Go down 1/2 page.
:Go up 1/2 page.
h / :Go to the parent directory if exists. l / / :Open item or change directory. gg :Go to the top. G :Go to the bottom. z :Go to the home directory. z {keyword} :Jump to a directory that matches the keyword. (zoxide required) :Jump backward. :Jump forward. i{file name} :Create a new empty file. I{dir name} :Create a new empty directory. o :Open item in a new window. e :Unpack archive/compressed file. dd :Delete and yank item. yy :Yank item. p :Put yanked item(s) from register zero in the current directory. :reg :Show registers. To hide it, press v. "ayy :Yank item to register a. "add :Delete and yank item to register a. "Ayy :Append item to register a. "Add :Delete and append item to register a. "ap :Put item(s) from register a. V (uppercase) :Switch to the linewise visual mode.
v (lowercase) :Toggle whether to show the preview. s :Toggle between vertical / horizontal split in the preview mode.
/ > :Scroll down the preview text.
/ > :Scroll up the preview text. :Toggle whether to show hidden items. t :Toggle the sort order (name modified time). c :Switch to the rename mode. /{keyword} :Search items by a keyword. n :Go forward to the item that matches the keyword. N :Go backward to the item that matches the keyword. : :Switch to the command line.
:cd {path} :Go to the path.
:e :Reload the current directory.
:config :Go to the dirctory that contains the config file if exists.
:trash :Go to the trash directory.
:empty :Empty the trash directory.
:h :Show help.
:q :Exit.
:{command} :Execute a command e.g. :zip test *.md
:Return to the normal mode.
ZZ :Exit without cd to last working directory
(if match_vim_exit_behavior is false).
ZQ :cd into the last working directory and exit
(if shell setting is ready and match_vim_exit_behavior is false`).
…
config file : $XDG_CONFIG_HOME/felix/config.yaml(config.yml) trash directory : $XDG_DATA_HOME/felix/Trash log files : $XDG_DATA_HOME/felix/log
### macOS
On macOS, felix looks for the config file in the following locations:
1. `$HOME/Library/Application Support/felix/config.yaml(config.yml)`
2. `$HOME/.config/felix/config.yaml(config.yml)`
trash directory : $HOME/Library/Application Support/felix/Trash log files : $HOME/Library/Application Support/felix/log
### Windows
config file : $PROFILE\AppData\Roaming\felix\config.yaml(config.yml) trash directory : $PROFILE\AppData\Local\felix\Trash log files : $PROFILE\AppData\Local\felix\log
### About `Rgb` and `AnsiValue`
You can configure these colors like this:
color: dir_fg: LightCyan file_fg: !AnsiValue 120 symlink_fg: LightYellow dirty_fg: !Rgb [124, 30, 40]
cf: https://docs.rs/serde_yaml/latest/serde_yaml/#using-serde-derive
For more details, visit https://kyoheiu.dev/felix.
No open issues yet, or sync has not completed.