arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
258 lines (164 loc) • 7.4 kB
Markdown
Related articles
* [ranger](/index.php/Ranger "Ranger")
From the [Vifm](http://vifm.info/) home page:
Vifm is an ncurses based file manager with vi like keybindings/modes/options/commands/configuration, which also borrows some useful ideas from [mutt](/index.php/Mutt "Mutt").
If you use [vi](/index.php/Vi "Vi"), Vifm gives you complete keyboard control over your files without having to learn a new set of commands.
## Contents
* [1 Installation](#Installation)
* [2 Help file](#Help_file)
* [3 Customizing Vifm](#Customizing_Vifm)
* [3.1 Color schemes](#Color_schemes)
* [3.2 Key mapping](#Key_mapping)
* [3.3 Opening filetypes in vifm](#Opening_filetypes_in_vifm)
* [3.3.1 Browse images in current directory with Feh](#Browse_images_in_current_directory_with_Feh)
* [3.4 User commands](#User_commands)
* [3.4.1 Creating symbolic links](#Creating_symbolic_links)
* [3.4.2 Torrent creation](#Torrent_creation)
* [3.5 Marks](#Marks)
* [3.6 Previews](#Previews)
* [4 Tips and tricks](#Tips_and_tricks)
* [4.1 Useful key mappings](#Useful_key_mappings)
* [4.2 Non-vim Users](#Non-vim_Users)
* [4.3 Total size of selected files](#Total_size_of_selected_files)
## Installation
[Install](/index.php/Install "Install") the [vifm](https://www.archlinux.org/packages/?name=vifm) package.
## Help file
Basic information about vifm is given in the help file. You can view it by opening vifm and typing
```
:h
```
Another good source of information is the man page.
## Customizing Vifm
Vifm creates and populates a .vifm folder in your home directory containing the following:
* vifmrc - a well commented configuration file that can be edited to suit your working style.
* vifm-help.txt - the help text
* vifminfo - bookmarks and trash contents - it is not recommended to edit this file by hand
* Trash/ directory - self explanatory
* colors/ directory - color schemes
* Default - well commented default color scheme - can be copied to create user-created color schemes
To get started, read the information avaliable in:
* `/usr/share/vifm/vifm.txt`
* `/usr/share/vifm/vifm-help.txt`
### Color schemes
The `~/.vifm/colors` directory contains the color schemes. The format is outlined in the file and follows vi/vim syntax highlight format. It is basically:
```
highlight *group* cterm=*attribute* ctermfg=*color* ctermbg=*color*
```
An example colorscheme looks like:
```
highlight Win cterm=none ctermfg=white ctermbg=black
highlight Directory cterm=bold ctermfg=cyan ctermbg=none
highlight Link cterm=bold ctermfg=yellow ctermbg=none
highlight BrokenLink cterm=bold ctermfg=red ctermbg=none
highlight Socket cterm=bold ctermfg=magenta ctermbg=none
highlight Device cterm=bold ctermfg=red ctermbg=none
highlight Fifo cterm=bold ctermfg=cyan ctermbg=none
highlight Executable cterm=bold ctermfg=green ctermbg=none
highlight Selected cterm=bold ctermfg=magenta ctermbg=none
highlight CurrLine cterm=bold ctermfg=none ctermbg=blue
highlight TopLine cterm=none ctermfg=black ctermbg=white
highlight TopLineSel cterm=bold ctermfg=black ctermbg=none
highlight StatusLine cterm=bold ctermfg=black ctermbg=white
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
highlight CmdLine cterm=none ctermfg=white ctermbg=black
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Border cterm=none ctermfg=black ctermbg=white
```
You can also highlight different filetypes using regular expressions:
```
highlight /^.*\.(mp3|ogg|oga|flac|m4a)$/ ctermfg=magenta
highlight /^.*\.(jpg|jpeg|png|gif|tiff|webp|bmp|svg|svgz)$/ ctermfg=yellow
highlight /^.*\.(zip|gz|bz2|xz|tar|tgz|tbz2|7z|rar|iso|rpm|deb)$/ ctermfg=red
```
### Key mapping
As of 0.6.2 you can customize key bindings in Vifm. These can be set from the command mode using the map command, like so:
```
:map ] :s
```
However, these mappings will not be saved between sessions. To map a key permanently, place them in ~/vifm/vifmrc. More sample mappings can be seen at the end of that file.
### Opening filetypes in vifm
You can assign applications to filetypes in vifmrc, eg.
```
filetype *.jpg,*.jpeg,*.png,*.gif feh %f 2>/dev/null &
filetype *.md5 md5sum -c %f
```
Several defaults can be found in vifmrc. These can be edited or added to following the same format.
#### Browse images in current directory with Feh
```
filextype *.jpg,*.jpeg,*.png,*.gif
\ {View in feh}
\ feh -FZ %d --start-at %d/%c 2>/dev/null
```
It will display your selected image in feh, but it will enable you to browse all other images in the directory as well, in their default order.
### User commands
You can also create custom commands in vifmrc, eg.
```
command df df -h %m 2> /dev/null
command diff vim -d %f %F
```
#### Creating symbolic links
```
command link ln -s %d/%f %D
```
When you call
```
:link
```
a link of the selected file is made in the other directory (if you are in split view). It even works with multiple files selected with visual (v) or tag (t).
#### Torrent creation
make a .torrent of the current file in the other tab's dir
```
command mkt mktorrent -p -a [your announce url here] -o %D/%f.torrent %d/%f
```
### Marks
Marks can be set same as in vi. To set a mark for current file:
```
m[a-z][A-Z][0-9]
```
Go to a file set for mark:
```
'[a-z][A-Z][0-9]
```
Vifm will remember the marks between the sessions.
### Previews
Provided [poppler](https://www.archlinux.org/packages/?name=poppler) is installed, putting
```
fileviewer *.pdf
\ pdftotext %c -
```
into vifmrc enables pdf-previewing using pdftotext. The %c is a vifm macro for the current file under the cursor. The preview is activated with
```
:view
```
Neat image previewing can be achieved using img2txt from [libcaca](https://www.archlinux.org/packages/?name=libcaca)
```
fileviewer *.png,*.jpeg,*.jpg
\ img2txt %c
```
Previewing the contents of tar-archives:
```
fileviewer *.tar,*.tar.gz
\ tar -tvf %c
```
For previewing html documents suitable programs are text based browsers including [lynx](https://www.archlinux.org/packages/?name=lynx), [links](https://www.archlinux.org/packages/?name=links) or [w3m](https://www.archlinux.org/packages/?name=w3m)
```
fileviewer *.html
\ w3m %c
```
Further useful programs for previews include
* [tree](https://www.archlinux.org/packages/?name=tree) for directory previews
* [mp3info](https://www.archlinux.org/packages/?name=mp3info) for viewing information about mp3 files
* [libmediainfo](https://www.archlinux.org/packages/?name=libmediainfo) for the mediainfo program (audio and video information)
## Tips and tricks
### Useful key mappings
Single stroke to access command line
```
nmap ; :
```
### Non-vim Users
`vifm` assumes that you are using `vim` and will throw errors if it doesn't find it. If you are using `vi` or `nvim` ([Neovim](/index.php/Neovim "Neovim")), you need to edit your `~/.vifm/vifmrc` file. Comment out the line `set vicmd=vim` and replace it with `set vicmd=vi` or `set vicmd=nvim`. Note that, just like `.exrc`, comment lines are introduced by double quotes.
### Total size of selected files
To get the total size of selected files change %s to %E in `~/.vifm/vifmrc`, like so:
```
set statusline=" %t%= %A %10u:%-7g %15E %20d "
```