" Settings {{{ " This is the actual command used to start vi set vicmd=nvim " This makes vifm perform file operations on its own " instead of relying on standard utilities like cp set syscalls " Use vim help format set vimhelp " Show list of matches on tab completion in command-line mode set wildmenu " Display completions in a form of popup with descriptions of the matches set wildstyle=popup " Controls how size of directories is displayed in file views set dirsize=nitems " Sets characters used to fill borders set fillchars=vborder:┊ " Use ripgrep instead of grep set grepprg=rg\ --color=never\ -Hn\ %i\ %a\ %s " Use fd instead of find set findprg=fd\ --color=never\ %p\ %s " What should be saved automatically between vifm runs set vifminfo=chistory,shistory " Redraw screen to get rid of graphics set previewoptions=hardgraphicsclear " Maximum number of stored items in all histories set history=100 " Path to trash directory set trashdir=~/.cache/trash " Ignore case in search patterns unless " it contains at least one uppercase letter set ignorecase smartcase " Automatically resolve symbolic links on l or Enter set followlinks " Highlight search results automatically set hlsearch " Use increment searching (search while typing) set incsearch " Format for displaying time in file list set timefmt=%F\ %T " Set custom status line look set statusline=' %t%= %A %10u:%-7g %15E %20d ' " Selected color scheme colorscheme ph " Set --login flag for bash shell let $SHELL = '/bin/bash --login' " Single pane when started via vim plugin if $MYVIMRC != '' | only | endif " }}} " Commands {{{ " The following macros can be used in a command " %a is replaced with the user arguments " %c the current file under the cursor " %C the current file under the cursor in the other directory " %f the current selected file, or files " %F the current selected file, or files in the other directory " %b same as %f %F " %d the current directory name " %D the other window directory name " %m run the command in a menu window command! df df -h %a %m command! diff diff %a %b %m command! make !!make %a command! run !!./%f %a command! vdiff nvim -d %a %b " }}} " File types {{{ " The file type is for the default programs to be used with a file extension " The other programs for the file type can be accessed with the :file command " The command macros %c, %C, %f, %F, %b, %d, %D may be used in the commands " Documents {{{ filextype *.pdf,*.epub \ {Zathura} zathura %f %i &, \ {Okular} okular %f %i &, \ {MComix} mcomix %f %i & filextype *.doc,*.docx,*.odt,*.tmdx \ {Calligra} calligrawords %f %i &, \ {FreeOffice} freeoffice-textmaker %f %i & filextype *.ppt,*.pptx,*.odp,*.prdx \ {Calligra} calligrastage %f %i &, \ {FreeOffice} freeoffice-presentations %f %i &, filextype *.xls,*.xlsx,*.csv,*.pmdx \ {Calligra} calligrasheets %f %i &, \ {FreeOffice} freeoffice-planmaker %f %i & fileviewer *.pdf pdftotext -nopgbrk %c - fileviewer *.epub pandoc -f epub -t plain %c fileviewer *.docx pandoc -f docx -t plain %c fileviewer *.odt pandoc -f odt -t plain %c fileviewer *.ipynb pandoc -f ipynb -t gfm %c " }}} " Audio {{{ filetype *.aac, \*.au, \*.axa, \*.flac, \*.mid, \*.midi, \*.mka, \*.mp3, \*.mpc, \*.oga, \*.ogg, \*.ra, \*.spx, \*.wav, \*.xspf \ {MPV} mpv %f & fileviewer *.aac, \*.au, \*.axa, \*.flac, \*.mid, \*.midi, \*.mka, \*.mp3, \*.mpc, \*.oga, \*.ogg, \*.ra, \*.spx, \*.wav, \*.xspf \ ffprobe -hide_banner %c 2>&1 " }}} " Videos {{{ filextype *.anx, \*.asf, \*.avi, \*.axv, \*.cgm, \*.dl, \*.emf, \*.flc, \*.fli, \*.flv, \*.gl, \*.m2v, \*.m4v, \*.mkv, \*.mov, \*.mp4, \*.mp4v, \*.mpeg, \*.mpg, \*.nuv, \*.ogm, \*.ogv, \*.ogx, \*.pak, \*.qt, \*.rm, \*.rmvb, \*.vob, \*.wmv, \*.xcf, \*.xwd, \*.yuv \ {MPV} mpv %f & fileviewer *.anx, \*.asf, \*.avi, \*.axv, \*.cgm, \*.dl, \*.emf, \*.flc, \*.fli, \*.flv, \*.gl, \*.m2v, \*.m4v, \*.mkv, \*.mov, \*.mp4, \*.mp4v, \*.mpeg, \*.mpg, \*.nuv, \*.ogm, \*.ogv, \*.ogx, \*.pak, \*.qt, \*.rm, \*.rmvb, \*.vob, \*.wmv, \*.xcf, \*.xwd, \*.yuv \ ffprobe -hide_banner %c 2>&1 " }}} " Images {{{ filextype *.apng, \*.bmp, \*.gif, \*.ico, \*.icon, \*.j2k, \*.jp2, \*.jpeg, \*.jpf, \*.jpg, \*.jpm, \*.jpx, \*.jxl, \*.mng, \*.pbm, \*.pcx, \*.pgm, \*.png, \*.ppm, \*.psd, \*.tga, \*.tif, \*.tiff, \*.webp, \*.xbm, \*.xpm \ {ImageMagick} display %f %i &, \ {Eye of Gnome} eog %f %i &, \ {Gwenview} gwenview %f %i &, \ {GIMP} gimp %f %i &, \ {Krita} krita %f %i & filextype *.svg,*.svgz \ {ImageMagick} display %f %i &, \ {Eye of Gnome} eog %f %i &, \ {Gwenview} gwenview %f %i &, \ {Inkscape} inkscape %f %i &, \ {Karbon} karbon %f %i & fileviewer *.apng, \*.bmp, \*.gif, \*.ico, \*.icon, \*.j2k, \*.jp2, \*.jpeg, \*.jpf, \*.jpg, \*.jpm, \*.jpx, \*.jxl, \*.mng, \*.pbm, \*.pcx, \*.pgm, \*.png, \*.ppm, \*.svg, \*.svgz, \*.tga, \*.tif, \*.tiff, \*.webp, \*.xbm, \*.xpm \ img2sixel -S -q low %c -w $((%pw*6)) %pd " }}} " Archives {{{ filextype *.7z, \*.apk, \*.cb7, \*.cbr, \*.cbz, \*.deb, \*.ear, \*.jar, \*.oxt \*.rar, \*.rpm, \*.tar.br \*.tar.bz2, \*.tar.gz, \*.tar.xz, \*.tar.zst, \*.tbz2, \*.tgz, \*.txz, \*.war, \*.zip \ {Ark} ark %f %i & filextype *.7z, \*.cb7, \*.cbr, \*.cbz, \*.rar, \*.zip \ {MComix} mcomix %f %i &, \ {Zathura} zathura %f %i & filetype *.7z,*.cb7 {Extract} 7z x %f filetype *.asar {Extract} asar e %f %f:r filetype *.rar,*.cbr {Extract} unrar %f filetype *.rpa {Extract} unrpa -s %f filetype *.tar {Extract} tar xf %f filetype *.tar.br {Extract} tar -I brotli -xf %f filetype *.tar.bz2,*.tbz2 {Extract} tar xjf %f filetype *.tar.gz,*.tgz {Extract} tar xzf %f filetype *.tar.xz,*.txz {Extract} tar xJf %f filetype *.tar.zst {Extract} tar -I zst -xf %f filetype *.apk, \*.cbz, \*.ear, \*.jar, \*.oxt, \*.war, \*.zip \ {Extract} unzip %f filetype *.pkg.tar,*.pkg.tar.* \ {Install} sudo pacman -U %f fileviewer *.7z,*.cb7 7z l %c fileviewer *.asar asar l %c fileviewer *.rar,*.cbr unrar v %c fileviewer *.rpa unrpa -l %c fileviewer *.tar tar tf %c fileviewer *.tar.br,*.tbr tar -I brotli -tf %c fileviewer *.tar.bz2,*.tbz2 tar tjf %c fileviewer *.tar.gz,*.tgz tar tzf %c fileviewer *.tar.xz,*.txz tar tJf %c fileviewer *.tar.zst,*.tzst tar -I zst -tf %c fileviewer *.apk, \*.cbz, \*.ear, \*.jar, \*.oxt, \*.war, \*.zip \ zip -sf %c " }}} " Web {{{ filextype *.html,*.htm \ {qutebrowser} qutebrowser -- %f %i &, \ {Firefox} firefox -- %f %i &, \ {Chromium} chromium -- %f %i & " }}} " Hashes {{{ filetype *.b2 {Verify} b2sum -c %f %S filetype *.md5 {Verify} md5sum -c %f %S filetype *.sha1 {Verify} sha1sum -c %f %S filetype *.sha256 {Verify} sha256sum -c %f %S filetype *.sha384 {Verify} sha384sum -c %f %S filetype *.sha512 {Verify} sha512sum -c %f %S " }}} " Torrents {{{ filetype *.torrent {Aria2} aria2c %f & filextype *.torrent {qBittorrent} qbittorent %f %i & fileviewer *.torrent dumptorrent -v %c " }}} " GPG files {{{ filetype *.asc,*.sig {Verify} gpg --verify %c fileviewer *.gpg gpg --decrypt %c " }}} " Binary files {{{ filextype *.out,*.exe,*.bin,*.run {Okteta} okteta %f %i & filetype *.class {Decompile} cfr %f --outputdir %d %i & fileviewer *.out,*.exe,*.bin,*.run xxd -u %c fileviewer *.class cfr %c fileviewer *.lnk pylnk3 p %c fileviewer *.o nm %c " }}} " IDE projects {{{ filextype *.pro \ {CLion} clion %d %i &, \ {Qt Creator} qtcreator %f %i & filextype .idea/ \ {IntelliJ} intellij-idea-ultimate-edition %d %i &, \ {CLion} clion %d %i &, \ {PyCharm} pycharm %d %i & " }}} " Other {{{ filextype */ \ {Dolphin} dolphin %f %i &, \ {Gwenview} gwenview %f %i &, \ {MPV} mpv %f & filetype * {Default} xdg-open " }}} " }}} " Marks {{{ mark c ~/Documents/Code/ mark h ~/ mark t /tmp/ " }}} " Mappings {{{ " Start shell in current directory nnoremap S :shell " Start terminal in current directory nnoremap T :!konsole --workdir %d %i & " Display sorting dialog nnoremap s :sort " Toggle wrap setting nnoremap W :set wrap! " Toggle visibility of preview window nnoremap w :view vnoremap w :viewgv " Yank current directory path into the clipboard nnoremap yd :!printf -- %d | xclip -sel c %i " Yank current file path into the clipboard nnoremap yf :!printf -- %c:p | xclip -sel c %i " Yank current file contents into the clipboard nnoremap yc :!xlip -sel c -i %c %i " Open filetype dialog nnoremap o :file " Quit vifm nnoremap Q :quit " }}} " vim:fdm=marker:fdl=1:syn=vim: