easier on my wrists to use keyboard rather than mouse
useful to have a CLI alternative to Finder if SSH-ing into a Mac remotely
I do this with my home media server, which is a Mac mini with a bunch of files on it
Useful commands
vifm — open Vifm to the folders it was open to when it was last closed
vifm . . — open the current folder in two panes
TAB or SPACE - switch panes
Find files in current directory:
/REGEX_PATTERN — search forward (down) in list
?REGEX_PATTERN — search backward (up) in list
ENTER — select all results and jump to first occurrence
n — jump to next occurence (relative to search direction)
N — jump to previous occurrence (relative to search direction)
ESC — cancel search and deselect files
Select and deselect files:
t — select or unselect (tag) the current file
v + j/k — select a continuous group of files
ENTER to save selection + return to normal mode (can use t to add other files to the selection)
ESC or :noh — clear selection in current pane
/REGEX_PATTERN to search forward + n to go to next occurence + t to select it
Copy, move or delete selected file(s):
:move[?!] [ &] or :m[?!] [ &] — move selected files to directory in other pane
or: Y or yy + navigate to a different folder + P
:copy[?!] [ &] or :co[?!] [ &] — copy selected files to directory in other pane
or: Y or yy + navigate to a different folder + p
? — prompt for destination file names in an editor
! — force overwrite
& — run command in background (unblocks UI)
Delete selected files:
:delete[?!] [ &] or :d[?!] [ &] — move selected files to trash
& — run command in background (unblocks UI)
or: dd
Cancellable copying, moving and deleting (blocks UI):
select a file (or files) + dd - deletes file(s)
Background copying, moving and deleting (doesn’t block UI; can’t be cancelled):
select a file (or files) + :delete or :d — deletes file(s)
Create a directory:
:mkdir[!] dir — creates a directory named dir relative to the current directory; ! creates subfolders as needed; names containing spaces need to be surrounded by ""
Rename a file or directory:
:rename — without an argument, opens the selected file or directory name(s) in an editor (where they can be edited using vim keybindings); exit nvim editor with ZZ
:rename[!] file — renames the selected file or directory to file; ! overwrites existing files; names containing spaces need to be surrounded by `""
cw — edit file or directory name(s) (includes file extension)
cW — edit file or directory name(s) (excludes file extension)
:jobs — view background jobs; dd to cancel; ESC to exit
:empty - empties vifm’s trash (use system trash by following these instructions)
:restore — restore a file from the trash (~/.local/share/vifm/Trash)
za - toggle visibility of dot files
u — undo last change
Ctrl-R — redo last change
ga — update size shown next to selected directory name(s)
uses cached directory sizes when possible for better performance
gA — like ga, but forces recalculation
:⬆️ — scroll through recent commands; ENTER to run command again
Ctrl-G — show a dialog with detailed information about the selected file
%s/pattern/string/[flags] — substitute instances of pattern in file with string; flag options:
g — replace all occurrences in the file
i — ignore case
I — don’t ignore case
:cd - — change to the previous directory
:tree — show a tree view of the current directory (to reveal all nested files and folders)
then use / (search) or = (filter) to find files or directories at any depth