xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit d4406b374df0758f47db7cf1e330f7d77d018d76

Use `vi` as a last resort in sample vifmrcs
Default installation may not have any full Vim installations by default
but a truncated `vi` is often present. Make Vifm work to a reasonable
extend out of the box in such environments.
Author: xaizek
Author date (UTC): 2025-09-07 15:46
Committer name: xaizek
Committer date (UTC): 2025-09-28 13:00
Parent(s): 7550d5d45cdd41bb5b8be8037e926abb3880cdc5
Signing key: 99DC5E4DB05F6BE2
Tree: 76de11170f0e0c2d88dbf48b6694bb413e58e6f1
File Lines added Lines deleted
ChangeLog 2 0
data/vifmrc 3 1
data/vifmrc-osx 3 1
File ChangeLog changed (mode: 100644) (index e95060a26..ad305553b)
69 69
70 70 Display an error on trying to switch from external preview to raw mode. Display an error on trying to switch from external preview to raw mode.
71 71
72 Updated sample vifmrc files to use `vi` as a last resort if it exists.
73
72 74 Fixed 'trashdir' with "%r" on BSD-like systems (those with getmntinfo() Fixed 'trashdir' with "%r" on BSD-like systems (those with getmntinfo()
73 75 instead of getmntent() API). The regression was apparently introduced in instead of getmntent() API). The regression was apparently introduced in
74 76 v0.9.1-beta. Thanks to sublimal. v0.9.1-beta. Thanks to sublimal.
File data/vifmrc changed (mode: 100644) (index 8e7dc8060..67dcd7801)
1 1 " vim: filetype=vifm : " vim: filetype=vifm :
2 2 " "
3 " Sample configuration file for vifm (last updated: 11 May, 2025)
3 " Sample configuration file for vifm (last updated: 7 September 2025)
4 4 " "
5 5 " You can edit this file by hand. The " character at the beginning of a line " You can edit this file by hand. The " character at the beginning of a line
6 6 " comments out the line. Blank lines are ignored. The basic format for each " comments out the line. Blank lines are ignored. The basic format for each
 
... ... elseif executable('vile')
43 43 elseif $EDITOR != '' elseif $EDITOR != ''
44 44 echo 'Note: using `'.$EDITOR.'` as an editor' echo 'Note: using `'.$EDITOR.'` as an editor'
45 45 let &vicmd = $EDITOR let &vicmd = $EDITOR
46 elseif executable('vi')
47 set vicmd=vi
46 48 endif endif
47 49
48 50 " This makes vifm perform file operations on its own instead of relying on " This makes vifm perform file operations on its own instead of relying on
File data/vifmrc-osx changed (mode: 100644) (index 66912d9e4..6bf3d23be)
1 1 " vim: filetype=vifm : " vim: filetype=vifm :
2 2 " "
3 " Sample configuration file for vifm on OSX (last updated: 11 May, 2025)
3 " Sample configuration file for vifm on OSX (last updated: 7 September 2025)
4 4 " "
5 5 " You can edit this file by hand. The " character at the beginning of a line " You can edit this file by hand. The " character at the beginning of a line
6 6 " comments out the line. Blank lines are ignored. The basic format for each " comments out the line. Blank lines are ignored. The basic format for each
 
... ... elseif executable('vile')
47 47 elseif $EDITOR != '' elseif $EDITOR != ''
48 48 echo 'Note: using `'.$EDITOR.'` as an editor' echo 'Note: using `'.$EDITOR.'` as an editor'
49 49 let &vicmd = $EDITOR let &vicmd = $EDITOR
50 elseif executable('vi')
51 set vicmd=vi
50 52 endif endif
51 53
52 54 " This makes vifm perform file operations on its own instead of relying on " This makes vifm perform file operations on its own instead of relying on
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master