1 ![sfm](https://github.com/afify/sfm/blob/main/sfm.png?raw=true)
3 **simple file manager**
5 [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/afify/sfm.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/afify/sfm/context:cpp)
6 [![Build status](https://ci.appveyor.com/api/projects/status/goq88ahjyvtjrui2?svg=true)](https://ci.appveyor.com/project/afify/sfm)
7 [![code-inspector](https://www.code-inspector.com/project/19656/score/svg)](https://frontend.code-inspector.com/public/project/19656/sfm/dashboard)
8 [![code-inspector](https://www.code-inspector.com/project/19656/status/svg)](https://frontend.code-inspector.com/public/project/19656/sfm/dashboard)
12 sfm is a simple file manager for unix-like systems based on [termbox](https://github.com/nsf/termbox).
13 dual pane, bottom statusbar, bookmarks, open files by extention, vim-like key bindings as default configuration. cwd is left pane dir. No dependencies, static linking, c99.
18 $ perf stat -r 100 $filemanager
20 | filemanager | cycles | instructions |
21 |:------------|:--------------|:--------------|
22 | `sfm` | `1,137,335` | `1,789,463` |
23 | `noice` | `5,380,103` | `9,214,250` |
24 | `nnn` | `5,664,917` | `9,790,040` |
25 | `lf` | `18,874,802` | `33,281,073` |
26 | `vifm` | `38,792,656` | `93,301,255` |
27 | `ranger` | `536,225,530` | `956,977,175` |
29 * Inspired by [vifm](https://vifm.info/) and [noice](https://git.2f30.org/noice/).
30 * Follows the suckless [philosophy](https://suckless.org/philosophy/) and [code style](https://suckless.org/coding_style/).
32 <img src="https://github.com/afify/afify.github.io/raw/main/img/sfm_sc.png" alt="drawing" width="800"/>
43 |:---------|:--------------------|
52 | `ctrl+u` | scroll up |
53 | `ctrl+d` | scroll down |
54 | `n` | create new file |
55 | `N` | create new dir |
56 | `d` | delete file \| dir |
61 | `v` | start visual mode |
62 | `/` | start filter |
63 | `ENTER` | find filter |
64 | `ESC` | exit filter |
65 | `SPACE` | switch pane |
69 |:---------|:--------------------|
72 | `d` | delete selection |
73 | `y` | yank selection |
74 | `v` | exit visual mode |
75 | `q` | exit visual mode |
76 | `ESC` | exit visual mode |
82 git clone https://github.com/afify/sfm.git
89 wget --content-disposition $(curl -s https://api.github.com/repos/afify/sfm/releases/latest | tr -d '",' | awk '/tag_name/ {print "https://github.com/afify/sfm/archive/"$2".tar.gz"}')
90 tar -xzf sfm-*.tar.gz && cd sfm-*/
102 The configuration of sfm is done by creating a custom config.h
103 and (re)compiling the source code.