1VIFM(1) General Commands Manual VIFM(1)
2
3
4
6 vifm - vi file manager
7
9 vifm [OPTION]...
10 vifm [OPTION]... path
11 vifm [OPTION]... path path
12
14 Vifm is an ncurses based file manager with vi like keybindings. If you
15 use vi, vifm gives you complete keyboard control over your files with‐
16 out having to learn a new set of commands.
17
19 vifm starts in the current directory unless it is given a different di‐
20 rectory on the command line or 'vifminfo' option includes "savedirs"
21 (in which case last visited directories are used as defaults).
22
23 - Read list of files from standard input stream and compose custom
24 view out of them (see "Custom views" section). Current working
25 directory is used as a base for relative paths.
26
27 <path> Starts Vifm in the specified path.
28
29 <path> <path>
30 Starts Vifm in the specified paths.
31
32 Specifying two directories triggers split view even when vifm was in
33 single-view mode on finishing previous run. To suppress this behaviour
34 :only command can be put in the vifmrc file.
35
36 When only one path argument is found on command-line, the left/top pane
37 is automatically set as the current view.
38
39 Paths to files are also allowed in case you want vifm to start with
40 some archive opened.
41
42 --select <path>
43 Open parent directory of the given path and select specified
44 file in it.
45
46 -f Makes vifm instead of opening files write selection to
47 $VIFM/vimfiles and quit.
48
49 --choose-files <path>|-
50 Sets output file to write selection into on exit instead of
51 opening files. "-" means standard output. Use empty value to
52 disable it.
53
54 --choose-dir <path>|-
55 Sets output file to write last visited directory into on exit.
56 "-" means standard output. Use empty value to disable it.
57
58 --delimiter <delimiter>
59 Sets separator for list of file paths written out by vifm.
60 Empty value means null character. Default is new line charac‐
61 ter.
62
63 --on-choose <command>
64 Sets command to be executed on selected files instead of opening
65 them. The command may use any of macros described in "Command
66 macros" section below. The command is executed once for whole
67 selection.
68
69 --logging[=<startup log path>]
70 Log some operational details $VIFM/log. If the optional startup
71 log path is specified and permissions allow to open it for writ‐
72 ing, then logging of early initialization (before value of $VIFM
73 is determined) is put there.
74
75 --server-list
76 List available server names and exit.
77
78 --server-name <name>
79 Name of target or this instance (sequential numbers are appended
80 on name conflict).
81
82 --remote
83 Sends the rest of the command line to another instance of vifm,
84 --server-name is treated just like any other argument and should
85 precede --remote on the command line. When there is no server,
86 quits silently. There is no limit on how many arguments can be
87 processed. One can combine --remote with -c <command> or +<com‐
88 mand> to execute commands in already running instance of vifm.
89 See also "Client-Server" section below.
90
91 --remote-expr
92 passes expression to vifm server and prints result. See also
93 "Client-Server" section below.
94
95 -c <command> or +<command>
96 Run command-line mode <command> on startup. Commands in such
97 arguments are executed in the order they appear in command line.
98 Commands with spaces or special symbols must be enclosed in dou‐
99 ble or single quotes or all special symbols should be escaped
100 (the exact syntax strongly depends on shell). "+" argument is
101 equivalent to "$" and thus picks last item of of the view.
102
103 --help, -h
104 Show a brief command summary and exit vifm.
105
106 --version, -v
107 Show version information and quit.
108
109 --no-configs
110 Skip reading vifmrc and vifminfo.
111
112
113 See "Startup" section below for the explanations on $VIFM.
114
116 Ctrl-C or Escape
117 cancel most operations (see "Cancellation" section below), clear
118 all selected files.
119
120 Ctrl-L clear and redraw the screen.
121
123 The basic vi key bindings are used to move through the files and pop-up
124 windows.
125
126 k, gk, or Ctrl-P
127 move cursor up one line.
128
129 j, gj or Ctrl-N
130 move cursor down one line.
131
132 h when 'lsview' is off move up one directory (moves to parent di‐
133 rectory node in tree view), otherwise move left one file.
134
135 l when 'lsview' is off move into a directory or launch a file,
136 otherwise move right one file. See "Selection" section below.
137
138 gg move to the first line of the file list.
139
140 G move to the last line in the file list.
141
142 gh go up one directory regardless of view representation (regular,
143 ls-like). Also can be used to leave custom views including tree
144 view.
145
146 gl or Enter
147 enter directory or launch a file. See "Selection" section be‐
148 low.
149
150 H move to the first file in the window.
151
152 M move to the file in the middle of the window.
153
154 L move to the last file in the window.
155
156 Ctrl-F or Page Down
157 move forward one page.
158
159 Ctrl-B or Page Up
160 move back one page.
161
162 Ctrl-D jump back one half page.
163
164 Ctrl-U jump forward one half page.
165
166 n% move to the file that is n percent from the top of the list (for
167 example 25%).
168
169 0 or ^ move cursor to the first column. See 'lsview' option descrip‐
170 tion.
171
172 $ move cursor to the last column. See 'lsview' option descrip‐
173 tion.
174
175 Space switch file lists.
176
177 gt switch to the next tab (wrapping around).
178
179 {n}gt switch to the tab number {n} (wrapping around).
180
181 gT switch to the previous tab (wrapping around).
182
183 {n}gT switch to {n}-th previous tab.
184
186 Most movement commands also accept a count, 12j would move down 12
187 files.
188
189 [count]%
190 move to percent of the file list.
191
192 [count]j
193 move down [count] files.
194
195 [count]k
196 move up [count] files.
197
198 [count]G or [count]gg
199 move to list position [count].
200
201 [count]h
202 go up [count] directories.
203
205 zt redraw pane with file in top of list.
206
207 zz redraw pane with file in center of list.
208
209 zb redraw pane with file in bottom of list.
210
211 Ctrl-E scroll pane one line down.
212
213 Ctrl-Y scroll pane one line up.
214
216 Second character can be entered with or without Control key.
217
218 Ctrl-W H
219 move the pane to the far left.
220
221 Ctrl-W J
222 move the pane to the very bottom.
223
224 Ctrl-W K
225 move the pane to the very top.
226
227 Ctrl-W L
228 move the pane to the far right.
229
230
231 Ctrl-W h
232 switch to the left pane.
233
234 Ctrl-W j
235 switch to the pane below.
236
237 Ctrl-W k
238 switch to the pane above.
239
240 Ctrl-W l
241 switch to the right pane.
242
243
244 Ctrl-W b
245 switch to bottom-right window.
246
247 Ctrl-W t
248 switch to top-left window.
249
250
251 Ctrl-W p
252 switch to previous window.
253
254 Ctrl-W w
255 switch to other pane.
256
257
258 Ctrl-W o
259 leave only one pane.
260
261 Ctrl-W s
262 split window horizontally.
263
264 Ctrl-W v
265 split window vertically.
266
267
268 Ctrl-W x
269 exchange panes.
270
271 Ctrl-W z
272 quit preview pane or view modes.
273
274
275 Ctrl-W -
276 decrease size of the view by count.
277
278 Ctrl-W +
279 increase size of the view by count.
280
281 Ctrl-W <
282 decrease size of the view by count.
283
284 Ctrl-W >
285 increase size of the view by count.
286
287
288 Ctrl-W |
289 set current view size to count.
290
291 Ctrl-W _
292 set current view size to count.
293
294 Ctrl-W =
295 make size of two views equal.
296
297 For Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _ com‐
298 mands count can be given before and/or after Ctrl-W. The resulting
299 count is a multiplication of those two. So "2 Ctrl-W 2 -" decreases
300 window size by 4 lines or columns.
301
302 Ctrl-W | and Ctrl-W _ maximise current view by default.
303
305 Marks are set the same way as they are in vi.
306
307 You can use these characters for marks [a-z][A-Z][0-9].
308
309 m[a-z][A-Z][0-9]
310 set a mark for the file at the current cursor position.
311
312 '[a-z][A-Z][0-9]
313 navigate to the file set for the mark.
314
315
316 There are also several special marks that can't be set manually:
317
318 - ' (single quote) - previously visited directory of the view, thus
319 hitting '' allows switching between two last locations
320
321 - < - the first file of the last visually selected block
322
323 - > - the last file of the last visually selected block
324
326 /regular expression pattern
327 search for files matching regular expression in forward direc‐
328 tion and advance cursor to next match.
329
330 / perform forward search with top item of search pattern history.
331
332 ?regular expression pattern
333 search for files matching regular expression in backward direc‐
334 tion and advance cursor to previous match.
335
336 ? perform backward search with top item of search pattern history.
337
338 Trailing slash for directories is taken into account, so /\/ searches
339 for directories and symbolic links to directories. At the moment //
340 works too, but this can change in the future, so consider escaping the
341 slash if not typing pattern by hand.
342
343 Matches are automatically selected if 'hlsearch' is set. Enabling
344 'incsearch' makes search interactive. 'ignorecase' and 'smartcase' op‐
345 tions affect case sensitivity of search queries as well as local filter
346 and other things detailed in the description of 'caseoptions'.
347
348
349 [count]n
350 go to the next file matching last search pattern. Takes last
351 search direction into account.
352
353 [count]N
354 go to the previous file matching last search pattern. Takes
355 last search direction into account.
356
357 If 'hlsearch' option is set, hitting n/N to perform search and go to
358 the first matching item resets current selection in normal mode. It is
359 not the case if search was already performed on files in the directory,
360 thus selection is not reset after clearing selection with escape key
361 and hitting n/N key again.
362
363 Note: vifm uses extended regular expressions for / and ?.
364
365
366 [count]f[character]
367 search forward for file with [character] as first character in
368 name. Search wraps around the end of the list.
369
370 [count]F[character]
371 search backward for file with [character] as first character in
372 name. Search wraps around the end of the list.
373
374 [count];
375 find the next match of f or F.
376
377 [count],
378 find the previous match of f or F.
379
380 Note: f, F, ; and , wrap around list beginning and end when they are
381 used alone and they don't wrap when they are used as selectors.
382
384 There are three basic file filters:
385
386 - dot files filter (does not affect "." and ".." special directories,
387 whose appearance is controlled by the 'dotdirs' option), see 'dot‐
388 files' option;
389
390 - permanent filter;
391
392 - local filter (see description of the "=" normal mode command).
393
394 Permanent filter essentially allows defining a group of files names
395 which are not desirable to be seen by default, like temporary or backup
396 files, which might be created alongside normal ones. Just like you
397 don't usually need to see hidden dot files (files starting with a dot).
398 Local filter on the other hand is for temporary immediate filtering of
399 file list at hand, to get rid of uninterested files in the view or to
400 make it possible to use % range in a :command.
401
402 For the purposes of more deterministic editing permanent filter is
403 split into two parts:
404
405 - one edited explicitly via :filter command;
406
407 - another one which is edited implicitly via zf shortcut.
408
409 Files are tested against both parts and a match counts if at least one
410 of the parts matched.
411
412
413 Each file list has its own copy of each filter.
414
415 Filtered files are not checked in / search or :commands.
416
417 Files and directories are filtered separately. This is done by append‐
418 ing a slash to a directory name before testing whether it matches the
419 filter. Examples:
420
421
422 " filter directories which names end with '.files'
423 :filter /^.*\.files\/$/
424
425 " filter files which names end with '.d'
426 :filter {*.d}
427
428 " filter files and directories which names end with '.o'
429 :filter /^.*\.o\/?$/
430
431 Note: vifm uses extended regular expressions.
432
433 The basic vim folding key bindings are used for managing filters.
434
435
436 za toggle visibility of dot files.
437
438 zo show dot files.
439
440 zm hide dot files.
441
442 zf add selected files to permanent filter.
443
444 zO reset permanent filter.
445
446 zR save and reset all filters.
447
448 zr clear local filter.
449
450 zM restore all filters (undoes last zR).
451
452 zd exclude selection or current file from a custom view. Does
453 nothing for regular view. For tree view excluding directory ex‐
454 cludes that sub-tree. For compare views zd hides group of adja‐
455 cent identical files, count can be specified as 1 to exclude
456 just single file or selected items instead. Files excluded this
457 way are not counted as filtered out and can't be returned unless
458 view is reloaded.
459
460 =regular expression pattern
461 filter out files that don't match regular expression. Whether
462 view is updated as regular expression is changed depends on the
463 value of the 'incsearch' option. This kind of filter is auto‐
464 matically reset when directory is changed.
465
467 While some of the keys make sense outside of tree-view, they are most
468 useful in trees.
469
470 [z go to first sibling of current entry.
471
472 ]z go to last sibling of current entry.
473
474 zj go to next directory sibling of current entry or do nothing.
475
476 zk go to previous directory sibling of current entry or do nothing.
477
478 zx toggle fold under the cursor or parent entry of the current file
479 if cursor is not on a directory.
480
482 [count]:
483 enter command line mode. [count] generates range.
484
485 q: open external editor to prompt for command-line command. See
486 "Command line editing" section for details.
487
488 q/ open external editor to prompt for search pattern to be searched
489 in forward direction. See "Command line editing" section for
490 details.
491
492 q? open external editor to prompt for search pattern to be searched
493 in backward direction. See "Command line editing" section for
494 details.
495
496 q= open external editor to prompt for filter pattern. See "Command
497 line editing" section for details. Unlike other q{x} commands
498 this one doesn't work in Visual mode.
499
500 [count]!! and [count]!<selector>
501 enter command line mode with entered ! command. [count] modi‐
502 fies range.
503
504 Ctrl-O go backwards through directory history of current view. Nonex‐
505 istent directories are automatically skipped.
506
507 Ctrl-I if 'cpoptions' contains "t" flag, <tab> and <c-i> switch active
508 pane just like <space> does, otherwise it goes forward through
509 directory history of current view. Nonexistent directories are
510 automatically skipped.
511
512 Ctrl-G show a dialog with detailed information about current file. See
513 "Menus and dialogs" section for controls.
514
515 Shift-Tab
516 enter view mode (works only after activating view pane with
517 :view command).
518
519 ga calculate directory size. Uses cached directory sizes when pos‐
520 sible for better performance. As a special case calculating
521 size of ".." entry results in calculation of size of current di‐
522 rectory.
523
524 gA like ga, but force update. Ignores old values of directory
525 sizes.
526
527 If file under cursor is selected, each selected item is processed, oth‐
528 erwise only current file is updated.
529
530 gf find link destination (like l with 'followlinks' off, but also
531 finds directories). On Windows additionally follows .lnk-files.
532
533 gF Same as gf, but resolves final path of the chain of symbolic
534 links.
535
536 gr only for MS-Windows
537 same as l key, but tries to run program with administrative
538 privileges.
539
540 av go to visual mode into selection amending state preserving cur‐
541 rent selection.
542
543 gv go to visual mode restoring last selection.
544
545 [reg]gs
546 when no register is specified, restore last t selection (similar
547 to what gv does for visual mode selection). If register is
548 present, then all files listed in that register and which are
549 visible in current view are selected.
550
551 gu<selector>
552 make names of selected files lowercase.
553
554 [count]guu and [count]gugu
555 make names of [count] files starting from the current one lower‐
556 case. Without [count] only current file is affected.
557
558 gU<selector>
559 make names of selected files uppercase.
560
561 [count]gUU and [count]gUgU
562 make names of [count] files starting from the current one upper‐
563 case. Without [count] only current file is affected.
564
565 e explore file in the current pane.
566
567 i handle file (even if it's an executable and 'runexec' option is
568 set).
569
570 cw change word is used to rename a file or files. If multiple
571 files are selected, behaves as :rename command run without argu‐
572 ments.
573
574 cW change WORD is used to change only name of file (without exten‐
575 sion).
576
577 cl change link target.
578
579 co only for *nix
580 change file owner.
581
582 cg only for *nix
583 change file group.
584
585 [count]cp
586 change file attributes (permission on *nix and properties on
587 Windows). If [count] is specified, it's treated as numerical
588 argument for non-recursive `chmod` command (of the form
589 [0-7]{3,4}). See "Menus and dialogs" section for controls.
590
591 [count]C
592 clone file [count] times.
593
594 [count]dd or d[count]selector
595 move selected file or files to trash directory (if 'trash' op‐
596 tion is set, otherwise delete). See "Trash directory" section
597 below.
598
599 [count]DD or D[count]selector
600 like dd and d<selector>, but omitting trash directory (even when
601 'trash' option is set).
602
603 Y, [count]yy or y[count]selector
604 yank selected files.
605
606 p copy yanked files to the current directory or move the files to
607 the current directory if they were deleted with dd or :d[elete]
608 or if the files were yanked from trash directory. See "Trash
609 directory" section below.
610
611 P move the last yanked files. The advantage of using P instead of
612 d followed by p is that P moves files only once. This isn't im‐
613 portant in case you're moving files in the same file system
614 where your home directory is, but using P to move files on some
615 other file system (or file systems, in case you want to move
616 files from fs1 to fs2 and your home is on fs3) can save your
617 time.
618
619 al put symbolic links with absolute paths.
620
621 rl put symbolic links with relative paths.
622
623 t select or unselect (tag) the current file.
624
625 u undo last change.
626
627 Ctrl-R redo last change.
628
629 dp in compare view of "ofboth grouppaths" kind, makes corresponding
630 entry of the other pane equal to the current one. The semantics
631 is as follows:
632 - nothing done for identical entries
633 - if file is missing in current view, its pair gets removed
634 - if file is missing or differs in other view, it's replaced
635 - file pairs are defined by matching relative paths
636 File removal obeys 'trash' option. When the option is enabled,
637 the operation can be undone/redone (although results won't be
638 visible automatically).
639 Unlike in Vim, this operation is performed on a single line
640 rather than a set of adjacent changes.
641
642 do same as dp, but applies changes in the opposite direction.
643
644 v or V enter visual mode, clears current selection.
645
646 [count]Ctrl-A
647 increment first number in file name by [count] (1 by default).
648
649 [count]Ctrl-X
650 decrement first number in file name by [count] (1 by default).
651
652 ZQ same as :quit!.
653
654 ZZ same as :quit.
655
656 . repeat last command-line command (not normal mode command) of
657 this run (does nothing right after startup or :restart command).
658 The command doesn't depend on command-line history and can be
659 used with completely disabled history.
660
661 ( go to previous group. Groups are defined by primary sorting
662 key. For name and iname members of each group have same first
663 letter, for all other sorting keys vifm uses size, uid, ...
664
665 ) go to next group. See ( key description above.
666
667 { speeds up navigation to closest previous entry of the opposite
668 type by moving to the first file backwards when cursor is on a
669 directory and to the first directory backwards when cursor is on
670 a file. This is essentially a special case of ( that is locked
671 on "dirs".
672
673 } same as {, but in forward direction.
674
675 [c go to previous mismatched entry in directory comparison view or
676 do nothing.
677
678 ]c go to next mismatched entry in directory comparison view or do
679 nothing.
680
681 [d go to previous directory entry or do nothing.
682
683 ]d go to next directory entry or do nothing.
684
685 [r same as :siblprev.
686
687 ]r same as :siblnext.
688
689 [R same as :siblprev!.
690
691 ]R same as :siblnext!.
692
693 [s go to previous selected entry or do nothing.
694
695 ]s go to next selected entry or do nothing.
696
698 You can use count with commands like yy.
699
700 [count]yy
701 yank count files starting from current cursor position downward.
702
703 Or you can use count with motions passed to y, d or D.
704
705 d[count]j
706 delete (count + 1) files starting from current cursor position
707 upward.
708
710 vifm supports multiple registers for temporary storing list of yanked
711 or deleted files.
712
713 Registers should be specified by hitting double quote key followed by a
714 register name. Count is specified after register name. By default
715 commands use unnamed register, which has double quote as its name.
716
717 Though all commands accept registers, most of commands ignores them
718 (for example H or Ctrl-U). Other commands can fill register or append
719 new files to it.
720
721 Presently vifm supports ", _, a-z and A-Z characters as register names.
722
723 As mentioned above " is unnamed register and has special meaning of the
724 default register. Every time when you use named registers (a-z and A-
725 Z) unnamed register is updated to contain same list of files as the
726 last used register.
727
728 _ is black hole register. It can be used for writing, but its list is
729 always empty.
730
731 Registers with names from a to z and from A to Z are named ones. Low‐
732 ercase registers are cleared before adding new files, while uppercase
733 aren't and should be used to append new files to the existing file list
734 of appropriate lowercase register (A for a, B for b, ...).
735
736 Registers can be changed on :empty command if they contain files under
737 trash directory (see "Trash directory" section below).
738
739 Registers do not contain one file more than once.
740
741 Example:
742
743 "a2yy
744
745 puts names of two files to register a (and to the unnamed register),
746
747 "Ad
748
749 removes one file and append its name to register a (and to the unnamed
750 register),
751
752 p or "ap or "Ap
753
754 inserts previously yanked and deleted files into current directory.
755
757 y, d, D, !, gu and gU commands accept selectors. You can combine them
758 with any of selectors below to quickly remove or yank several files.
759
760 Most of selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F,
761 ;, comma, ', ^, 0 and $. But there are some additional ones.
762
763 a all files in current view.
764
765 s selected files.
766
767 S all files except selected.
768
769 Examples:
770
771 - dj - delete file under cursor and one below;
772
773 - d2j - delete file under cursor and two below;
774
775 - y6gg - yank all files from cursor position to 6th file in the list.
776
777 When you pass a count to whole command and its selector they are multi‐
778 plied. So:
779
780 - 2d2j - delete file under cursor and four below;
781
782 - 2dj - delete file under cursor and two below;
783
784 - 2y6gg - yank all files from cursor position to 12th file in the
785 list.
786
788 Visual mode has two generic operating submodes:
789
790 - plain selection as it is in Vim;
791
792 - selection editing submode.
793
794 Both modes select files in range from cursor position at which visual
795 mode was entered to current cursor position (let's call it "selection
796 region"). Each of two borders can be adjusted by swapping them via "o"
797 or "O" keys and updating cursor position with regular cursor motion
798 keys. Obviously, once initial cursor position is altered this way,
799 real start position becomes unavailable.
800
801 Plain Vim-like visual mode starts with cleared selection, which is not
802 restored on rejecting selection ("Escape", "Ctrl-C", "v", "V"). Con‐
803 trary to it, selection editing doesn't clear previously selected files
804 and restores them after reject. Accepting selection by performing an
805 operation on selected items (e.g. yanking them via "y") moves cursor to
806 the top of current selection region (not to the top most selected file
807 of the view).
808
809 In turn, selection editing supports three types of editing (look at
810 statusbar to know which one is currently active):
811
812 - append - amend selection by selecting elements in selection region;
813
814 - remove - amend selection by deselecting elements in selection re‐
815 gion;
816
817 - invert - amend selection by inverting selection of elements in se‐
818 lection region.
819
820 No matter how you activate selection editing it starts in "append".
821 One can switch type of operation (in the order given above) via "Ctrl-
822 G" key.
823
824 Almost all normal mode keys work in visual mode, but instead of accept‐
825 ing selectors they operate on selected items.
826
827 Enter save selection and go back to normal mode not moving cursor.
828
829 av leave visual mode if in amending mode (restores previous selec‐
830 tion), otherwise switch to amending selection mode.
831
832 gv restore previous visual selection.
833
834 v, V, Ctrl-C or Escape
835 leave visual mode if not in amending mode, otherwise switch to
836 normal visual selection.
837
838 Ctrl-G switch type of amending by round robin scheme: append -> remove
839 -> invert.
840
841 : enter command line mode. Selection is cleared on leaving the
842 mode.
843
844 o switch active selection bound.
845
846 O switch active selection bound.
847
848 gu, u make names of selected files lowercase.
849
850 gU, U make names of selected files uppercase.
851
852 cw same as running :rename command without arguments.
853
855 This mode tries to imitate the less program. List of builtin shortcuts
856 can be found below. Shortcuts can be customized using :qmap, :qnoremap
857 and :qunmap command-line commands.
858
859 Shift-Tab, Tab, q, Q, ZZ
860 return to normal mode.
861
862 [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
863 scroll forward one line (or [count] lines).
864
865 [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
866 scroll backward one line (or [count] lines).
867
868 [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
869 scroll forward one window (or [count] lines).
870
871 [count]b, [count]Ctrl-B, [count]Alt-V
872 scroll backward one window (or [count] lines).
873
874 [count]z
875 scroll forward one window (and set window to [count]).
876
877 [count]w
878 scroll backward one window (and set window to [count]).
879
880 [count]Alt-Space
881 scroll forward one window, but don't stop at end-of-file.
882
883 [count]d, [count]Ctrl-D
884 scroll forward one half-window (and set half-window to [count]).
885
886 [count]u, [count]Ctrl-U
887 scroll backward one half-window (and set half-window to
888 [count]).
889
890 r, Ctrl-R, Ctrl-L
891 repaint screen.
892
893 R reload view preserving scroll position.
894
895 F toggle automatic forwarding. Roughly equivalent to periodic
896 file reload and scrolling to the bottom. The behaviour is simi‐
897 lar to `tail -F` or F key in less.
898
899 a switch to the next viewer. Does nothing for preview constructed
900 via %q macro.
901
902 A switch to the previous viewer. Does nothing for preview con‐
903 structed via %q macro.
904
905 i toggle raw mode (ignoring of defined viewers). Does nothing for
906 preview constructed via %q macro.
907
908 [count]/pattern
909 search forward for ([count]‐th) matching line.
910
911 [count]?pattern
912 search backward for ([count]‐th) matching line.
913
914 [count]n
915 repeat previous search (for [count]‐th occurrence).
916
917 [count]N
918 repeat previous search in reverse direction (for [count]‐th oc‐
919 currence).
920
921 [count]g, [count]<, [count]Alt-<
922 scroll to the first line of the file (or line [count]).
923
924 [count]G, [count]>, [count]Alt->
925 scroll to the last line of the file (or line [count]).
926
927 [count]p, [count]%
928 scroll to the beginning of the file (or N percent into file).
929
930 v invoke an editor to edit the current file being viewed. The
931 command for editing is taken from the 'vicmd' or 'vixcmd' option
932 value and extended with middle line number prepended by a plus
933 sign and name of the current file.
934
935 All "Ctrl-W x" keys work the same was as in Normal mode. Active mode
936 is automatically changed on navigating among windows. When less-like
937 mode activated on file preview is left using one by "Ctrl-W x" keys,
938 its state is stored until another file is displayed using preview (it's
939 possible to leave the mode, hide preview pane, do something else, then
940 get back to the file and show preview pane again with previously stored
941 state in it).
942
944 These keys are available in all submodes of the command line mode: com‐
945 mand, search, prompt and filtering.
946
947 Down, Up, Left, Right, Home, End and Delete are extended keys and they
948 are not available if vifm is compiled with --disable-extended-keys op‐
949 tion.
950
951 Esc, Ctrl-C
952 leave command line mode, cancels input. Cancelled input is
953 saved into appropriate history and can be recalled later.
954
955 Ctrl-M, Enter
956 execute command and leave command line mode.
957
958 Ctrl-I, Tab
959 complete command or its argument.
960
961 Shift-Tab
962 complete in reverse order.
963
964 Ctrl-_ stop completion and return original input.
965
966 Ctrl-B, Left
967 move cursor to the left.
968
969 Ctrl-F, Right
970 move cursor to the right.
971
972 Ctrl-A, Home
973 go to line beginning.
974
975 Ctrl-E, End
976 go to line end.
977
978 Alt-B go to the beginning of previous word.
979
980 Alt-F go to the end of next word.
981
982 Ctrl-U remove characters from cursor position till the beginning of
983 line.
984
985 Ctrl-K remove characters from cursor position till the end of line.
986
987 Ctrl-H, Backspace
988 remove character before the cursor.
989
990 Ctrl-D, Delete
991 remove character under the cursor.
992
993 Ctrl-W remove characters from cursor position till the beginning of
994 previous word.
995
996 Alt-D remove characters from cursor position till the beginning of
997 next word.
998
999 Ctrl-T swap the order of current and previous character and move cursor
1000 forward or, if cursor past the end of line, swap the order of
1001 two last characters in the line.
1002
1003 Alt-. insert last part of previous command to current cursor position.
1004 Each next call will insert last part of older command.
1005
1006 Ctrl-G edit command-line content in external editor. See "Command line
1007 editing" section for details.
1008
1009 Ctrl-N recall more recent command-line from history.
1010
1011 Ctrl-P recall older command-line from history.
1012
1013 Up recall more recent command-line from history, that begins as the
1014 current command-line.
1015
1016 Down recall older command-line from history, that begins as the cur‐
1017 rent command-line.
1018
1019 Ctrl-] trigger abbreviation expansion.
1020
1022 The shortcuts listed below insert specified values into current cursor
1023 position. Last key of every shortcut references value that it inserts:
1024 - c - [c]urrent file
1025 - d - [d]irectory path
1026 - e - [e]xtension of a file name
1027 - r - [r]oot part of a file name
1028 - t - [t]ail part of directory path
1029
1030 - a - [a]utomatic filter
1031 - m - [m]anual filter
1032 - = - local filter, which is bound to "=" in normal mode
1033
1034 Values related to filelist in current pane are available through Ctrl-X
1035 prefix, while values from the other pane have doubled Ctrl-X key as
1036 their prefix (doubled Ctrl-X is presumably easier to type than upper‐
1037 case letters; it's still easy to remap the keys to correspond to names
1038 of similar macros).
1039
1040 Ctrl-X c
1041 name of the current file of the active pane.
1042
1043 Ctrl-X d
1044 path to the current directory of the active pane.
1045
1046 Ctrl-X e
1047 extension of the current file of the active pane.
1048
1049 Ctrl-X r
1050 name root of current file of the active pane.
1051
1052 Ctrl-X t
1053 the last component of path to the current directory of the ac‐
1054 tive pane.
1055
1056 Ctrl-X Ctrl-X c
1057 name of the current file of the inactive pane.
1058
1059 Ctrl-X Ctrl-X d
1060 path to the current directory of the inactive pane.
1061
1062 Ctrl-X Ctrl-X e
1063 extension of the current file of the inactive pane.
1064
1065 Ctrl-X Ctrl-X r
1066 name root of current file of the inactive pane.
1067
1068 Ctrl-X Ctrl-X t
1069 the last component of path to the current directory of the inac‐
1070 tive pane.
1071
1072
1073 Ctrl-X a
1074 value of implicit permanent filter (old name "automatic") of the
1075 active pane.
1076
1077 Ctrl-X m
1078 value of explicit permanent filter (old name "manual") of the
1079 active pane.
1080
1081 Ctrl-X =
1082 value of local filter of the active pane.
1083
1084
1085 Ctrl-X /
1086 last pattern from search history.
1087
1089 vifm provides a facility to edit several kinds of data, that is usually
1090 edited in command-line mode, in external editor (using command speci‐
1091 fied by 'vicmd' or 'vixcmd' option). This has at least two advantages
1092 over built-in command-line mode:
1093 - one can use full power of Vim to edit text;
1094 - finding and reusing history entries becomes possible.
1095
1096 The facility is supported by four input submodes of the command-line:
1097 - command;
1098 - forward search;
1099 - backward search;
1100 - file rename (see description of cw and cW normal mode keys).
1101
1102 Editing command-line using external editor is activated by the Ctrl-G
1103 shortcut. It's also possible to do almost the same from Normal and
1104 Visual modes using q:, q/ and q? commands.
1105
1106 Temporary file created for the purpose of editing the line has the fol‐
1107 lowing structure:
1108
1109 1. First line, which is either empty or contains text already entered
1110 in command-line.
1111
1112 2. 2nd and all other lines with history items starting with the most
1113 recent one. Altering this lines in any way won't change history
1114 items stored by vifm.
1115
1116 After editing application is finished the first line of the file is
1117 taken as the result of operation, when the application returns zero
1118 exit code. If the application returns an error (see :cquit command in
1119 Vim), all the edits made to the file are ignored, but the initial value
1120 of the first line is saved in appropriate history.
1121
1123 This is the mode that appears when status bar content is so big that it
1124 doesn't fit on the screen. One can identify the mode by "-- More --"
1125 message at the bottom.
1126
1127 The following keys are handled in this mode:
1128
1129
1130 Enter, Ctrl-J, j or Down
1131 scroll one line down.
1132
1133 Backspace, k or Up
1134 scroll one line up.
1135
1136
1137 d scroll one page (half of a screen) down.
1138
1139 u scroll one page (half of a screen) up.
1140
1141
1142 Space, f or PageDown
1143 scroll down a screen.
1144
1145 b or PageUp
1146 scroll up a screen.
1147
1148
1149 G scroll to the bottom.
1150
1151 g scroll to the top.
1152
1153
1154 q, Escape or Ctrl-C
1155 quit the mode.
1156
1157 : switch to command-line mode.
1158
1160 Commands are executed with :command_name<Enter>
1161
1162 Commented out lines should start with the double quote symbol ("),
1163 which may be preceded by whitespace characters intermixed with colons.
1164 Inline comments can be added at the end of the line after double quote
1165 symbol, only last line of a multi-line command can contain such com‐
1166 ment. Not all commands support inline comments as their syntax con‐
1167 flicts with names of registers and fields where double quotes are al‐
1168 lowed.
1169
1170 Most of the commands have two forms: complete and the short one. Exam‐
1171 ple:
1172
1173 :noh[lsearch]
1174
1175 This means the complete command is nohlsearch, and the short one is
1176 noh.
1177
1178 Most of command-line commands completely reset selection in the current
1179 view. However, there are several exceptions:
1180
1181 - `:invert s` most likely leaves some files selected;
1182
1183 - :normal command (when it doesn't leave command-line mode);
1184
1185 - :if and :else commands don't affect selection on successful execu‐
1186 tion.
1187
1188 '|' can be used to separate commands, so you can give multiple commands
1189 in one line. If you want to use '|' in an argument, precede it with
1190 '\'.
1191
1192 These commands see '|' as part of their arguments even when it's es‐
1193 caped:
1194
1195 :[range]!
1196 :autocmd
1197 :cabbrev
1198 :cmap
1199 :cnoreabbrev
1200 :cnoremap
1201 :command
1202 :dmap
1203 :dnoremap
1204 :filetype
1205 :fileviewer
1206 :filextype
1207 :map
1208 :mmap
1209 :mnoremap
1210 :nmap
1211 :nnoremap
1212 :noremap
1213 :normal
1214 :qmap
1215 :qnoremap
1216 :vmap
1217 :vnoremap
1218 :wincmd
1219 :windo
1220 :winrun
1221
1222 To be able to use another command after one of these, wrap it with the
1223 :execute command. An example:
1224
1225 if filetype('.') == 'reg' | execute '!!echo regular file' | endif
1226
1227 :[count]
1228
1229 :number
1230 move to the file number.
1231 :12 would move to the 12th file in the list.
1232 :0 move to the top of the list.
1233 :$ move to the bottom of the list.
1234
1235 :[count]command
1236 The only builtin :[count]command are :[count]d[elete] and
1237 :[count]y[ank].
1238
1239 :d3 would delete three files starting at the current file position
1240 moving down.
1241
1242 :3d would delete one file at the third line in the list.
1243
1244 :command [args]
1245
1246 :[range]!program
1247 execute command via shell. Accepts macros.
1248
1249 :[range]!command &
1250
1251 same as above, but the command is run in the background using vifm's
1252 means.
1253
1254 Programs that write to stderr create error dialogs showing errors of
1255 the command.
1256
1257 Note the space before ampersand symbol, if you omit it, command will be
1258 run in the background using job control of your shell.
1259
1260 Accepts macros.
1261
1262 :!!
1263
1264 :[range]!!command
1265 same as :!, but pauses before returning.
1266
1267 :!! repeat the last command.
1268
1269 :alink
1270
1271 :[range]alink[!?]
1272 create absolute symbolic links to files in directory of inactive
1273 view. With "?" prompts for destination file names in an edi‐
1274 tor. "!" forces overwrite.
1275
1276 :[range]alink[!] path
1277 create absolute symbolic links to files in directory specified
1278 by the path (absolute or relative to directory of inactive
1279 view).
1280
1281 :[range]alink[!] name1 name2...
1282 create absolute symbolic links of files in directory of other
1283 view giving each next link a corresponding name from the argu‐
1284 ment list.
1285
1286 :apropos
1287
1288 :apropos keyword...
1289 create a menu of items returned by the apropos command. Select‐
1290 ing an item in the menu opens corresponding man page. By de‐
1291 fault the command relies on the external "apropos" utility,
1292 which can be customized by altering value of the 'aproposprg'
1293 option. See "Menus and dialogs" section for controls.
1294
1295 :autocmd
1296
1297 :au[tocmd] {event} {pat} {cmd}
1298 register autocommand for the {event}, which can be:
1299 - DirEnter - triggered after directory is changed
1300 Event name is case insensitive.
1301
1302 {pat} is a comma-separated list of modified globs patterns,
1303 which can contain tilde or environment variables. All paths use
1304 slash ('/') as directory separator. The pattern can start with
1305 a '!', which negates it. Patterns that do not contain slashes
1306 are matched against the last item of the path only (e.g. "dir"
1307 in "/path/dir"). Literal comma can be entered by doubling it.
1308 Two modifications to globs matching are as follows:
1309 - * - never matches a slash (i.e., can signify single direc‐
1310 tory level)
1311 - ** - matches any character (i.e., can match path of arbi‐
1312 trary depth)
1313
1314 {cmd} is a :command or several of them separated with '|'.
1315
1316 Examples of patterns:
1317 - conf.d - matches conf.d directory anywhere
1318 - *.d - matches directories ending with ".d" anywhere
1319 - **.git - matches something.git, but not .git anywhere
1320 - **/.git/** - matches /path/.git/objects, but not /path/.git
1321 - **/.git/**/ - matches /path/.git/ only (because of trailing
1322 slash)
1323 - /etc/* - matches /etc/conf.d/, /etc/X11, but not
1324 /etc/X11/fs
1325 - /etc/**/*.d - matches /etc/conf.d, /etc/X11/conf.d, etc.
1326 - /etc/**/* - matches /etc/ itself and any file below it
1327 - /etc/**/** - matches /etc/ itself and any file below it
1328
1329 :au[tocmd] [{event}] [{pat}]
1330 list those autocommands that match given event-pattern combina‐
1331 tion.
1332 {event} and {pat} can be omitted to list all autocommands. To
1333 list any autocommands for specific pattern one can use * place‐
1334 holder in place of {event}.
1335
1336 :au[tocmd]! [{event}] [{pat}]
1337 remove autocommands that match given event-pattern combination.
1338 Syntax is the same as for listing above.
1339
1340 :apropos
1341 repeat last :apropos command.
1342
1343 :bmark
1344
1345 :bmark tag1 [tag2 [tag3...]]
1346 bookmark current directory with specified tags.
1347
1348 :bmark! path tag1 [tag2 [tag3...]]
1349 same as :bmark, but allows bookmarking specific path instead of
1350 current directory. This is for use in vifmrc and for bookmark‐
1351 ing files.
1352
1353 Path can contain macros that expand to single path (%c, %C, %d,
1354 %D) or those that can expand to multiple paths, but contain only
1355 one (%f, %F, %rx). The latter is done for convenience on using
1356 the command interactively. Complex macros that include spaces
1357 (e.g. "%c:gs/ /_") should be escaped.
1358
1359 :bmarks
1360
1361 :bmarks
1362 display all bookmarks in a menu.
1363
1364 :bmarks [tag1 [tag2...]]
1365 display menu of bookmarks that include all of the specified
1366 tags. See "Menus and dialogs" section for controls.
1367
1368 :bmgo
1369
1370 :bmgo [tag1 [tag2...]]
1371 when there are more than one match acts exactly like :bmarks,
1372 otherwise navigates to single match immediately (and fails if
1373 there is no match).
1374
1375 :cabbrev
1376
1377 :ca[bbrev]
1378 display menu of command-line mode abbreviations. See "Menus and
1379 dialogs" section for controls.
1380
1381 :ca[bbrev] lhs-prefix
1382 display command-line mode abbreviations which left-hand side
1383 starts with specified prefix.
1384
1385 :ca[bbrev] lhs rhs
1386 register new or overwrites existing abbreviation for command-
1387 line mode. rhs can contain spaces and any special sequences ac‐
1388 cepted in rhs of mappings (see "Mappings" section below). Ab‐
1389 breviations are expanded non-recursively.
1390
1391 :cnoreabbrev
1392
1393 :cnorea[bbrev]
1394 display menu of command-line mode abbreviations. See "Menus and
1395 dialogs" section for controls.
1396
1397 :cnorea[bbrev] lhs-prefix
1398 display command-line mode abbreviations which left-hand side
1399 starts with specified prefix.
1400
1401 :cnorea[bbrev] lhs rhs
1402 same as :cabbrev, but mappings in rhs are ignored during expan‐
1403 sion.
1404
1405 :cd
1406
1407 :cd or :cd ~ or :cd $HOME
1408 change to home directory.
1409
1410 :cd - go to the last visited directory.
1411
1412 :cd ~/dir
1413 change directory to ~/dir.
1414
1415 :cd /curr/dir /other/dir
1416 change directory of the current pane to /curr/dir and directory
1417 of the other pane to /other/dir. Relative paths are assumed to
1418 be relative to directory of current view. Command won't fail if
1419 one of directories is invalid. All forms of the command accept
1420 macros.
1421
1422 :cd! /dir
1423 same as :cd /dir /dir.
1424
1425 :cds
1426
1427 :cds[!] pattern string
1428 navigate to path obtained by substituting first match in current
1429 path. Arguments can include slashes, but starting first argu‐
1430 ment with a separator will activate below form of the command.
1431 Specifying "!" changes directory of both panes.
1432
1433 Available flags:
1434
1435 - i - ignore case (the 'ignorecase' and 'smartcase' options are not
1436 used)
1437
1438 - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
1439 not used)
1440
1441 :cds[!]/pattern/string/[flags]
1442 same as above, but with :substitute-like syntax. Other punctua‐
1443 tion characters can be used as separators.
1444
1445 :change
1446
1447 :c[hange]
1448 show a dialog to alter properties of files.
1449
1450 :chmod
1451
1452 :[range]chmod
1453 display file attributes (permission on *nix and properties on
1454 Windows) change dialog.
1455
1456 :[range]chmod[!] arg...
1457 only for *nix
1458 change permissions for files. See `man 1 chmod` for arg format.
1459 "!" means set permissions recursively.
1460
1461 :chown
1462
1463 :[range]chown
1464 only for *nix
1465 same as co key in normal mode.
1466
1467 :[range]chown [user][:][group]
1468 only for *nix
1469 change owner and/or group of files. Operates on directories re‐
1470 cursively.
1471
1472 :clone
1473
1474 :[range]clone[!?]
1475 clones files in current directory. With "?" vifm will open vi
1476 to edit file names. "!" forces overwrite. Macros are expanded.
1477
1478 :[range]clone[!] path
1479 clones files to directory specified with the path (absolute or
1480 relative to current directory). "!" forces overwrite. Macros
1481 are expanded.
1482
1483 :[range]clone[!] name1 name2...
1484 clones files in current directory giving each next clone a cor‐
1485 responding name from the argument list. "!" forces overwrite.
1486 Macros are expanded.
1487
1488 :colorscheme
1489
1490 :colo[rscheme]?
1491 print current color scheme name on the status bar.
1492
1493 :colo[rscheme]
1494 display a menu with a list of available color schemes. You can
1495 choose primary color scheme here. It is used for view if no di‐
1496 rectory specific colorscheme fits current path. It's also used
1497 to set border color (except view titles) and colors in menus and
1498 dialogs. See "Menus and dialogs" section for controls.
1499
1500 :colo[rscheme] color_scheme_name
1501 change primary color scheme to color_scheme_name. In case of
1502 errors (e.g. some colors are not supported by terminal) either
1503 nothing is changed or color scheme is reset to builtin colors to
1504 ensure that TUI is left in a usable state.
1505
1506 :colo[rscheme] color_scheme_name directory
1507 associate directory with the color scheme. The directory argu‐
1508 ment can be either absolute or relative path when :colorscheme
1509 command is executed from command line, but mandatory should be
1510 an absolute path when the command is executed in scripts loaded
1511 at startup (until vifm is completely loaded).
1512
1513 :colo[rscheme] color_scheme_name color_scheme_name...
1514 loads the first color scheme in the order given that exists and
1515 is supported by the terminal. If none matches, current one re‐
1516 mains unchanged. For example:
1517
1518 " use a separate color scheme for panes which are inside FUSE mounts
1519 execute 'colorscheme in-fuse' &fusehome
1520
1521 :comclear
1522
1523 :comc[lear]
1524 remove all user defined commands.
1525
1526 :command
1527
1528 :com[mand]
1529 display a menu of user commands. See "Menus and dialogs" sec‐
1530 tion for controls.
1531
1532 :com[mand] prefix
1533 display user defined commands that start with the prefix.
1534
1535 :com[mand] name action[ &]
1536 set or redefine a user command.
1537 Use :com[mand]! to overwrite a previously set command of the
1538 same name. Builtin commands can't be redefined.
1539 User commands must start with an upper or lower case letter.
1540 Command name can't contain special symbols except for a single
1541 trailing '?' or '!'. Numbers are allowed provided that they
1542 don't cause parsing ambiguity (no command name prefix that pre‐
1543 cedes a digit can match an existing command unless it has a
1544 digit in the same place), for example:
1545 " good
1546 :command mp3 command
1547 " good
1548 :command mp4 command
1549 :command mp3! command
1550 :command mp4? command
1551 " bad
1552 :command mp command
1553 :command mp44 command
1554 " good
1555 :command mp4c command
1556
1557 User commands are run in a shell by default (see below for syn‐
1558 tax of other options). To run a command in the background you
1559 must mark it as a background command by adding " &" after the
1560 command's action (e.g., `:com rm rm %f &`).
1561 User commands of all kinds have macros expanded in them. See
1562 "Command macros" section for more information.
1563
1564 :com[mand] name /pattern
1565 set search pattern.
1566
1567 :com[mand] name =pattern
1568 set local filter value.
1569
1570 :com[mand] name filter{:filter args}
1571 set file name filter (see :filter command description). For ex‐
1572 ample:
1573
1574 " display only audio files
1575 :command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
1576 " display everything except audio files
1577 :command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
1578
1579 :com[mand] name :commands
1580 set kind of an alias for internal commands (like in a shell).
1581 Passes range given to alias to an aliased command, so running
1582 :%cp after
1583 :command cp :copy %a
1584 equals
1585 :%copy
1586
1587 :compare
1588
1589 :compare [byname | bysize | bycontents | listall | listunique |
1590 listdups | ofboth | ofone | groupids | grouppaths | skipempty]...
1591 compare files in one or two views according to the arguments.
1592 The default is "bycontents listall ofboth grouppaths". See
1593 "Compare views" section below for details. Diff structure is
1594 incompatible with alternative representations, so values of
1595 'lsview' and 'millerview' options are ignored.
1596
1597 :copen
1598
1599 :cope[n]
1600 opens menu with contents of the last displayed menu with naviga‐
1601 tion to files by default, if any.
1602
1603 :copy
1604
1605 :[range]co[py][!?][ &]
1606 copy files to directory of other view. With "?" prompts for
1607 destination file names in an editor. "!" forces overwrite.
1608
1609 :[range]co[py][!] path[ &]
1610 copy files to directory specified with the path (absolute or
1611 relative to directory of other view). "!" forces overwrite.
1612
1613 :[range]co[py][!] name1 name2...[ &]
1614 copy files to directory of other view giving each next file a
1615 corresponding name from the argument list. "!" forces over‐
1616 write.
1617
1618 :cquit
1619
1620 :cq[uit][!]
1621 same as :quit, but also aborts directory choosing via
1622 --choose-dir (empties output file) and returns non-zero exit
1623 code.
1624
1625 :cunabbrev
1626
1627 :cuna[bbrev] lhs
1628 unregister command-line mode abbreviation by its lhs.
1629
1630 :cuna[bbrev] rhs
1631 unregister command-line mode abbreviation by its rhs, so that
1632 abbreviation could be removed even after expansion.
1633
1634 :delbmarks
1635
1636 :delbmarks
1637 remove bookmarks from current directory.
1638
1639 :delbmarks tag1 [tag2 [tag3...]]
1640 remove set of bookmarks that include all of the specified tags.
1641
1642 :delbmarks!
1643 remove all bookmarks.
1644
1645 :delbmarks! path1 [path2 [path3...]]
1646 remove bookmarks of listed paths.
1647
1648 :delcommand
1649
1650 :delc[ommand] user_command
1651 remove user defined command named user_command.
1652
1653 :delete
1654
1655 :[range]d[elete][!][ &]
1656 delete selected file or files. "!" means complete removal
1657 (omitting trash).
1658
1659 :[range]d[elete][!] [reg] [count][ &]
1660 delete selected or [count] files to the reg register. "!" means
1661 complete removal (omitting trash).
1662
1663 :delmarks
1664
1665 :delm[arks]!
1666 delete all marks.
1667
1668 :delm[arks] marks ...
1669 delete specified marks, each argument is treated as a set of
1670 marks.
1671
1672 :delsession
1673
1674 :delsession
1675 delete specified session if it was stored previously. Deleting
1676 current session doesn't detach it.
1677
1678 :display
1679
1680 :di[splay]
1681 display menu with registers content.
1682
1683 :di[splay] list ...
1684 display the contents of the numbered and named registers that
1685 are mentioned in list (for example "az to display "", "a and "z
1686 content).
1687
1688 :dirs
1689
1690 :dirs display directory stack in a menu. See "Menus and dialogs" sec‐
1691 tion for controls.
1692
1693 :echo
1694
1695 :ec[ho] [<expr>...]
1696 evaluate each argument as an expression and output them sepa‐
1697 rated with a space. See help on :let command for a definition
1698 of <expr>.
1699
1700 :edit
1701
1702 :[range]e[dit] [file...]
1703 open selected or passed file(s) in editor. Macros and environ‐
1704 ment variables are expanded.
1705
1706 :else
1707
1708 :el[se]
1709 execute commands until next matching :endif if all other condi‐
1710 tions didn't match. See also help on :if and :endif commands.
1711
1712 :elseif
1713
1714 :elsei[f] {expr1}
1715 execute commands until next matching :elseif, :else or :endif if
1716 conditions of previous :if and :elseif branches were evaluated
1717 to zero. See also help on :if and :endif commands.
1718
1719 :empty
1720
1721 :empty permanently remove files from all existing non-empty trash di‐
1722 rectories (see "Trash directory" section below). Trash directo‐
1723 ries which are specified via %r and/or %u also get deleted com‐
1724 pletely. Also remove all operations from undolist that have no
1725 sense after :empty and remove all records about files located
1726 inside directories from all registers. Removal is performed as
1727 background task with undetermined amount of work and can be
1728 checked via :jobs menu.
1729
1730 :endif
1731
1732 :en[dif]
1733 end conditional block. See also help on :if and :else commands.
1734
1735 :execute
1736
1737 :exe[cute] [<expr>...]
1738 evaluate each argument as an expression and join results sepa‐
1739 rated by a space to get a single string which is then executed
1740 as a command-line command. See help on :let command for a defi‐
1741 nition of <expr>.
1742
1743 :exit
1744
1745 :exi[t][!]
1746 same as :quit.
1747
1748 :file
1749
1750 :f[ile][ &]
1751 display menu of programs set for the file type of the current
1752 file. " &" forces running associated program in background.
1753 See "Menus and dialogs" section for controls.
1754
1755 :f[ile] arg[ &]
1756 run associated command that begins with the arg skipping opening
1757 menu. " &" forces running associated program in background.
1758
1759 :filetype
1760
1761 :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],...
1762 associate given program list to each of the patterns. Associ‐
1763 ated program (command) is used by handlers of l and Enter keys
1764 (and also in the :file menu). If you need to insert comma into
1765 command just double it (",,"). Space followed by an ampersand
1766 as two last characters of a command means running of the command
1767 in the background. Optional description can be given to each
1768 command to ease understanding of what command will do in the
1769 :file menu. Vifm will try the rest of the programs for an asso‐
1770 ciation when the default isn't found. When program entry
1771 doesn't contain any of vifm macros, name of current file is ap‐
1772 pended as if program entry ended with %c macro on *nix and %"c
1773 on Windows. On Windows path to executables containing spaces
1774 can (and should be for correct work with such paths) be double
1775 quoted. See "Patterns" section below for pattern definition and
1776 "Selection" section for how selection is handled. See also "Au‐
1777 tomatic FUSE mounts" section below. Example for zip archives
1778 and several actions:
1779
1780 filetype *.zip,*.jar,*.war,*.ear
1781 \ {Mount with fuse-zip}
1782 \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
1783 \ {View contents}
1784 \ zip -sf %c | less,
1785 \ {Extract here}
1786 \ tar -xf %c,
1787
1788 Note that on OS X when `open` is used to call an app, vifm is
1789 unable to check whether that app is actually available. So if
1790 automatic skipping of programs that aren't there is desirable,
1791 `open` should be replaced with an actual command.
1792
1793 :filet[ype] filename
1794 list (in menu mode) currently registered patterns that match
1795 specified file name. Same as ":filextype filename".
1796
1797 :filextype
1798
1799 :filex[type] pattern-list [{ description }] def_program,program2,...
1800 same as :filetype, but this command is ignored if not running in
1801 X. In X :filextype is equal to :filetype. See "Patterns" sec‐
1802 tion below for pattern definition and "Selection" section for
1803 how selection is handled. See also "Automatic FUSE mounts" sec‐
1804 tion below.
1805
1806 For example, consider the following settings (the order might
1807 seem strange, but it's for the demonstration purpose):
1808
1809 filetype *.html,*.htm
1810 \ {View in lynx}
1811 \ lynx
1812 filextype *.html,*.htm
1813 \ {Open with dwb}
1814 \ dwb %f %i &,
1815 filetype *.html,*.htm
1816 \ {View in links}
1817 \ links
1818 filextype *.html,*.htm
1819 \ {Open with firefox}
1820 \ firefox %f &,
1821 \ {Open with uzbl}
1822 \ uzbl-browser %f %i &,
1823
1824 If you're using vifm inside a terminal emulator that is running
1825 in graphical environment (when X is used on *nix; always on Win‐
1826 dows), vifm attempts to run application in this order:
1827
1828 1. lynx
1829 2. dwb
1830 3. links
1831 4. firefox
1832 5. uzbl
1833
1834 If there is no graphical environment (checked by presence of
1835 non-empty $DISPLAY or $WAYLAND_DISPLAY environment variable on
1836 *nix; never happens on Windows), the list will look like:
1837
1838 1. lynx
1839 2. links
1840
1841 Just as if all :filextype commands were not there.
1842
1843 The purpose of such differentiation is to allow comfortable use
1844 of vifm with same settings in desktop environment/through remote
1845 connection (SSH)/in native console.
1846
1847 Note that on OS X $DISPLAY isn't defined unless you define it,
1848 so :filextype should be used only if you set $DISPLAY in some
1849 way.
1850
1851 :filext[ype] filename
1852 list (in menu mode) currently registered patterns that match
1853 specified file name. Same as ":filetype filename".
1854
1855 :fileviewer
1856
1857 :filev[iewer] pattern-list command1,command2,...
1858 register specified list of commands as viewers for each of the
1859 patterns. Viewer is a command which output is captured and dis‐
1860 played in one of the panes of vifm after pressing "e" or running
1861 :view command. When the command doesn't contain any of vifm
1862 macros, name of current file is appended as if command ended
1863 with %c macro. Comma escaping and missing commands processing
1864 rules as for :filetype apply to this command. See "Patterns"
1865 section below for pattern definition. Supports Lua handlers.
1866
1867 Example for zip archives:
1868
1869 fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:"
1870
1871 :filev[iewer] filename
1872 list (in menu mode) currently registered patterns that match
1873 specified filename.
1874
1875 :filter
1876
1877 :filter[!] {pattern}
1878 filter files matching the pattern out of directory listings.
1879 '!' controls state of filter inversion after updating filter
1880 value (see also 'cpoptions' description). Filter is matched
1881 case sensitively on *nix and case insensitively on Windows. See
1882 "File Filters" and "Patterns" sections.
1883
1884 Example:
1885
1886 " filter all files ending in .o from the filelist.
1887 :filter /.o$/
1888
1889
1890 :filter[!] {empty-pattern}
1891 same as above, but use last search pattern as pattern value.
1892
1893 Example:
1894
1895 :filter //I
1896
1897
1898 :filter
1899 reset filter (set it to an empty string) and show all files.
1900
1901 :filter!
1902 same as :invert.
1903
1904 :filter?
1905 show information on local, name and auto filters.
1906
1907 :find
1908
1909 :[range]fin[d] pattern
1910 display results of find command in the menu. Searches among se‐
1911 lected files if any. Accepts macros. By default the command
1912 relies on the external "find" utility, which can be customized
1913 by altering value of the 'findprg' option.
1914
1915 :[range]fin[d] -opt...
1916 same as :find above, but user defines all find arguments.
1917 Searches among selected files if any.
1918
1919 :[range]fin[d] path -opt...
1920 same as :find above, but user defines all find arguments. Ig‐
1921 nores selection and range.
1922
1923 :[range]fin[d]
1924 repeat last :find command.
1925
1926 :finish
1927
1928 :fini[sh]
1929 stop sourcing a script. Can only be used in a vifm script file.
1930 This is a quick way to skip the rest of the file.
1931
1932 :goto
1933
1934 :go[to]
1935 change directory if necessary and put specified path under the
1936 cursor. The path should be existing non-root path. Macros and
1937 environment variables are expanded.
1938
1939 :grep
1940
1941 :[range]gr[ep][!] pattern
1942 will show results of grep command in the menu. Add "!" to re‐
1943 quest inversion of search (look for lines that do not match pat‐
1944 tern). Searches among selected files if any and no range given.
1945 Ignores binary files by default. By default the command relies
1946 on the external "grep" utility, which can be customized by al‐
1947 tering value of the 'grepprg' option.
1948
1949 :[range]gr[ep][!] -opt...
1950 same as :grep above, but user defines all grep arguments, which
1951 are not escaped. Searches among selected files if any.
1952
1953 :[range]gr[ep][!]
1954 repeat last :grep command. "!" of this command inverts "!" in
1955 repeated command.
1956
1957 :help
1958
1959 :h[elp]
1960 show the help file.
1961
1962 :h[elp] argument
1963 is the same as using ':h argument' in vim. Use vifm-<something>
1964 to get help on vifm (tab completion works). This form of the
1965 command doesn't work when 'vimhelp' option is off.
1966
1967 :hideui
1968
1969 :hideui
1970 hide interface to show previous commands' output.
1971
1972 :highlight
1973
1974 :hi[ghlight]
1975 display information about all highlight groups active at the mo‐
1976 ment.
1977
1978 :hi[ghlight] clear
1979 reset all highlighting to builtin defaults and removed all file‐
1980 name-specific rules.
1981
1982 :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ )
1983 remove specified rule.
1984
1985 :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/ )
1986 display information on given highlight group or file name pat‐
1987 tern of color scheme used in the active view.
1988
1989 :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/[iI] )
1990 cterm=style | ctermfg=color | ctermbg=color | gui=style | guifg=color |
1991 guibg=color
1992 set style (cterm, gui), foreground (ctermfg, guifg) and/or back‐
1993 ground (ctermbg, guibg) parameters of highlight group or file
1994 name pattern for color scheme used in the active view.
1995
1996 All style values as well as color names are case insensitive.
1997
1998 Available style values (some of them can be combined):
1999 - bold
2000 - underline
2001 - reverse or inverse
2002 - standout
2003 - italic (on unsupported systems becomes reverse)
2004 - combine - add attributes of current group to attributes of the par‐
2005 ent in group hierarchy (see below) instead of replacing them
2006 - none
2007
2008 Available group-name values:
2009 - Win - color of all windows (views, dialogs, menus) and default color
2010 for their content (e.g. regular files in views)
2011 - AuxWin - color of auxiliary areas of windows
2012 - OtherWin - color of inactive pane
2013 - Border - color of vertical parts of the border
2014 - TabLine - tab line color (for 'tabscope' set to "global")
2015 - TabLineSel - color of the tip of selected tab (regardless of 'tab‐
2016 scope')
2017 - TopLine - top line color of the other pane
2018 - TopLineSel - top line color of the current pane
2019 - CmdLine - the command line/status bar color
2020 - ErrorMsg - color of error messages in the status bar
2021 - StatusLine - color of the line above the status bar
2022 - JobLine - color of job line that appears above the status line
2023 - WildMenu - color of the wild menu items
2024 - SuggestBox - color of key suggestion box
2025 - CurrLine - line at cursor position in active view
2026 - OtherLine - line at cursor position in inactive view
2027 - OddLine - color of every second entry line in a pane
2028 - LineNr - line number column of views
2029 - Selected - color of selected files
2030 - Directory - color of directories
2031 - Link - color of symbolic links in the views
2032 - BrokenLink - color of broken symbolic links
2033 - HardLink - color of regular files with more than one hard link
2034 - Socket - color of sockets
2035 - Device - color of block and character devices
2036 - Executable - color of executable files
2037 - Fifo - color of fifo pipes
2038 - CmpMismatch - color of mismatched files in side-by-side comparison
2039 by path
2040 - User1..User9 - 9 colors which can be used via %* 'statusline' macro
2041
2042 Available colors:
2043 - -1 or default or none - default or transparent
2044 - black and lightblack
2045 - red and lightred
2046 - green and lightgreen
2047 - yellow and lightyellow
2048 - blue and lightblue
2049 - magenta and lightmagenta
2050 - cyan and lightcyan
2051 - white and lightwhite
2052 - 0-255 - corresponding colors from 256-color palette (for ctermfg and
2053 ctermbg)
2054 - #rrggbb - direct ("gui", "true", 24-bit) color in hex-notation, each
2055 of the three compontents are in the range 0x00 to 0xff (for guifg and
2056 guibg)
2057
2058 Light versions of colors are regular colors with bold attribute set au‐
2059 tomatically in terminals that have less than 16 colors. So order of
2060 arguments of :highlight command is important and it's better to put
2061 "cterm" in front of others to prevent it from overwriting attributes
2062 set by "ctermfg" or "ctermbg" arguments.
2063
2064 For convenience of color scheme authors xterm-like names for 256 color
2065 palette is also supported. The mapping is taken from
2066 http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim
2067 Duplicated entries were altered by adding an underscore followed by nu‐
2068 merical suffix.
2069
2070 0 Black 86 Aquamarine1 172 Orange3
2071 1 Red 87 DarkSlateGray2 173 LightSalmon3_2
2072 2 Green 88 DarkRed_2 174 LightPink3
2073 3 Yellow 89 DeepPink4_2 175 Pink3
2074 4 Blue 90 DarkMagenta 176 Plum3
2075 5 Magenta 91 DarkMagenta_2 177 Violet
2076 6 Cyan 92 DarkViolet 178 Gold3_2
2077 7 White 93 Purple 179 LightGoldenrod3
2078 8 LightBlack 94 Orange4_2 180 Tan
2079 9 LightRed 95 LightPink4 181 MistyRose3
2080 10 LightGreen 96 Plum4 182 Thistle3
2081 11 LightYellow 97 MediumPurple3 183 Plum2
2082 12 LightBlue 98 MediumPurple3_2 184 Yellow3_2
2083 13 LightMagenta 99 SlateBlue1 185 Khaki3
2084 14 LightCyan 100 Yellow4 186 LightGoldenrod2
2085 15 LightWhite 101 Wheat4 187 LightYellow3
2086 16 Grey0 102 Grey53 188 Grey84
2087 17 NavyBlue 103 LightSlateGrey 189 LightSteelBlue1
2088 18 DarkBlue 104 MediumPurple 190 Yellow2
2089 19 Blue3 105 LightSlateBlue 191 DarkOliveGreen1
2090 20 Blue3_2 106 Yellow4_2 192 DarkOliveG‐
2091 reen1_2
2092 21 Blue1 107 DarkOliveGreen3 193 DarkSeaGreen1_2
2093 22 DarkGreen 108 DarkSeaGreen 194 Honeydew2
2094 23 DeepSkyBlue4 109 LightSkyBlue3 195 LightCyan1
2095 24 DeepSkyBlue4_2 110 LightSkyBlue3_2 196 Red1
2096 25 DeepSkyBlue4_3 111 SkyBlue2 197 DeepPink2
2097 26 DodgerBlue3 112 Chartreuse2_2 198 DeepPink1
2098 27 DodgerBlue2 113 DarkOliveGreen3_2 199 DeepPink1_2
2099 28 Green4 114 PaleGreen3_2 200 Magenta2_2
2100 29 SpringGreen4 115 DarkSeaGreen3 201 Magenta1
2101 30 Turquoise4 116 DarkSlateGray3 202 OrangeRed1
2102 31 DeepSkyBlue3 117 SkyBlue1 203 IndianRed1
2103 32 DeepSkyBlue3_2 118 Chartreuse1 204 IndianRed1_2
2104 33 DodgerBlue1 119 LightGreen_2 205 HotPink
2105 34 Green3 120 LightGreen_3 206 HotPink_2
2106 35 SpringGreen3 121 PaleGreen1 207 MediumOrchid1_2
2107 36 DarkCyan 122 Aquamarine1_2 208 DarkOrange
2108 37 LightSeaGreen 123 DarkSlateGray1 209 Salmon1
2109 38 DeepSkyBlue2 124 Red3 210 LightCoral
2110 39 DeepSkyBlue1 125 DeepPink4_3 211 PaleVioletRed1
2111 40 Green3_2 126 MediumVioletRed 212 Orchid2
2112 41 SpringGreen3_2 127 Magenta3 213 Orchid1
2113 42 SpringGreen2 128 DarkViolet_2 214 Orange1
2114 43 Cyan3 129 Purple_2 215 SandyBrown
2115 44 DarkTurquoise 130 DarkOrange3 216 LightSalmon1
2116 45 Turquoise2 131 IndianRed 217 LightPink1
2117 46 Green1 132 HotPink3 218 Pink1
2118 47 SpringGreen2_2 133 MediumOrchid3 219 Plum1
2119 48 SpringGreen1 134 MediumOrchid 220 Gold1
2120 49 MediumSpringGreen 135 MediumPurple2 221 LightGolden‐
2121 rod2_2
2122 50 Cyan2 136 DarkGoldenrod 222 LightGolden‐
2123 rod2_3
2124 51 Cyan1 137 LightSalmon3 223 NavajoWhite1
2125 52 DarkRed 138 RosyBrown 224 MistyRose1
2126 53 DeepPink4 139 Grey63 225 Thistle1
2127 54 Purple4 140 MediumPurple2_2 226 Yellow1
2128 55 Purple4_2 141 MediumPurple1 227 LightGoldenrod1
2129 56 Purple3 142 Gold3 228 Khaki1
2130 57 BlueViolet 143 DarkKhaki 229 Wheat1
2131 58 Orange4 144 NavajoWhite3 230 Cornsilk1
2132 59 Grey37 145 Grey69 231 Grey100
2133 60 MediumPurple4 146 LightSteelBlue3 232 Grey3
2134 61 SlateBlue3 147 LightSteelBlue 233 Grey7
2135 62 SlateBlue3_2 148 Yellow3 234 Grey11
2136 63 RoyalBlue1 149 DarkOliveGreen3_3 235 Grey15
2137 64 Chartreuse4 150 DarkSeaGreen3_2 236 Grey19
2138 65 DarkSeaGreen4 151 DarkSeaGreen2 237 Grey23
2139 66 PaleTurquoise4 152 LightCyan3 238 Grey27
2140 67 SteelBlue 153 LightSkyBlue1 239 Grey30
2141 68 SteelBlue3 154 GreenYellow 240 Grey35
2142 69 CornflowerBlue 155 DarkOliveGreen2 241 Grey39
2143 70 Chartreuse3 156 PaleGreen1_2 242 Grey42
2144 71 DarkSeaGreen4_2 157 DarkSeaGreen2_2 243 Grey46
2145 72 CadetBlue 158 DarkSeaGreen1 244 Grey50
2146 73 CadetBlue_2 159 PaleTurquoise1 245 Grey54
2147 74 SkyBlue3 160 Red3_2 246 Grey58
2148 75 SteelBlue1 161 DeepPink3 247 Grey62
2149 76 Chartreuse3_2 162 DeepPink3_2 248 Grey66
2150 77 PaleGreen3 163 Magenta3_2 249 Grey70
2151 78 SeaGreen3 164 Magenta3_3 250 Grey74
2152 79 Aquamarine3 165 Magenta2 251 Grey78
2153 80 MediumTurquoise 166 DarkOrange3_2 252 Grey82
2154 81 SteelBlue1_2 167 IndianRed_2 253 Grey85
2155 82 Chartreuse2 168 HotPink3_2 254 Grey89
2156 83 SeaGreen2 169 HotPink2 255 Grey93
2157 84 SeaGreen1 170 Orchid
2158 85 SeaGreen1_2 171 MediumOrchid1
2159
2160 There are two colors (foreground and background) and only one bold at‐
2161 tribute. Thus single bold attribute affects both colors when "reverse"
2162 attribute is used in vifm run inside terminal emulator. At the same
2163 time linux native console can handle boldness of foreground and back‐
2164 ground colors independently, but for consistency with terminal emula‐
2165 tors this is available only implicitly by using light versions of col‐
2166 ors. This behaviour might be changed in the future.
2167
2168 Although vifm supports 256 colors in a sense they are supported by UI
2169 drawing library, whether you will be able to use all of them highly de‐
2170 pends on your terminal. To set up terminal properly, make sure that
2171 $TERM in the environment you run vifm is set to name of 256-color ter‐
2172 minal (on *nixes it can also be set via X resources), e.g.
2173 xterm-256color. One can find list of available terminal names by list‐
2174 ing /usr/lib/terminfo/. Number of colors supported by terminal with
2175 current settings can be checked via "tput colors" command.
2176
2177 In order to use 24-bit colors one needs a terminal that supports them,
2178 corresponding terminfo record (probably ends in "-direct" like in
2179 "xterm-direct") and $TERM pointing to it. When vifm detects direct
2180 color support "cterm*" values are ignored for groups which have at
2181 least one of "gui*" values set, otherwise they are used after translat‐
2182 ing via a builtin palette.
2183
2184 Here is the hierarchy of highlight groups, which you need to know for
2185 using transparency:
2186 JobLine
2187 SuggestBox
2188 StatusLine
2189 WildMenu
2190 User1..User9
2191 Border
2192 CmdLine
2193 ErrorMsg
2194 Win
2195 OtherWin
2196 AuxWin
2197 OddLine
2198 File name specific highlights
2199 Directory
2200 Link
2201 BrokenLink
2202 HardLink
2203 Socket
2204 Device
2205 Fifo
2206 Executable
2207 Selected
2208 CurrLine
2209 LineNr (in active pane)
2210 OtherLine
2211 LineNr (in inactive pane)
2212 TopLine
2213 TopLineSel
2214 TabLineSel (for pane tabs)
2215 User1..User9
2216 TabLine
2217 TabLineSel
2218 User1..User9
2219
2220 "none" means default terminal color for highlight groups at the first
2221 level of the hierarchy and transparency for all others.
2222
2223 Here file name specific highlights mean those configured via globs ({})
2224 or regular expressions (//). At most one of them is applied per file
2225 entry, namely the first that matches file name, hence order of :high‐
2226 light commands might be important in certain cases.
2227
2228 :history
2229
2230 :his[tory]
2231 display a menu with list of visited directories. See "Menus and
2232 dialogs" section for controls.
2233
2234 :his[tory] x
2235 x can be:
2236 d[ir] or . show directory history.
2237 c[md] or : show command line history.
2238 s[earch] or / show search history and search forward on l
2239 key.
2240 f[search] or / show search history and search forward on l
2241 key.
2242 b[search] or ? show search history and search backward on l
2243 key.
2244 i[nput] or @ show prompt history (e.g. on one file renam‐
2245 ing).
2246 fi[lter] or = show filter history (see description of the "="
2247 normal mode command).
2248 See "Menus and dialogs" section for controls.
2249
2250 :histnext
2251
2252 :histnext
2253 same as <c-i>. The main use case for this command is to work
2254 around the common pain point of <tab> and <c-i> being the same
2255 ASCII character: one could alter the terminal emulator settings
2256 to emit, for example, the `F1` keycode when Ctrl-I is pressed,
2257 then `:noremap <f1> :histnext<cr>` in vifm, add "t" flag to the
2258 'cpoptions', and thus have both <c-i> and <tab> working as ex‐
2259 pected.
2260
2261 :histprev
2262
2263 :histprev
2264 same as <c-o>.
2265
2266 :if
2267
2268 :if {expr1}
2269 start conditional block. Commands are executed until next
2270 matching :elseif, :else or :endif command if {expr1} evaluates
2271 to non-zero, otherwise they are ignored. See also help on :else
2272 and :endif commands.
2273
2274 Example:
2275
2276 if $TERM == 'screen.linux'
2277 highlight CurrLine ctermfg=lightwhite ctermbg=lightblack
2278 elseif $TERM == 'tmux'
2279 highlight CurrLine cterm=reverse ctermfg=black ctermbg=white
2280 else
2281 highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white
2282 endif
2283
2284 :invert
2285
2286 :invert [f]
2287 invert file name filter.
2288
2289 :invert? [f]
2290 show current filter state.
2291
2292 :invert s
2293 invert selection.
2294
2295 :invert o
2296 invert sorting order of the primary sorting key.
2297
2298 :invert? o
2299 show sorting order of the primary sorting key.
2300
2301 :jobs
2302
2303 :jobs display menu of current backgrounded processes. See "Menus and
2304 dialogs" section for controls.
2305
2306 :let
2307
2308 :let $ENV_VAR = <expr>
2309 set an environment variable. Warning: setting environment vari‐
2310 able to an empty string on Windows removes it.
2311
2312 :let $ENV_VAR .= <expr>
2313 append value to environment variable.
2314
2315 :let &[l:|g:]opt = <expr>
2316 sets option value.
2317
2318 :let &[l:|g:]opt .= <expr>
2319 append value to string option.
2320
2321 :let &[l:|g:]opt += <expr>
2322 increasing option value, adding sub-values.
2323
2324 :let &[l:|g:]opt -= <expr>
2325 decreasing option value, removing sub-values.
2326
2327 Where <expr> could be a single-quoted string, double-quoted string, an
2328 environment variable, function call or a concatanation of any of them
2329 in any order using the '.' operator. Any whitespace is ignored.
2330
2331 :locate
2332
2333 :locate filename
2334 use "locate" command to create a menu of filenames. Selecting a
2335 file from the menu will reload the current file list in vifm to
2336 show the selected file. By default the command relies on the
2337 external "locate" utility (it's assumed that its database is al‐
2338 ready built), which can be customized by altering value of the
2339 'locateprg' option. See "Menus and dialogs" section for con‐
2340 trols.
2341
2342 :locate
2343 repeat last :locate command.
2344
2345 :ls
2346
2347 :ls lists windows of active terminal multiplexer (only when terminal
2348 multiplexer is used). This is achieved by issuing proper com‐
2349 mand for active terminal multiplexer, thus the list is not han‐
2350 dled by vifm.
2351
2352 :lstrash
2353
2354 :lstrash
2355 display a menu with list of files in trash. Each element of the
2356 list is original path of a deleted file, thus the list can con‐
2357 tain duplicates. See "Menus and dialogs" section for controls.
2358
2359 :mark
2360
2361 :[range]ma[rk][?] x [/full/path] [filename]
2362 Set mark x (a-zA-Z0-9) at /full/path and filename. By default
2363 current directory is being used. If no filename was given and
2364 /full/path is current directory then last file in [range] is
2365 used. Using of macros is allowed. Question mark will stop com‐
2366 mand from overwriting existing marks.
2367
2368 :marks
2369
2370 :marks create a pop-up menu of marks. See "Menus and dialogs" section
2371 for controls.
2372
2373 :marks list ...
2374 display the contents of the marks that are mentioned in list.
2375
2376 :media
2377
2378 :media only for *nix
2379 display media management menu. See "Menus and dialogs" section
2380 for controls. See also 'mediaprg' option.
2381
2382 :messages
2383
2384 :mes[sages]
2385 shows previously given messages (up to 50).
2386
2387 :mkdir
2388
2389 :[line]mkdir[!] dir ...
2390 create directories at specified paths. The [line] can be used
2391 to pick node in a tree-view. "!" means make parent directories
2392 as needed. Macros are expanded.
2393
2394 :move
2395
2396 :[range]m[ove][!?][ &]
2397 move files to directory of other view. With "?" prompts for
2398 destination file names in an editor. "!" forces overwrite.
2399
2400 :[range]m[ove][!] path[ &]
2401 move files to directory specified with the path (absolute or
2402 relative to directory of other view). "!" forces overwrite.
2403
2404 :[range]m[ove][!] name1 name2...[ &]
2405 move files to directory of other view giving each next file a
2406 corresponding name from the argument list. "!" forces over‐
2407 write.
2408
2409 :nohlsearch
2410
2411 :noh[lsearch]
2412 clear selection in current pane.
2413
2414 :normal
2415
2416 :norm[al][!] commands
2417 execute normal mode commands. If "!" is used, user defined map‐
2418 pings are ignored. Unfinished last command is aborted as if
2419 <esc> or <c-c> was typed. A ":" should be completed as well.
2420 Commands can't start with a space, so put a count of 1 (one) be‐
2421 fore it.
2422
2423 :only
2424
2425 :on[ly]
2426 switch to a one window view.
2427
2428 :plugin
2429
2430 :plugin load
2431 loads all plugins. To be used in configuration file to manually
2432 load plugins at an earlier point. The plugins can be loaded
2433 only once, additional calls will do nothing.
2434
2435
2436 :plugin blacklist {plugin}
2437 adds {plugin} to the list of plugins to be ignored.
2438
2439 :plugin whitelist {plugin}
2440 adds {plugin} to the list of plugins to be loaded while ignoring
2441 all other plugins. This list should normally be empty.
2442
2443 :plugins
2444
2445 :plugins
2446 open plugins menu. See "Menus and dialogs" section for con‐
2447 trols.
2448
2449 :popd
2450
2451 :popd remove pane directories from stack.
2452
2453 :pushd
2454
2455 :pushd[!] /curr/dir [/other/dir]
2456 add pane directories to stack and process arguments like :cd
2457 command.
2458
2459 :pushd exchange the top two items of the directory stack.
2460
2461 :put
2462
2463 :[line]pu[t][!] [reg] [ &]
2464 put files from specified register (" by default) into current
2465 directory. The [line] can be used to pick node in a tree-view.
2466 "!" moves files "!" moves files from their original location in‐
2467 stead of copying them. During this operation no confirmation
2468 dialogs will be shown, all checks are performed beforehand.
2469
2470 :pwd
2471
2472 :pw[d] show the present working directory.
2473
2474 :qall
2475
2476 :qa[ll][!]
2477 exit vifm (add ! to skip saving changes and checking for active
2478 backgrounded commands).
2479
2480 :quit
2481
2482 :q[uit][!]
2483 if there is more than one tab, close the current one, otherwise
2484 exit vifm (add ! to skip saving state and checking for active
2485 backgrounded commands).
2486
2487 :redraw
2488
2489 :redr[aw]
2490 redraw the screen immediately.
2491
2492 :registers
2493
2494 :reg[isters]
2495 display menu with registers content.
2496
2497 :reg[isters] list ...
2498 display the contents of the numbered and named registers that
2499 are mentioned in list (for example "az to display "", "a and "z
2500 content).
2501
2502 :regular
2503
2504 :regular
2505
2506 switch to regular view leaving custom view.
2507 :rename
2508
2509 :[range]rename[!]
2510 rename files by editing their names in an editor. "!" renames
2511 files recursively in subdirectories. See "External Renaming"
2512 section.
2513
2514 :[range]rename name1 name2...
2515 rename each of selected files to a corresponding name.
2516
2517 :restart
2518
2519 :restart
2520 free a lot of things (histories, commands, etc.), reread
2521 vifminfo, vifmrc and session files and run startup commands
2522 passed in the argument list, thus losing all unsaved changes
2523 (e.g. recent history or keys mapped after starting this in‐
2524 stance). Session that wasn't yet stored gets reset.
2525
2526 While many things get reset, some basic UI state and current lo‐
2527 cations are preserved, including tabs.
2528
2529 :restart full
2530 variation of :restart that makes no attempt to preserve any‐
2531 thing.
2532
2533 :restore
2534
2535 :[range]restore
2536 restore file from trash directory, doesn't work outside one of
2537 trash directories. See "Trash directory" section below.
2538
2539 :rlink
2540
2541 :[range]rlink[!?]
2542 create relative symbolic links to files in directory of other
2543 view. With "?" prompts for destination file names in an editor.
2544 "!" forces overwrite.
2545
2546 :[range]rlink[!] path
2547 create relative symbolic links of files in directory specified
2548 with the path (absolute or relative to directory of other view).
2549 "!" forces overwrite.
2550
2551 :[range]rlink[!] name1 name2...
2552 create relative symbolic links of files in directory of other
2553 view giving each next link a corresponding name from the argu‐
2554 ment list. "!" forces overwrite.
2555
2556 :screen
2557
2558 :screen
2559 toggle whether to use the terminal multiplexer or not.
2560 A terminal multiplexer uses pseudo terminals to allow multiple
2561 windows to be used in the console or in a single xterm. Start‐
2562 ing vifm from terminal multiplexer with appropriate support
2563 turned on will cause vifm to open a new terminal multiplexer
2564 window for each new file edited or program launched from vifm.
2565 This requires screen version 3.9.9 or newer for the screen -X
2566 argument or tmux (1.8 version or newer is recommended).
2567
2568 :screen!
2569 enable integration with terminal multiplexers.
2570
2571 :screen?
2572 display whether integration with terminal multiplexers is en‐
2573 abled.
2574
2575 Note: the command is called screen for historical reasons (when tmux
2576 wasn't yet supported) and might be changed in future releases, or get
2577 an alias.
2578
2579 :select
2580
2581 :[range]select
2582 select files in the given range (current file if no range is
2583 given).
2584
2585 :select {pattern}
2586 select files that match specified pattern. Possible {pattern}
2587 forms are described in "Patterns" section below. Trailing slash
2588 for directories is taken into account, so `:select! */ | invert
2589 s` selects only files.
2590
2591 :select //[iI]
2592 same as item above, but reuses last search pattern.
2593
2594 :select !{external command}
2595 select files from the list supplied by external command. Files
2596 are matched by full paths, relative paths are converted to abso‐
2597 lute ones beforehand.
2598
2599 :[range]select! [{pattern}]
2600 same as above, but resets previously selected items before pro‐
2601 ceeding.
2602
2603 :session
2604
2605 :session?
2606 print name of the current session.
2607
2608 :session
2609 detach current session without saving it. Resets v:session.
2610
2611 :session name
2612 create or load and switch to a session with the specified name.
2613 Name can't contain slashes. Session active at the moment is
2614 saved before the switch. Session is also automatically saved
2615 when quiting the application in usual ways. Sets v:session.
2616
2617 :set
2618
2619 :se[t] display all options that differ from their default value.
2620
2621 :se[t] all
2622 display all options.
2623
2624 :se[t] opt1=val1 opt2='val2' opt3="val3" ...
2625 sets given options. For local options both values are set.
2626 You can use following syntax:
2627 - for all options - option, option? and option&
2628 - for boolean options - nooption, invoption and option!
2629 - for integer options - option=x, option+=x and option-=x
2630 - for string options - option=x and option+=x
2631 - for string list options - option=x, option+=x, option-=x and
2632 option^=x
2633 - for enumeration options - option=x, option+=x and option-=x
2634 - for set options - option=x, option+=x, option-=x and op‐
2635 tion^=x
2636 - for charset options - option=x, option+=x, option-=x and op‐
2637 tion^=x
2638
2639 the meaning:
2640 - option - turn option on (for boolean) or print its value (for
2641 all others)
2642 - nooption - turn option off
2643 - invoption - invert option state
2644 - option! - invert option state
2645 - option? - print option value
2646 - option& - reset option to its default value
2647 - option=x or option:x - set option to x
2648 - option+=x - add/append x to option
2649 - option-=x - remove (or subtract) x from option
2650 - option^=x - toggle x presence among values of the option
2651
2652 Option name can be prepended and appended by any number of
2653 whitespace characters.
2654
2655 :setglobal
2656
2657 :setg[lobal]
2658 display all global options that differ from their default value.
2659
2660 :setg[lobal] all
2661 display all global options.
2662
2663 :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ...
2664 same as :set, but changes/prints only global options or global
2665 values of local options. Changes to the latter might be not
2666 visible until directory is changed.
2667
2668 :setlocal
2669
2670 :setl[ocal]
2671 display all local options that differ from their default value.
2672
2673 :setl[ocal] all
2674 display all local options.
2675
2676 :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ...
2677 same as :set, but changes/prints only local values of local op‐
2678 tions.
2679
2680 :shell
2681
2682 :sh[ell][!]
2683 start a shell in current directory. "!" suppresses spawning
2684 dedicated window of terminal multiplexer for a shell. To make
2685 vifm adaptive to environment it uses $SHELL if it's defined,
2686 otherwise 'shell' value is used.
2687
2688
2689 :siblnext
2690
2691 :[count]siblnext[!]
2692
2693 change directory to [count]th next sibling directory after cur‐
2694 rent path using value of global sort option of current pane.
2695 "!" enables wrapping.
2696
2697 For example, say, you're at /boot and root listing starts like
2698 this:
2699
2700 bin/
2701 boot/
2702 dev/
2703 ...
2704
2705 Issuing :siblnext will navigate to /dev.
2706
2707
2708 :siblprev
2709
2710 :[count]siblprev[!]
2711 same as :siblnext, but in the opposite direction.
2712
2713 :sort
2714
2715 :sor[t]
2716 display dialog with different sorting methods, where one can se‐
2717 lect the primary sorting key. When 'viewcolumns' options is
2718 empty and 'lsview' is off, changing primary sorting key will
2719 also affect view look (in particular the second column of the
2720 view will be changed). See "Menus and dialogs" section for con‐
2721 trols.
2722
2723 :source
2724
2725 :so[urce] file
2726 read command-line commands from the file.
2727
2728 :split
2729
2730 :sp[lit]
2731 switch to a two window horizontal view.
2732
2733 :sp[lit]!
2734 toggle horizontal window splitting.
2735
2736 :sp[lit] path
2737 splits the window horizontally to show both file directories.
2738 Also changes other pane to path (absolute or relative to current
2739 directory of active pane).
2740
2741 :stop
2742
2743 :st[op]
2744 suspend vifm (same as pressing Ctrl-Z). Does nothing if this
2745 instance isn't running in a shell. The command exists to allow
2746 mapping to the action of Ctrl-Z.
2747
2748 :substitute
2749
2750 :[range]s[ubstitute]/pattern/string/[flags]
2751 for each file in range replace a match of pattern with string.
2752
2753 String can contain \0...\9 to link to capture groups (\0 - all match,
2754 \1 - first group, etc.).
2755
2756 Pattern is stored in search history.
2757
2758 Available flags:
2759
2760 - i - ignore case (the 'ignorecase' and 'smartcase' options are not
2761 used)
2762
2763 - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
2764 not used)
2765
2766 - g - substitute all matches in each file name (each g toggles this)
2767
2768 :[range]s[ubstitute]/pattern
2769 substitute pattern with an empty string.
2770
2771 :[range]s[ubstitute]//string/[flags]
2772 use last pattern from search history.
2773
2774 :[range]s[ubstitute]
2775 repeat previous substitution command.
2776
2777 :sync
2778
2779 :sync [relative path]
2780 change the other pane to the current pane directory or to some
2781 path relative to the current directory. Using macros is al‐
2782 lowed.
2783
2784 :sync! change the other pane to the current pane directory and synchro‐
2785 nize cursor position. If current pane displays custom list of
2786 files, position before entering it is used (current one might
2787 not make any sense).
2788
2789
2790 :sync! [location | cursorpos | localopts | filters | filelist | tree |
2791 all]...
2792 change enumerated properties of the other pane to match corre‐
2793 sponding properties of the current pane. Arguments have the
2794 following meanings:
2795
2796 - location - current directory of the pane;
2797
2798 - cursorpos - cursor position (doesn't make sense without "lo‐
2799 cation");
2800
2801 - localopts - all local options;
2802
2803 - filters - all filters;
2804
2805 - filelist - list of files for custom view (implies "loca‐
2806 tion");
2807
2808 - tree - tree structure for tree view (implies "location");
2809
2810 - all - all of the above.
2811
2812 :tabclose
2813
2814 :tabc[lose]
2815 close current tab, unless it's the only one open at current
2816 scope.
2817
2818 :tabmove
2819
2820 :tabm[ove] [N]
2821 without the argument or with `$` as the argument, current tab
2822 becomes the last tab. With the argument, current tab is moved
2823 after the tab with the specified number. Argument of `0` moves
2824 current tab to the first position.
2825
2826 :tabname
2827
2828 :tabname [name]
2829 set, update or reset (when no argument is provided) name of the
2830 current tab.
2831
2832 :tabnew
2833
2834 :tabnew [path]
2835 create new tab. Accepts optional path for the new tab. Macros
2836 and environment variables are expanded.
2837
2838 :tabnext
2839
2840 :tabn[ext]
2841 switch to the next tab (wrapping around).
2842
2843 :tabn[ext] {n}
2844 go to the tab number {n}. Tab numeration starts with 1.
2845
2846 :tabonly
2847
2848 :tabo[nly]
2849 close all tabs but the current one. Closes pane tabs only at
2850 the active side.
2851
2852 :tabprevious
2853
2854 :tabp[revious]
2855 switch to the previous tab (wrapping around).
2856
2857 :tabp[revious] {n}
2858 go to the {n}-th previous tab. Note that :tabnext handles its
2859 argument differently.
2860
2861 :touch
2862
2863 :[line]touch file...
2864 create files at specified paths. Aborts on errors. Doesn't up‐
2865 date time of existing files. The [line] can be used to pick
2866 node in a tree-view. Macros are expanded.
2867
2868 :tr
2869
2870 :[range]tr/pattern/string/
2871 for each file in range transliterate the characters which appear
2872 in pattern to the corresponding character in string. When
2873 string is shorter than pattern, it's padded with its last char‐
2874 acter.
2875
2876 :trashes
2877
2878 :trashes
2879 lists all valid trash directories in a menu. Only non-empty and
2880 writable trash directories are shown. This is exactly the list
2881 of directories that are cleared when :empty command is executed.
2882
2883 :trashes?
2884 same as :trashes, but also displays size of each trash direc‐
2885 tory.
2886
2887 :tree
2888
2889 :tree turn pane into tree view with current directory as its root.
2890 The tree view is implemented on top of a custom view, but is au‐
2891 tomatically kept in sync with file system state and considers
2892 all the filters. Thus the structure corresponds to what one
2893 would see on visiting the directories manually. As a special
2894 case for trees built out of custom view file-system tracking
2895 isn't performed.
2896
2897 To leave tree view go up from its root or use gh at any level of
2898 the tree. Any command that changes directory will also do, in
2899 particular, `:cd ..`.
2900
2901 Tree structure is incompatible with alternative representations,
2902 so values of 'lsview' and 'millerview' options are ignored.
2903
2904 The "depth" argument specifies nesting level on which loading of
2905 subdirectories won't happen (they will be folded). Values start
2906 at 1.
2907
2908 :tree! toggle current view in and out of tree mode.
2909
2910 :undolist
2911
2912 :undol[ist]
2913 display list of latest changes. Use "!" to see actual commands.
2914 See "Menus and dialogs" section for controls.
2915
2916 :unlet
2917
2918 :unl[et][!] $ENV_VAR1 $ENV_VAR2 ...
2919 remove environment variables. Add ! to omit displaying of warn‐
2920 ings about nonexistent variables.
2921
2922 :unselect
2923
2924 :[range]unselect
2925 unselect files in the given range (current file if no range is
2926 given).
2927
2928 :unselect {pattern}
2929 unselect files that match specified pattern. Possible {pattern}
2930 forms are described in "Patterns" section below. Trailing slash
2931 for directories is taken into account, so `:unselect */` unse‐
2932 lects directories.
2933
2934 :unselect !{external command}
2935 unselect files from the list supplied by external command.
2936 Files are matched by full paths, relative paths are converted to
2937 absolute ones beforehand.
2938
2939 :unselect //[iI]
2940 same as item above, but reuses last search pattern.
2941
2942 :version
2943
2944 :ve[rsion]
2945 show menu with version information.
2946
2947 :vifm
2948
2949 :vifm same as :version.
2950
2951 :view
2952
2953 :vie[w]
2954 toggle on and off the quick file view (preview of file's con‐
2955 tents). See also 'quickview' option.
2956
2957 :vie[w]!
2958 turn on quick file view if it's off.
2959
2960 :volumes
2961
2962 :volumes
2963 only for MS-Windows
2964 display menu with volume list. Hitting l (or Enter) key opens
2965 appropriate volume in the current pane. See "Menus and dialogs"
2966 section for controls.
2967
2968 :vsplit
2969
2970 :vs[plit]
2971 switch to a two window vertical view.
2972
2973 :vs[plit]!
2974 toggle window vertical splitting.
2975
2976 :vs[plit] path
2977 split the window vertically to show both file directories. And
2978 changes other pane to path (absolute or relative to current di‐
2979 rectory of active pane).
2980
2981 :wincmd
2982
2983 :[count]winc[md] {arg}
2984 same as running Ctrl-W [count] {arg}.
2985
2986 :windo
2987
2988 :windo [command...]
2989 execute command for each pane (same as :winrun % command).
2990
2991 :winrun
2992
2993 :winrun type [command...]
2994 execute command for pane(s), which is determined by type argu‐
2995 ment:
2996 - ^ - top-left pane
2997 - $ - bottom-right pane
2998 - % - all panes
2999 - . - current pane
3000 - , - other pane
3001
3002 :write
3003
3004 :w[rite]
3005 write current state to vifminfo and session files (if a session
3006 is active).
3007
3008 :wq
3009
3010 :wq[!] same as :quit, but ! disables only the check of backgrounded
3011 commands, while state of the application is always written.
3012 :wqall
3013
3014 :wqa[ll][!]
3015 same as :qall, but ! disables only the check of backgrounded
3016 commands, while state of the application is always written.
3017
3018 :xall
3019
3020 :xa[ll][!]
3021 same as :qall.
3022
3023 :xit
3024
3025 :x[it][!]
3026 same as :quit.
3027
3028 :yank
3029
3030 :[range]y[ank] [reg] [count]
3031 will yank files to the reg register.
3032
3033 :map lhs rhs
3034
3035 :map lhs rhs
3036 map lhs key sequence to rhs in normal and visual modes.
3037
3038 :map! lhs rhs
3039 map lhs key sequence to rhs in command line mode.
3040
3041
3042 :cmap :dmap :mmap :nmap :qmap
3043 :vmap
3044
3045 :cm[ap] lhs rhs
3046 map lhs to rhs in command line mode.
3047
3048 :dm[ap] lhs rhs
3049 map lhs to rhs in dialog modes.
3050
3051 :mm[ap] lhs rhs
3052 map lhs to rhs in menu mode.
3053
3054 :nm[ap] lhs rhs
3055 map lhs to rhs in normal mode.
3056
3057 :qm[ap] lhs rhs
3058 map lhs to rhs in view mode.
3059
3060 :vm[ap] lhs rhs
3061 map lhs to rhs in visual mode.
3062
3063
3064 :*map
3065
3066 :cm[ap]
3067 list all maps in command line mode.
3068
3069 :dm[ap]
3070 list all maps in dialog modes.
3071
3072 :mm[ap]
3073 list all maps in menu mode.
3074
3075 :nm[ap]
3076 list all maps in normal mode.
3077
3078 :qm[ap]
3079 list all maps in view mode.
3080
3081 :vm[ap]
3082 list all maps in visual mode.
3083
3084 :*map beginning
3085
3086 :cm[ap] beginning
3087 list all maps in command line mode that start with the begin‐
3088 ning.
3089
3090 :dm[ap] beginning
3091 list all maps in dialog modes that start with the beginning.
3092
3093 :mm[ap] beginning
3094 list all maps in menu mode that start with the beginning.
3095
3096 :nm[ap] beginning
3097 list all maps in normal mode that start with the beginning.
3098
3099 :qm[ap] beginning
3100 list all maps in view mode that start with the beginning.
3101
3102 :vm[ap] beginning
3103 list all maps in visual mode that start with the beginning.
3104
3105 :noremap
3106
3107 :no[remap] lhs rhs
3108 map the key sequence lhs to rhs for normal and visual modes, but
3109 don't expand user mappings in rhs.
3110
3111 :no[remap]! lhs rhs
3112 map the key sequence lhs to rhs for command line mode, but don't
3113 expand user mappings in rhs.
3114
3115 :cnoremap :dnoremap :mnoremap :nnoremap :qnoremap
3116 :vnoremap
3117
3118 :cno[remap] lhs rhs
3119 map the key sequence lhs to rhs for command line mode, but don't
3120 expand user mappings in rhs.
3121
3122 :dn[oremap] lhs rhs
3123 map the key sequence lhs to rhs for dialog modes, but don't ex‐
3124 pand user mappings in rhs.
3125
3126 :mn[oremap] lhs rhs
3127 map the key sequence lhs to rhs for menu mode, but don't expand
3128 user mappings in rhs.
3129
3130 :nn[oremap] lhs rhs
3131 map the key sequence lhs to rhs for normal mode, but don't ex‐
3132 pand user mappings in rhs.
3133
3134 :qn[oremap] lhs rhs
3135 map the key sequence lhs to rhs for view mode, but don't expand
3136 user mappings in rhs.
3137
3138 :vn[oremap] lhs rhs
3139 map the key sequence lhs to rhs for visual mode, but don't ex‐
3140 pand user mappings in rhs.
3141
3142 :unmap
3143
3144 :unm[ap] lhs
3145 remove user mapping of lhs from normal and visual modes.
3146
3147 :unm[ap]! lhs
3148 remove user mapping of lhs from command line mode.
3149
3150 :cunmap :dunmap :munmap :nunmap :qunmap
3151 :vunmap
3152
3153 :cu[nmap] lhs
3154 remove user mapping of lhs from command line mode.
3155
3156 :du[nmap] lhs
3157 remove user mapping of lhs from dialog modes.
3158
3159 :mu[nmap] lhs
3160 remove user mapping of lhs from menu mode.
3161
3162 :nun[map] lhs
3163 remove user mapping of lhs from normal mode.
3164
3165 :qun[map] lhs
3166 remove user mapping of lhs from view mode.
3167
3168 :vu[nmap] lhs
3169 remove user mapping of lhs from visual mode.
3170
3172 The ranges implemented include:
3173 2,3 - from second to third file in the list (including it)
3174 % - the entire directory.
3175 . - the current position in the filelist.
3176 $ - the end of the filelist.
3177 't - the mark position t.
3178
3179 Examples:
3180
3181 :%delete
3182
3183 would delete all files in the directory.
3184
3185 :2,4delete
3186
3187 would delete the files in the list positions 2 through 4.
3188
3189 :.,$delete
3190
3191 would delete the files from the current position to the end of the
3192 filelist.
3193
3194 :3delete4
3195
3196 would delete the files in the list positions 3, 4, 5, 6.
3197
3198 If a backward range is given :4,2delete - an query message is given and
3199 user can chose what to do next.
3200
3201 The builtin commands that accept a range are :d[elete] and :y[ank].
3202
3204 The command macros may be used in user commands.
3205
3206 %a User arguments. When user arguments contain macros, they are
3207 expanded before preforming substitution of %a.
3208
3209 %c %"c The current file under the cursor.
3210
3211 %C %"C The current file under the cursor in the other directory.
3212
3213 %f %"f All of the selected files, but see "Selection" section below.
3214
3215 %F %"F All of the selected files in the other directory list, but see
3216 "Selection" section below.
3217
3218 %b %"b Same as %f %F.
3219
3220 %d %"d Full path to current directory.
3221
3222 %D %"D Full path to other file list directory.
3223
3224 %rx %"rx
3225 Full paths to files in the register {x}. In case of invalid
3226 symbol in place of {x}, it's processed with the rest of the line
3227 and default register is used.
3228
3229 %m Show command output in a menu.
3230
3231 %M Same as %m, but l (or Enter) key is handled like for :locate and
3232 :find commands.
3233
3234 %u Process command output as list of paths and compose custom view
3235 out of it.
3236
3237 %U Same as %u, but implies less list updates inside vifm, which is
3238 absence of sorting at the moment.
3239
3240 %Iu Same as %u, but gives up terminal before running external com‐
3241 mand.
3242
3243 %IU Same as %U, but gives up terminal before running external com‐
3244 mand.
3245
3246 %S Show command output in the status bar.
3247
3248 %q Redirect command output to quick view, which is activated if
3249 disabled.
3250
3251 %s Execute command in horizontally split window of active terminal
3252 multiplexer (ignored if not running inside one).
3253
3254 %v Same as %s, but splits vertically.
3255
3256 %n Forbid use of terminal multiplexer to run the command.
3257
3258 %i Completely ignore command output. For background jobs this sup‐
3259 presses error dialogs, while still storing errors internally for
3260 viewing via :jobs menu.
3261
3262 %Pl Pipe list of files to standard input of a command.
3263
3264 %Pz Same as %Pz, but separates paths by null ('\0') character.
3265
3266 %pc Marks the end of the main command and the beginning of the clear
3267 command for graphical preview, which is invoked on closing pre‐
3268 view of a file.
3269
3270 %pd Marks a preview command as one that directly communicates with
3271 the terminal. Beware that this is for things like sixel which
3272 are self-contained sequences that depend only on current cursor
3273 position, using this with anything else is likely to mangle ter‐
3274 minal state.
3275
3276 The following dimensions and coordinates are in characters:
3277
3278 %px x coordinate of top-left corner of preview area.
3279
3280 %py y coordinate of top-left corner of preview area.
3281
3282 %pw width of preview area.
3283
3284 %ph height of preview area.
3285
3286
3287 Use %% if you need to put a percent sign in your command.
3288
3289 Note that %i, %Iu, %IU, %m, %M, %n, %q, %s, %S, %u, %U and %v macros
3290 are mutually exclusive. Only the last one of them on the command will
3291 take effect.
3292
3293 Note that %Pl and %Pz are mutually exclusive. Only the last one of
3294 them on the command will take effect.
3295
3296 You can use file name modifiers after %c, %C, %f, %F, %b, %d and %D
3297 macros. Supported modifiers are:
3298
3299 - :p - full path
3300
3301 - :u - UNC name of path (e.g. "\\server" in
3302 "\\server\share"), Windows only. Expands to current computer name
3303 for not UNC paths.
3304
3305 - :~ - relative to the home directory
3306
3307 - :. - relative to current directory
3308
3309 - :h - head of the file name
3310
3311 - :t - tail of the file name
3312
3313 - :r - root of the file name (without last extension)
3314
3315 - :e - extension of the file name (last one)
3316
3317 - :s?pat?sub? - substitute the first occurrence of pat with sub.
3318 You can use any character for '?', but it must not occur in pat or
3319 sub.
3320
3321 - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
3322 sub.
3323
3324 See ':h filename-modifiers' in Vim's documentation for the detailed de‐
3325 scription.
3326
3327 Using %x means expand corresponding macro escaping all characters that
3328 have special meaning. And %"x means using of double quotes and escape
3329 only backslash and double quote characters, which is more useful on
3330 Windows systems.
3331
3332 Position and quantity (if there is any) of %m, %M, %S or %s macros in
3333 the command is unimportant. All their occurrences are removed from the
3334 resulting command.
3335
3336 %c and %f macros are expanded to file names only, when %C and %F are
3337 expanded to full paths. %f and %F follow this in %b too.
3338
3339 :com move mv %f %D
3340 set the :move command to move all of the files selected in the
3341 current directory to the other directory.
3342
3343 The %a macro is replaced with any arguments given to an alias command.
3344 All arguments are considered optional.
3345 :com lsl !!ls -l %a - set the lsl command to execute ls -l with
3346 or without an argument.
3347
3348 :lsl<Enter>
3349 will list the directory contents of the current directory.
3350
3351 :lsl filename<Enter>
3352 will list only the given filename.
3353
3354 The macros can also be used in directly executing commands. ":!mv %f
3355 %D" would move the current directory selected files to the other direc‐
3356 tory.
3357
3358 Appending & to the end of a command causes it to be executed in the
3359 background. Typically you want to run two kinds of external commands
3360 in the background:
3361
3362 - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
3363
3364 - console tools that do not work with terminal (:!mv %f %D &).
3365
3366 You don't want to run terminal commands, which require terminal input
3367 or output something in background because they will mess up vifm's TUI.
3368 Anyway, if you did run such a command, you can use Ctrl-L key to update
3369 vifm's TUI.
3370
3371 Rewriting the example command with macros given above with background‐
3372 ing:
3373
3374 %m, %M, %s, %S, %u and %U macros cannot be combined with background
3375 mark (" &") as it doesn't make much sense.
3376
3378 Copy and move operation can take a lot of time to proceed. That's why
3379 vifm supports backgrounding of this two operations. To run :copy,
3380 :move or :delete command in the background just add " &" at the end of
3381 a command.
3382
3383 For each background operation a new thread is created. Job cancella‐
3384 tion can be requested in the :jobs menu via dd shortcut.
3385
3386 You can see if command is still running in the :jobs menu. Back‐
3387 grounded commands have progress instead of process id at the line be‐
3388 ginning.
3389
3390 Background operations cannot be undone.
3391
3393 Note that cancellation works somewhat different on Windows platform due
3394 to different mechanism of break signal propagation. One also might
3395 need to use Ctrl-Break shortcut instead of Ctrl-C.
3396
3397 There are two types of operations that can be cancelled:
3398
3399 - file system operations;
3400
3401 - mounting with FUSE (but not unmounting as it can cause loss of
3402 data);
3403
3404 - calls of external applications.
3405
3406 Note that vifm never terminates applications, it sends SIGINT signal
3407 and lets the application quit normally.
3408
3409 When one of set of operations is cancelled (e.g. copying of 5th file of
3410 10 files), further operations are cancelled too. In this case undo
3411 history will contain only actually performed operations.
3412
3413 Cancelled operations are indicated by "(cancelled)" suffix appended to
3414 information message on statusbar.
3415
3416 File system operations
3417
3418 Currently the following commands can be cancelled: :alink, :chmod,
3419 :chown, :clone, :copy, :delete, :mkdir, :move, :restore, :rlink,
3420 :touch. File putting (on p/P key) can be cancelled as well. It's not
3421 hard to see that these are mainly long-running operations.
3422
3423 Cancelling commands when they are repeated for undo/redo operations is
3424 allowed for convenience, but is not recommended as further undo/redo
3425 operations might get blocked by side-effects of partially cancelled
3426 group of operations.
3427
3428 These commands can't be cancelled: :empty, :rename, :substitute, :tr.
3429
3430 Mounting with FUSE
3431
3432 It's not considered to be an error, so only notification on the status
3433 bar is shown.
3434
3435 External application calls
3436
3437 Each of this operations can be cancelled: :apropos, :find, :grep, :lo‐
3438 cate.
3439
3441 If there is a selection, it's stashed before proceeding further unless
3442 file under the cursor is part of that selection. This means that when
3443 macros are expanded for :filetype or :filextype programs, `%f` and `%F`
3444 become equivalent to `%c` and `%C` respectively if current file is not
3445 selected. So you run selection by running one of selected files, oth‐
3446 erwise you're running a single file even if there are other selected
3447 entries.
3448
3449 When running a selection it must not include broken symbolic links, has
3450 to be consistent and set of file handlers must be compatible. Consis‐
3451 tency means that selection contains either only directories (including
3452 links to them) or only files, but not their mix.
3453
3454 Compatibility is a more sophisticated check, but it's defined in a nat‐
3455 ural way so that you get what you'd expect. The following properties
3456 of selection are taken into account while checking it for compatibility
3457 and deciding how to handle it:
3458
3459
3460 1. If there any files for which handler isn't defined, then all files
3461 are opened using 'vicmd' or 'vixcmd'.
3462
3463
3464 2. If all handlers match the following criteria:
3465 - backgrounded
3466 - include `%c` and/or `%C`
3467 - include neither `%f` nor `%F`
3468 then each file is executed independently of the rest.
3469
3470
3471 3. If all handlers are equal, the common handler is executed. This
3472 handler might ignore selection and process only file under the
3473 cursor.
3474
3475
3476 4. Otherwise, an error is reported, because handlers differ and they
3477 don't support parallel execution.
3478
3480 :highlight, :filetype, :filextype, :fileviewer commands and 'classify'
3481 option support globs, regular expressions and mime types to match file
3482 names or their paths.
3483
3484 There are six possible ways to write a single pattern:
3485
3486 1. [!]{comma-separated-name-globs}
3487
3488 2. [!]{{comma-separated-path-globs}}
3489
3490 3. [!]/name-regular-expression/[iI]
3491
3492 4. [!]//path-regular-expression//[iI]
3493
3494 5. [!]<comma-separated-mime-type-globs>
3495
3496 6. undecorated-pattern
3497
3498 First five forms can include leading exclamation mark that negates pat‐
3499 tern matching.
3500
3501 The last form is implicitly refers to one of others. :highlight does
3502 not accept undecorated form, while :filetype, :filextype, :fileviewer,
3503 :select, :unselect and 'classify' treat it as list of name globs.
3504
3505 Path patterns receive absolute path of the file that includes its name
3506 component as well.
3507
3508 To combine several patterns (AND them), make sure you're using one of
3509 the first five forms and write patterns one after another, like this:
3510 <text/plain>{*.vifm}
3511 Mind that if you make a mistake the whole string will be treated as the
3512 sixth form.
3513
3514 :filetype, :filextype and :fileviewer commands accept comma-separated
3515 list of patterns instead of a single pattern, thus effectively handling
3516 OR operation on them:
3517 <text/plain>{*.vifm},<application/pdf>{*.pdf}
3518 Forms that accept comma-separated lists of patterns also process them
3519 as lists of alternatives.
3520
3521 Patterns with regular expressions
3522
3523 Regular expression patterns are case insensitive by default, see de‐
3524 scription of commands, which might override default behaviour.
3525
3526 Flags of regular expressions mean the following:
3527 - "i" makes filter case insensitive;
3528 - "I" makes filter case sensitive. They can be repeated multiple
3529 times, but the later one takes precedence (e.g. "iiiI" is equivalent
3530 to "I" and "IiIi" is the same as "i").
3531
3532 There are no implicit `^` or `$`, so make sure to specify them explic‐
3533 itly if the pattern should match the whole name or path.
3534
3535 Patterns with globs
3536
3537 "Globs" section below provides short overview of globs and some impor‐
3538 tant points that one needs to know about them.
3539
3540 Patterns with mime-types
3541
3542 Mime type matching is essentially globs matching applied to mime type
3543 of a file instead of its name/path. Note: mime types aren't detected
3544 on Windows.
3545
3546 Examples
3547
3548 Associate `evince` to PDF-files only inside `/home/user/downloads/` di‐
3549 rectory (excluding its subdirectories):
3550
3551 :filextype //^/home/user/downloads/[^/]*.pdf$// evince %f
3552
3553
3555 Globs are always case insensitive as it makes sense in general case.
3556
3557 `*`, `?`, `[` and `]` are treated as special symbols in the pattern.
3558 E.g.
3559
3560 :filetype * less %c
3561
3562 matches all files. One can use character classes for escaping, so
3563
3564 :filetype [*] less %c
3565
3566 matches only one file name, the one which contains only asterisk sym‐
3567 bol.
3568
3569 `*` means any number of any characters (possibly an empty substring),
3570 with one exception: asterisk at the pattern beginning doesn't match dot
3571 in the first position. E.g.
3572
3573 :fileviewer *.zip,*.jar zip -sf %c
3574
3575 associates using of `zip` program to preview all files with `zip` or
3576 `jar` extensions as listing of their content, but `.file.zip` won't be
3577 matched.
3578
3579 `?` means any character at this position. E.g.
3580
3581 :fileviewer ?.out file %c
3582
3583 calls `file` tool for all files which have exactly one character before
3584 their extension (e.g. a.out, b.out).
3585
3586 Square brackets designate character class, which means that whole char‐
3587 acter class matches against any of characters listed in it. For exam‐
3588 ple
3589
3590 :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
3591
3592 makes vifm call `highlight` program to colorize source and header files
3593 in C language for a 256-color terminal. Equal command would be
3594
3595 :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
3596
3597
3598 Inside square brackets `^` or `!` can be used for symbol class negotia‐
3599 tion and the `-` symbol to set a range. `^` and `!` should appear
3600 right after the opening square bracket. For example
3601
3602 :filetype *.[!d]/ inspect_dir
3603
3604 associates `inspect_dir` as additional handler for all directories that
3605 have one character extension unless it's "d" letter. And
3606
3607 :filetype [0-9].jpg sxiv
3608
3609 associates `sxiv` picture viewer only for JPEG-files that contain sin‐
3610 gle digit in their name.
3611
3612 If you need to include literal comma, which is normally separates mul‐
3613 tiple globs, double it.
3614
3616 Local options
3617 These are kind of options that are local to a specific view. So
3618 you can set ascending sorting order for left pane and descending
3619 order for right pane.
3620
3621 In addition to being local to views, each such option also has
3622 two values:
3623
3624 - local to current directory (value associated with current
3625 location);
3626
3627 - global to current directory (value associated with the
3628 pane).
3629
3630 The idea is that current directory can be made a temporary ex‐
3631 ception to regular configuration of the view, until directory
3632 change. Use :setlocal for that. :setglobal changes view value
3633 not affecting settings until directory change. :set applies
3634 changes immediately to all values.
3635
3636
3637 'aproposprg'
3638 type: string
3639 default: "apropos %a"
3640 Specifies format for an external command to be invoked by the
3641 :apropos command. The format supports expanding of macros, spe‐
3642 cific for a particular *prg option, and %% sequence for insert‐
3643 ing percent sign literally. This option should include the %a
3644 macro to specify placement of arguments passed to the :apropos
3645 command. If the macro is not used, it will be implicitly added
3646 after a space to the value of this option.
3647
3648 'autochpos'
3649 type: boolean
3650 default: true
3651 When disabled vifm will set cursor to the first line in the view
3652 after :cd and :pushd commands instead of saved cursor position.
3653 Disabling this will also make vifm clear information about cur‐
3654 sor position in the view history on :cd and :pushd commands (and
3655 on startup if 'autochpos' is disabled in the vifmrc). l key in
3656 the ":history ." and ":trashes" menus are treated like :cd com‐
3657 mand. This option also affects marks so that navigating to a
3658 mark doesn't restore cursor position.
3659
3660 When this option is enabled, more fine grained control over cur‐
3661 sor position is available via 'histcursor' option.
3662
3663 'columns' 'co'
3664 type: integer
3665 default: terminal width on startup
3666 Terminal width in characters.
3667
3668 'caseoptions'
3669 type: charset
3670 default: ""
3671 This option gives additional control over case sensitivity by
3672 allowing overriding default behaviour to either always be case
3673 sensitive or always be case insensitive. Possible values form
3674 pairs of lower and upper case letters that configure specific
3675 aspect of behaviour:
3676 p - always ignore case of paths during completion.
3677 P - always match case of paths during completion.
3678 g - always ignore case of characters for f/F/;/,.
3679 G - always match case of characters for f/F/;/,.
3680
3681 At most one item of each pair takes affect, if both or more are
3682 present, only the last one matters. When none of pair's ele‐
3683 ments are present, the behaviour is default (depends on operat‐
3684 ing system for path completion and on values of 'ignorecase' and
3685 'smartcase' options for file navigation).
3686
3687 'cdpath' 'cd'
3688 type: string list
3689 default: value of $CDPATH with commas instead of colons
3690 Specifies locations to check on changing directory with relative
3691 path that doesn't start with "./" or "../". When non-empty,
3692 current directory is examined after directories listed in the
3693 option.
3694
3695 This option doesn't affect completion of :cd command.
3696
3697 Example:
3698
3699 set cdpath=~
3700
3701 This way ":cd bin" will switch to "~/bin" even if directory
3702 named "bin" exists in current directory, while ":cd ./bin" com‐
3703 mand will ignore value of 'cdpath'.
3704
3705 'chaselinks'
3706 type: boolean
3707 default: false
3708 When enabled path of view is always resolved to real path (with
3709 all symbolic links expanded).
3710
3711 'classify'
3712 type: string list
3713 default: ":dir:/"
3714 Specifies file name prefixes and suffixes depending on file type
3715 or name. The format is either of:
3716 - [{prefix}]:{filetype}:[{suffix}]
3717 - [{prefix}]::{pattern}::[{suffix}]
3718 Possible {pattern} forms are described in "Patterns" section
3719 above.
3720
3721 Priority rules:
3722 - file name patterns have priority over type patterns
3723 - file name patterns are matched in left-to-right order of
3724 their appearance in this option
3725
3726 Either {prefix} or {suffix} or both can be omitted (which is the
3727 default for all unspecified file types), this means empty {pre‐
3728 fix} and/or {suffix}. {prefix} and {suffix} should consist of
3729 at most eight characters. Elements are separated by commas.
3730 Neither prefixes nor suffixes are part of file names, so they
3731 don't affect commands which operate on file names in any way.
3732 Comma (',') character can be inserted by doubling it. List of
3733 file type names can be found in the description of filetype()
3734 function.
3735
3736 'confirm' 'cf'
3737 type: set
3738 default: delete,permdelete
3739 Defines which operations require confirmation:
3740 - delete - moving files to trash (on d or :delete);
3741 - permdelete - permanent deletion of files (on D or :delete!
3742 command or on undo/redo operation).
3743
3744 'cpoptions' 'cpo'
3745 type: charset
3746 default: "fst"
3747 Contains a sequence of single-character flags. Each flag en‐
3748 ables behaviour of older versions of vifm. Flags:
3749 - f - when included, running :filter command results in not in‐
3750 verted (matching files are filtered out) and :filter! in in‐
3751 verted (matching files are left) filter, when omitted, meaning
3752 of the exclamation mark changes to the opposite;
3753 - s - when included, yy, dd and DD normal mode commands act on
3754 selection, otherwise they operate on current file only;
3755 - t - when included, <tab> (thus <c-i>) behave as <space> and
3756 switches active pane, otherwise <tab> and <c-i> go forward in
3757 the view history. It's possible to make both <tab> and <c-i> to
3758 work as expected by setting up the terminal to emit a custom se‐
3759 quence when <c-i> is pressed; see :histnext for details.
3760
3761 'cvoptions'
3762 type: set
3763 default:
3764 Specifies whether entering/leaving custom views triggers events
3765 that normally happen on entering/leaving directories:
3766 - autocmds - trigger autocommands on entering/leaving custom
3767 views;
3768 - localopts - reset local options on entering/leaving custom
3769 views;
3770 - localfilter - reset local filter on entering/leaving custom
3771 views.
3772
3773 'deleteprg'
3774 type: string
3775 default: ""
3776 Specifies program to run on files that are permanently removed.
3777 When empty, files are removed as usual, otherwise this command
3778 is invoked on each file by appending its name. If the command
3779 doesn't remove files, they will remain on the file system.
3780
3781 'dirsize'
3782 type: enumeration
3783 default: size
3784 Controls how size of directories is displayed in file views.
3785 The following values are possible:
3786 - size - size of directory (i.e., size used to store list of
3787 files)
3788 - nitems - number of entries in the directory (excluding . and
3789 ..)
3790
3791 Size obtained via ga/gA overwrites this setting so seeing count
3792 of files and occasionally size of directories is possible.
3793
3794 'dotdirs'
3795 type: set
3796 default: nonrootparent,treeleafsparent
3797 Controls displaying of dot directories. The following values
3798 are possible:
3799 - rootparent - show "../" in root directory of file system
3800 - nonrootparent - show "../" in non-root directories of file
3801 system
3802 - treeleafsparent - show "../" in empty directories of tree
3803 view
3804
3805 Note that empty directories always contain "../" entry regard‐
3806 less of value of this option. "../" disappears at the moment at
3807 least one file is created.
3808
3809 'dotfiles'
3810 type: boolean
3811 default: false
3812 Whether dot files are shown in the view. Can be controlled with
3813 z* bindings.
3814
3815 'fastrun'
3816 type: boolean
3817 default: false
3818 With this option turned on you can run partially entered com‐
3819 mands with unambiguous beginning using :! (e.g. :!Te instead of
3820 :!Terminal or :!Te<tab>).
3821
3822 'fillchars' 'fcs'
3823 type: string list
3824 default: ""
3825 Sets characters used to fill borders.
3826
3827 item default used for
3828 vborder:c ' ' left, middle and right vertical bor‐
3829 ders
3830
3831 If value is omitted, its default value is used. Example:
3832
3833 set fillchars=vborder:.
3834
3835 'findprg'
3836 type: string
3837 default: "find %s %a -print , -type d \( ! -readable -o ! -exe‐
3838 cutable \) -prune"
3839 Specifies format for an external command to be invoked by the
3840 :find command. The format supports expansion of macros specific
3841 for this particular option and %% sequence for inserting percent
3842 sign literally. The macros are:
3843
3844 macro value/meaning
3845 %s literal arguments of :find or
3846 list of paths to search in
3847
3848 %A empty or
3849 literal arguments of :find
3850 %a empty or
3851 literal arguments of :find or
3852 predicate followed by escaped arguments of :find
3853 %p empty or
3854 literal arguments of :find or
3855 escaped arguments (parameters) of :find
3856
3857 %u redirect output to custom view instead of showing a
3858 menu
3859 %U redirect output to unsorted custom view instead of
3860 showing a menu
3861
3862 Predicate in %a is "-name" on *nix and "-iname" on Windows.
3863
3864 If both %u and %U are specified, %U is chosen.
3865
3866 Some macros can be added implicitly:
3867 - if %s isn't present, it's appended
3868 - if neither of %a, %A and %p is present, %a is appended
3869 - if neither of %s, %a, %A and %p is present, %s and %a are ap‐
3870 pended in this order
3871
3872 The macros slightly change their meaning depending on format of
3873 :find's arguments:
3874 - if the first argument points to an existing directory, %s is
3875 assigned all arguments while %a, %A and %p are left empty
3876 - otherwise:
3877 - %s is assigned a dot (".") meaning current directory or
3878 list of selected file names, if any
3879 - %a, %A and %p are assigned literal arguments when first
3880 argument starts with a dash ("-"), otherwise %a gets an escaped
3881 version of the arguments with a predicate and %p contains es‐
3882 caped version of the arguments
3883
3884 Starting with Windows Server 2003 a `where` command is avail‐
3885 able. One can configure vifm to use it in the following way:
3886
3887 set findprg="where /R %s %A"
3888
3889 As the syntax of this command is rather limited, one can't use
3890 :find command with selection of more than one item because the
3891 command ignores all directory paths except for the last one.
3892
3893 When using find port on Windows, another option is to setup
3894 'findprg' like this:
3895
3896 set findprg="find %s %a"
3897
3898
3899 'followlinks'
3900 type: boolean
3901 default: true
3902 Follow links on l or Enter. That is navigate to destination
3903 file instead of treating the link as if it were target file.
3904 Doesn't affects links to directories, which are always entered
3905 (use gf key for directories).
3906
3907 'fusehome'
3908 type: string
3909 default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/"
3910 Directory to be used as a root dir for FUSE mounts. Value of
3911 the option can contain environment variables (in form "$en‐
3912 vname"), which will be expanded (prepend it with a slash to pre‐
3913 vent expansion). The value should expand to an absolute path.
3914
3915 If you change this option, vifm won't remount anything. It af‐
3916 fects future mounts only. See "Automatic FUSE mounts" section
3917 below for more information.
3918
3919 'gdefault' 'gd'
3920 type: boolean
3921 default: false
3922 When on, 'g' flag is on for :substitute by default.
3923
3924 'grepprg'
3925 type: string
3926 default: "grep -n -H -I -r %i %a %s"
3927 Specifies format for an external command to be invoked by the
3928 :grep command. The format supports expanding of macros, spe‐
3929 cific for a particular *prg option, and %% sequence for insert‐
3930 ing percent sign literally. This option should include the %i
3931 macro to specify placement of "-v" string when inversion of re‐
3932 sults is requested, %a or %A macro to specify placement of argu‐
3933 ments passed to the :grep command and the %s macro to specify
3934 placement of list of files to search in. If some of the macros
3935 are not used, they will be implicitly added after a space to the
3936 value of the 'grepprg' option in the following order: %i, %a,
3937 %s. Note that when neither %a nor %A are specified, it's %a
3938 which is added implicitly.
3939
3940 Optional %u or %U macro could be used (if both specified %U is
3941 chosen) to force redirection to custom or unsorted custom view
3942 respectively.
3943
3944 See 'findprg' option for description of difference between %a
3945 and %A.
3946
3947 Example of setup to use ack (http://beyondgrep.com/) instead of
3948 grep:
3949
3950 set grepprg='ack -H -r %i %a %s'
3951
3952 or The Silver Searcher (https://github.com/ggreer/the_sil‐
3953 ver_searcher):
3954
3955 set grepprg='ag --line-numbers %i %a %s'
3956
3957
3958
3959 'histcursor'
3960 type: set
3961 default: startup,dirmark,direnter
3962 Defines situations when cursor should be moved according to di‐
3963 rectory history:
3964 - startup - on loading file lists during startup
3965 - dirmark - after navigating to a mark that doesn't specify
3966 file
3967 - direnter - on opening directory from a file list
3968
3969 This option has no effect when 'autochpos' is disabled.
3970
3971 Note that the list is not exhaustive and there are other situa‐
3972 tions when cursor is positioned automatically.
3973
3974 'history' 'hi'
3975 type: integer
3976 default: 15
3977 Maximum number of stored items in all histories.
3978
3979 'hlsearch' 'hls'
3980 type: boolean
3981 default: true
3982 Automatically select files that are search matches.
3983
3984 'iec' type: boolean
3985 default: false
3986 Use KiB, MiB, ... suffixes instead of K, M, ... when printing
3987 size in human-friendly format.
3988
3989 'ignorecase' 'ic'
3990 type: boolean
3991 default: false
3992 Ignore case in search patterns (:substitute, / and ? commands),
3993 local filter (but not the rest of filters) and other things de‐
3994 tailed in the description of 'caseoptions'.
3995
3996 'incsearch' 'is'
3997 type: boolean
3998 default: false
3999 When this option is set, search and view update for local filter
4000 is be performed starting from initial cursor position each time
4001 search pattern is changed.
4002
4003 'iooptions'
4004 type: set
4005 default:
4006 Controls details of file operations. The following values are
4007 available:
4008 - fastfilecloning - perform fast file cloning (copy-on-write),
4009 when available
4010 (available on Linux and btrfs file system).
4011
4012 'laststatus' 'ls'
4013 type: boolean
4014 default: true
4015 Controls if status bar is visible.
4016
4017 'lines'
4018 type: integer
4019 default: terminal height on startup
4020 Terminal height in lines.
4021
4022 'locateprg'
4023 type: string
4024 default: "locate %a"
4025 Specifies format for an external command to be invoked by the
4026 :locate command. The format supports expanding of macros, spe‐
4027 cific for a particular *prg option, and %% sequence for insert‐
4028 ing percent sign literally. This option should include the %a
4029 macro to specify placement of arguments passed to the :locate
4030 command. If the macro is not used, it will be implicitly added
4031 after a space to the value of this option.
4032
4033 Optional %u or %U macro could be used (if both specified %U is
4034 chosen) to force redirection to custom or unsorted custom view
4035 respectively.
4036
4037 'mediaprg'
4038 type: string
4039 default: path to bundled script that supports udevil, udisks and
4040 udisks2
4041 (using udisks2 requires python with dbus module in‐
4042 stalled)
4043 OS X: path points to a python script that uses diskutil
4044 {only for *nix}
4045 Specifies command to be used to manage media devices. Used by
4046 :media command.
4047
4048 The command can be passed the following parameters:
4049 - list -- list media
4050 - mount {device} -- mount a device
4051 - unmount {path} -- unmount given mount point
4052
4053 The output of `list` subcommand is parsed in search of lines
4054 that start with one of the following prefixes:
4055 - device= - specifies device path (e.g., "/dev/sde")
4056 - label= - specifies optional device label (e.g., "Memory
4057 card")
4058 - info= - specifies arbitrary text to display next to
4059 device (by
4060 default "[label]" is used, if label is pro‐
4061 vided)
4062 - mount-point= - specifies a mount point (can be absent or ap‐
4063 pear more than once)
4064
4065 All other lines are ignored. Each `device=` starts a new sec‐
4066 tion describing a device which should include two other possible
4067 prefixes.
4068
4069 `list` subcommand is assumed to always succeed, while exit code
4070 of `mount` and `unmount` is taken into account to determine
4071 whether operation was performed successfully.
4072
4073 'lsoptions'
4074 type: string list
4075 default: ""
4076 scope: local
4077
4078 Configures ls-like view.
4079
4080 item used for
4081 transposed filling view grid by columns rather than by
4082 lines
4083
4084
4085 'lsview'
4086 type: boolean
4087 default: false
4088 scope: local
4089 When this option is set, directory view will be displayed in
4090 multiple columns with file names similar to output of `ls -x`
4091 command. See "ls-like view" section below for format descrip‐
4092 tion. This option has no effect if 'millerview' is on.
4093
4094 'milleroptions'
4095 type: string list
4096 default: "lsize:1,csize:1,rsize:1,rpreview:dirs"
4097 scope: local
4098
4099 Configures miller view.
4100
4101 item default used for
4102 lsize:num 0 left column
4103 csize:num 1 center column (can't be disabled)
4104 rsize:num 0 right column
4105 rpreview:str dirs right column
4106
4107 *size specifies ratios of columns. Each ratio is in the range
4108 from 0 to 100 and values are adjusted to fit the limits. Zero
4109 disables a column, but central (main) column can't be disabled.
4110
4111 rpreview specifies what file-system objects should be previewed
4112 in the right column and can take two values: dirs (only directo‐
4113 ries) or all. Both options don't include parent directory
4114 ("..").
4115
4116 Example of two-column mode which is useful in combination with
4117 :view command:
4118
4119 set milleroptions=lsize:1,csize:2
4120
4121
4122 'millerview'
4123 type: boolean
4124 default: false
4125 scope: local
4126 When this option is set, directory view will be displayed in
4127 multiple cascading columns. Ignores 'lsview'.
4128
4129 'mintimeoutlen'
4130 type: integer
4131 default: 150
4132 The fracture of 'timeoutlen' in milliseconds that is waited be‐
4133 tween subsequent input polls, which affects various asynchronous
4134 operations (detecting changes made by external applications,
4135 monitoring background jobs, redrawing UI). There are no strict
4136 guarantees, however the higher this value is, the less is CPU
4137 load in idle mode.
4138
4139 'number' 'nu'
4140 type: boolean
4141 default: false
4142 scope: local
4143 Print line number in front of each file name when 'lsview' op‐
4144 tion is turned off. Use 'numberwidth' to control width of line
4145 number. Also see 'relativenumber'.
4146
4147 'numberwidth' 'nuw'
4148 type: integer
4149 default: 4
4150 scope: local
4151 Minimal number of characters for line number field.
4152
4153 'previewoptions'
4154 type: string list
4155 default: "graphicsdelay:50000"
4156
4157 Tweaks how previewing is done (in quick view, miller view's col‐
4158 umn and view mode).
4159
4160 item default meaning
4161 graphicsdelay:num 0 delay before drawing graphics (mi‐
4162 croseconds)
4163 hardgraphicsclear unset redraw screen to get rid of graph‐
4164 ics
4165 toptreestats unset show file counts before the tree
4166
4167 graphicsdelay is needed if terminal requires some timeout before
4168 it can draw graphics (otherwise it gets lost).
4169
4170 hardgraphicsclear seems to be necessary to get rid of sixel
4171 graphics in some terminals, where it otherwise lingers. This
4172 can cause flicker on the screen due to erasure followed by re‐
4173 drawing.
4174
4175 'previewprg'
4176 type: string
4177 default: ""
4178 scope: local
4179
4180 External command to be used instead of preview programs config‐
4181 ured via :fileviewer command.
4182
4183 Example:
4184
4185 " always show git log in preview of files inside some repository
4186 au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1'
4187
4188 'quickview'
4189 type: boolean
4190 default: false
4191 Whether quick view (:view) is currently active or not.
4192
4193 'relativenumber' 'rnu'
4194 type: boolean
4195 default: false
4196 scope: local
4197 Print relative line number in front of each file name when
4198 'lsview' option is turned off. Use 'numberwidth' to control
4199 width of line number. Various combinations of 'number' and
4200 'relativenumber' lead to such results:
4201
4202 nonumber number
4203
4204 norelativenumber | first | 1 first
4205 | second | 2 second
4206 | third | 3 third
4207
4208 relativenumber | 1 first | 1 first
4209 | 0 second |2 second
4210 | 1 third | 1 third
4211
4212
4213 'rulerformat' 'ruf'
4214 type: string
4215 default: "%l/%S "
4216 Determines the content of the ruler. Its minimal width is 13
4217 characters and it's right aligned. Following macros are sup‐
4218 ported:
4219 %= - separation point between left and right aligned halves of
4220 the line
4221 %l - file number
4222 %L - total number of files in view (including filtered out
4223 ones)
4224 %x - number of files excluded by filters
4225 %0- - old name for %x macro
4226 %P - percentage through file list (All, Top, xx% or Bot), al‐
4227 ways 3 in length
4228 %S - number of displayed files
4229 %= - separation point between left and right align items
4230 %% - literal percent sign
4231 %[ - designates beginning of an optional block
4232 %] - designates end of an optional block
4233
4234 Percent sign can be followed by optional minimum field width.
4235 Add '-' before minimum field width if you want field to be right
4236 aligned.
4237
4238 Optional blocks are ignored unless at least one macro inside of
4239 them is expanded to a non-empty value.
4240
4241 Example:
4242
4243 set rulerformat='%2l-%S%[ +%x%]'
4244
4245 'runexec'
4246 type: boolean
4247 default: false
4248 Run executable file on Enter, l or Right Arrow key. Behaviour
4249 of the last two depends on the value of the 'lsview' option.
4250
4251 'scrollbind' 'scb'
4252 type: boolean
4253 default: false
4254 When this option is set, vifm will try to keep difference of
4255 scrolling positions of two windows constant.
4256
4257 'scrolloff' 'so'
4258 type: integer
4259 default: 0
4260 Minimal number of screen lines to keep above and below the cur‐
4261 sor. If you want cursor line to always be in the middle of the
4262 view (except at the beginning or end of the file list), set this
4263 option to some large value (e.g. 999).
4264
4265 'sessionoptions' 'ssop'
4266 sessionoptions ssop
4267 type: set
4268 default: tui,state,tabs,savedirs,dhistory
4269 An equivalent of 'vifminfo' for sessions, uses the same values.
4270 When both options include the same value, data from session file
4271 has higher priority (data from vifminfo isn't necessarily com‐
4272 pletely discarded, instead it's merged with the state of a ses‐
4273 sion the same way state of multiple instances is merged on
4274 exit).
4275
4276 'shell' 'sh'
4277 type: string
4278 default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows)
4279 Full path to the shell to use to run external commands. On *nix
4280 a shell argument can be supplied.
4281
4282 'shellcmdflag' 'shcf'
4283 type: string
4284 default: "-c" or "/C" (for cmd.exe on MS-Windows)
4285 Command-line option used to pass a command to 'shell'. It's
4286 used in contexts where command comes from the user.
4287
4288 Note that using this option to force interactive mode of the
4289 shell is most likely a BAD IDEA. In general interactive host
4290 and interactive child shell can't share the same terminal ses‐
4291 sion. You can't even run such a shell in background. Consider
4292 writing a wrapper for your shell that preloads aliases and com‐
4293 mands without making the shell interactive and ending up using
4294 it in a way it was not meant to be used.
4295
4296 Note that this option is ignored when 'shell' is set to Power‐
4297 Shell due to the internal use of `-encodedCommand`.
4298
4299 'shortmess' 'shm'
4300 type: charset
4301 default: "p"
4302 Contains a sequence of single-character flags. Each flag en‐
4303 ables shortening of some message displayed by vifm in the TUI.
4304 Flags:
4305 - L - display only last directory in tab line instead of full
4306 path.
4307 - M - shorten titles in windows of terminal multiplexers cre‐
4308 ated by vifm down to file name instead of using full path.
4309 - T - truncate status-bar messages in the middle if they are
4310 too long to fit on the command line. "..." will appear in the
4311 middle.
4312 - p - use tilde shortening in view titles.
4313
4314
4315 'showtabline' 'stal'
4316 type: enumeration
4317 default: multiple
4318 Specifies when tab line should be displayed. Possible values:
4319 - never - never display tab line
4320 - multiple - show tab line only when there are at least two
4321 tabs
4322 - always - display tab line always
4323
4324 Alternatively 0, 1 and 2 Vim-like values are also accepted and
4325 correspond to "never", "multiple" and "always" respectively.
4326
4327
4328 'sizefmt'
4329 type: string list
4330 default: "units:iec"
4331 Configures the way size is formatted in human-friendly way.
4332
4333 item value meaning
4334 units: iec Use 1024 byte units (K or KiB,
4335 etc.).
4336 See 'iec' option.
4337 si Use 1000 byte units (KB, etc.).
4338 precision: i > 0 How many fraction digits to con‐
4339 sider.
4340 {not set} Precision of 1 for integer part
4341 < 10,
4342 0 otherwise (provides old behav‐
4343 iour).
4344 space {present} Insert space before unit sym‐
4345 bols.
4346 This is the default.
4347 nospace {present} Do not insert space before unit
4348 symbols.
4349
4350 Numbers are rounded from zero. Trailing zeros are dropped.
4351
4352 Example:
4353
4354 set sizefmt=units:iec,precision:2,nospace
4355
4356
4357 'slowfs'
4358 type: string list
4359 default: ""
4360 only for *nix
4361 A list of mounter fs name beginnings (first column in /etc/mtab
4362 or /proc/mounts) or paths prefixes for fs/directories that work
4363 too slow for you. This option can be used to stop vifm from
4364 making some requests to particular kinds of file systems that
4365 can slow down file browsing. Currently this means don't check
4366 if directory has changed, skip check if target of symbolic links
4367 exists, assume that link target located on slow fs to be a di‐
4368 rectory (allows entering directories and navigating to files via
4369 gf). If you set the option to "*", it means all the systems are
4370 considered slow (useful for cygwin, where all the checks might
4371 render vifm very slow if there are network mounts).
4372
4373 Example for autofs root /mnt/autofs:
4374
4375 set slowfs+=/mnt/autofs
4376
4377 'smartcase' 'scs'
4378 type: boolean
4379 default: false
4380 Overrides the ignorecase option if a pattern contains at least
4381 one upper case character. Only used when 'ignorecase' option is
4382 enabled.
4383
4384 'sort' type: string list
4385 default: +name on *nix and +iname on Windows
4386 scope: local
4387 Sets list of sorting keys (first item is primary key, second is
4388 secondary key, etc.):
4389 [+-]ext - extension of files and directories
4390 [+-]fileext - extension of files only
4391 [+-]name - name (including extension)
4392 [+-]iname - name (including extension, ignores case)
4393 [+-]type - file type
4394 (dir/reg/exe/link/char/block/sock/fifo)
4395 [+-]dir - directory grouping (directory < file)
4396 [+-]gid - group id (*nix only)
4397 [+-]gname - group name (*nix only)
4398 [+-]mode - file type derived from its mode (*nix only)
4399 [+-]perms - permissions string (*nix only)
4400 [+-]uid - owner id (*nix only)
4401 [+-]uname - owner name (*nix only)
4402 [+-]nlinks - number of hard links (*nix only)
4403 [+-]inode - inode number (*nix only)
4404 [+-]size - size
4405 [+-]nitems - number of items in a directory (zero for files)
4406 [+-]groups - groups extracted via regexps from 'sortgroups'
4407 [+-]target - symbolic link target (empty for other file
4408 types)
4409 [+-]atime - time accessed (e.g., read, executed)
4410 [+-]ctime - time changed (changes in metadata, like mode)
4411 [+-]mtime - time modified (when file contents is changed)
4412
4413 Note: look for st_atime, st_ctime and st_mtime in "man 2 stat"
4414 for more information on time keys.
4415
4416 '+' means ascending sort for this key, and '-' means descending
4417 sort.
4418
4419 "dir" key is somewhat similar in this regard but it's added im‐
4420 plicitly: when "dir" is not specified, sorting behaves as if it
4421 was the first key in the list. That's why if one wants sorting
4422 algorithm to mix directories and files, "dir" should be appended
4423 to sorting option, for example like this:
4424
4425 set sort+=dir
4426
4427 or
4428
4429 set sort=-size,dir
4430
4431 Value of the option is checked to include dir key and default
4432 sorting key (name on *nix, iname on Windows). Here is what hap‐
4433 pens if one of them is missing:
4434
4435 - type key is added at the beginning;
4436
4437 - default key is added at the end;
4438
4439 all other keys are left untouched (at most they are moved).
4440
4441 This option also changes view columns according to primary sort‐
4442 ing key set, unless 'viewcolumns' option is not empty.
4443
4444 'sortnumbers'
4445 type: boolean
4446 default: false
4447 scope: local
4448 Natural sort of (version) numbers within text.
4449
4450 'sortgroups'
4451 type: string
4452 default: ""
4453 scope: local
4454 Sets comma-separated list of regular expressions for group type
4455 of sorting. Double the comma to insert it literally.
4456
4457 The regular expressions are used to extract substrings of file
4458 names to serve as keys for sorting. It is essentially a way to
4459 ignore uninteresting parts of file names during sorting by name.
4460
4461 Each expression should contain at least one group or its value
4462 will be considered to be always empty. Also, only the first
4463 match of regular expression is processed.
4464
4465 The first group divides list of files into sub-groups, each of
4466 which is then sorted by substrings extracted using second regu‐
4467 lar expression and so on recursively.
4468
4469 Example:
4470 set sortgroups=-(todo|done).*
4471 this would group files with "-done" in their names and files
4472 with "-todo" separately. On ascending sorting, group containing
4473 "-done" would appear before the other one.
4474
4475 'sortorder'
4476 type: enumeration
4477 default: ascending
4478 Sets sort order for primary key: ascending, descending.
4479
4480 'statusline' 'stl'
4481 type: string
4482 default: ""
4483 Determines the content of the status line (the line right above
4484 command-line). Empty string means use same format like in pre‐
4485 vious versions. Following macros are supported:
4486
4487 - %N - line break (increases height of the status line accord‐
4488 ingly), ignores %[ %] blocks
4489
4490 - %t - file name (considering value of the 'classify' option)
4491
4492 - %T - symbolic link target (empty for other filetypes)
4493
4494 - %f - file name relative to current directory (considers 'clas‐
4495 sify')
4496
4497 - %A - file attributes (permissions on *nix or properties on
4498 Windows)
4499
4500 - %u - user name or uid (if it cannot be resolved)
4501
4502 - %g - group name or gid (if it cannot be resolved)
4503
4504 - %s - file size in human readable format
4505
4506 - %E - size of selected files in human readable format, same as
4507 %s when no files are selected, except that it will never show
4508 size of ../ in visual mode, since it cannot be selected
4509
4510 - %d - file modification date (uses 'timefmt' option)
4511
4512 - %D - path of the other pane for single-pane layout
4513
4514 - %a - amount of free space available on current FS
4515
4516 - %c - size of current FS
4517
4518 - %z - short tips/tricks/hints that chosen randomly after one
4519 minute period
4520
4521 - %{<expr>} - evaluate arbitrary vifm expression '<expr>', e.g.
4522 '&sort'
4523
4524 - %* - resets or applies one of User1..User9 highlight groups;
4525 reset happens when width field is 0 or not specified, one of
4526 groups gets picked when width field is in the range from 1 to
4527 9
4528
4529 - all 'rulerformat' macros
4530
4531 Percent sign can be followed by optional minimum field width.
4532 Add '-' before minimum field width if you want field to be right
4533 aligned.
4534
4535 On Windows file properties include the following flags (upper
4536 case means flag is on):
4537 A - archive
4538 H - hidden
4539 I - content isn't indexed
4540 R - readonly
4541 S - system
4542 C - compressed
4543 D - directory
4544 E - encrypted
4545 P - reparse point (e.g. symbolic link)
4546 Z - sparse file
4547
4548 Example without colors:
4549
4550 set statusline=" %t%= %A %10u:%-7g %15s %20d %{&sort} "
4551
4552 Example with colors:
4553
4554 highlight User1 ctermbg=yellow
4555 highlight User2 ctermbg=blue ctermfg=white cterm=bold
4556 set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d "
4557
4558
4559 'suggestoptions'
4560 type: string list
4561 default:
4562 Controls when, for what and how suggestions are displayed. The
4563 following values are available:
4564 - normal - in normal mode;
4565 - visual - in visual mode;
4566 - view - in view mode;
4567 - otherpane - use other pane to display suggestions, when
4568 available;
4569 - delay[:num] - display suggestions after a small delay (to
4570 do not annoy if you just want to type a fast shortcut consisting
4571 of multiple keys), num specifies the delay in ms (500 by de‐
4572 fault), 'timeoutlen' at most;
4573 - keys - include shortcuts (commands and selectors);
4574 - foldsubkeys - fold multiple keys with common prefix;
4575 - marks - include marks;
4576 - registers[:num] - include registers, at most num files (5 by
4577 default).
4578
4579 'syncregs'
4580 type: string
4581 default:
4582 Specifies identifier of group of instances that share registers
4583 between each other. When several instances of vifm have this
4584 option set to identical value, they automatically synchronize
4585 contents of their registers on operations which use them.
4586
4587 'syscalls'
4588 type: boolean
4589 default: false
4590 When disabled, vifm will rely on external applications to per‐
4591 form file-system operations, otherwise system calls are used in‐
4592 stead (much faster and supports progress tracking). The option
4593 should eventually be removed. Mostly *nix-like systems are af‐
4594 fected.
4595
4596 'tablabel'
4597 type: string
4598 default: ""
4599 When non-empty, determines format of the main part of a single
4600 tab's label.
4601
4602 When empty, tab label is set to either tab name for named tabs
4603 or to view title (usually current path) for unnamed tabs.
4604
4605 The following macros can appear in the format (see below for
4606 what a flag is):
4607
4608 - %C - flag of a current tab
4609
4610 - %N - number of the tab
4611
4612 - %T - flag of a tree mode
4613
4614 - %c - description of a custom view
4615
4616 - %n - name of the tab
4617
4618 - %p - path of the view (handles filename modifiers)
4619
4620 - %t - title of the view (affected by 'shortmess' flags)
4621
4622 - %% - literal percent sign
4623
4624 - %[ - designates beginning of an optional block
4625
4626 - %] - designates end of an optional block
4627
4628 - %*, %0* - resets highlighting
4629
4630 - %1-%9 - applies one of User1..User9 highlight groups
4631
4632 In global tabs the view in bullets above refers to currently ac‐
4633 tive view of that tab.
4634
4635 Flag macros are a special kind of macros that always expand to
4636 an empty value and are ment to be used inside optional blocks to
4637 control their visibility.
4638
4639 Optional blocks are ignored unless at least one macro inside of
4640 them is expanded to a non-empty value or is a set flag macro.
4641
4642 " %[(%n)%] -- optional name of the tab
4643 " %[ -- optional description of the view
4644 " %[%T{tree}%] -- mark of tree mode
4645 " %[{%c}%] -- description of custom view
4646 " @ -- just an extra separator before the path
4647 ' %]
4648 " %p:t -- tail part of view's location
4649 set tablabel=%[(%n)%]%[%[%T{tree}%]%[{%c}%]@%]%p:t
4650
4651 'tabprefix'
4652 type: string
4653 default: "[%N:"
4654 Determines prefix of a tab's label. Formatting is done as for
4655 'tablabel' option.
4656
4657 'tabscope'
4658 type: enumeration
4659 default: global
4660 Picks style of tabs, which defines what a single tab contains.
4661 Possible values:
4662 - global - tab describes complete UI of two views and how they
4663 are arranged
4664 - pane - tab is located "inside" a pane and manages it and
4665 quick view
4666
4667 'tabstop' 'ts'
4668 type: integer
4669 default: value from curses library
4670 Number of spaces that a Tab in the file counts for.
4671
4672 'tabsuffix'
4673 type: string
4674 default: "]"
4675 Determines suffix of a tab's label. Formatting is done as for
4676 'tablabel' option.
4677
4678 'timefmt'
4679 type: string
4680 default: "%m/%d %H:%M"
4681 Format of time in file list. See "man 1 date" or "man 3 strf‐
4682 time" for details.
4683
4684 'timeoutlen' 'tm'
4685 type: integer
4686 default: 1000
4687 The time in milliseconds that is waited for a mapped key in case
4688 of already typed key sequence is ambiguous.
4689
4690 'title'
4691 type: boolean
4692 default: true when title can be restored, false otherwise
4693 When enabled, title of the terminal or terminal multiplexer's
4694 window is updated according to current location. Because not
4695 all terminals support setting title, this works only if `$TERM`
4696 value matches one of the following conditions:
4697 - equals "xterm" or starts with "xterm-"
4698 - equals "rxvt" or starts with "rxvt-"
4699 - equals "screen" or starts with "screen-"
4700 - equals "aterm"
4701 - equals "Eterm"
4702
4703 'trash'
4704 type: boolean
4705 default: true
4706 Use trash directory. See "Trash directory" section below.
4707
4708 'trashdir'
4709 type: string
4710 default: on *nix:
4711 "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
4712 or if $VIFM/Trash doesn't exist
4713 "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
4714 on Windows:
4715 "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
4716 List of trash directory path specifications, separated with com‐
4717 mas. Each list item either defines an absolute path to trash
4718 directory or a path relative to a mount point root when list el‐
4719 ement starts with "%r/". Value of the option can contain envi‐
4720 ronment variables (of form "$envname"), which will be expanded
4721 (prepend $ with a slash to prevent expansion). Environment
4722 variables are expanded when the option is set.
4723
4724 On *nix, if element ends with "%u", the mark is replaced with
4725 real user ID and permissions are set so that only that only
4726 owner is able to use it.
4727 Note that even this setup is not completely secure when combined
4728 with "%r/" and it's overall safer to keep files in home direc‐
4729 tory, but that implies cost of copying files between partitions.
4730
4731 When new file gets cut (deleted) vifm traverses each element of
4732 the option in the order of their appearance and uses first trash
4733 directory that it was able to create or that is already
4734 writable.
4735
4736 Default value tries to use trash directory per mount point and
4737 falls back to ~/.vifm/Trash on failure.
4738
4739 Will attempt to create the directory if it does not exist. See
4740 "Trash directory" section below.
4741
4742 'tuioptions' 'to'
4743 type: charset
4744 default: "psv"
4745 Each flag configures some aspect of TUI appearance. The flags
4746 are:
4747 p - when included:
4748 * file list inside a pane gets additional single character
4749 padding on left and right sides;
4750 * quick view and view mode get single character padding.
4751 s - when included, left and right borders (side borders, hence
4752 "s" character) are visible.
4753 u - use Unicode characters in the TUI (Unicode ellipsis instead
4754 of "...").
4755 v - vary width of middle border to equalize view sizes.
4756
4757 Each pane title contains the path of the listed directory. If
4758 too large, the path is truncated on the left for the active pane
4759 and on the right for the other pane. This can be modified with:
4760
4761 l - truncation is always on the left.
4762 r - truncation is always on the right.
4763
4764 'undolevels' 'ul'
4765 type: integer
4766 default: 100
4767 Maximum number of changes that can be undone. Note that here
4768 single file operation is used as a unit, not operation, i.e.
4769 deletion of 101 files will exceed default limit.
4770
4771 'vicmd'
4772 type: string
4773 default: "vim"
4774 Command used to edit files in various contexts. Ampersand sign
4775 at the end (regardless whether it's preceded by space or not)
4776 means backgrounding of command.
4777
4778 Background flag is ignored in certain context where vifm waits
4779 for the editor to finish. Such contexts include any command
4780 that spawns editor to change list of file names or a command,
4781 with :rename being one example. `-f` is also appended to pre‐
4782 vent forking in such cases, so the command needs to handle the
4783 flag.
4784
4785 Additionally `+{num}` and `+'call cursor()'` arguments are used
4786 to position cursor when location is known.
4787
4788 'viewcolumns'
4789 type: string
4790 default: ""
4791 scope: local
4792 Format string containing list of columns in the view. When this
4793 option is empty, view columns to show are chosen automatically
4794 using sorting keys (see 'sort') as a base. Value of this option
4795 is ignored if 'lsview' is set. See "Column view" section below
4796 for format description.
4797
4798 An example of setting the options for both panes (note :windo
4799 command):
4800
4801 windo set viewcolumns=-{name}..,6{size},11{perms}
4802
4803 'vixcmd'
4804 type: string
4805 default: value of 'vicmd'
4806 Same as 'vicmd', but takes precedence over it when running in‐
4807 side a graphical environment.
4808
4809 'vifminfo'
4810 type: set
4811 default: bookmarks,bmarks
4812 Controls what will be saved in the $VIFM/vifminfo file.
4813
4814 bmarks - named bookmarks (see :bmark command)
4815 bookmarks - marks, except special ones like '< and '>
4816 tui - state of the user interface (sorting, number of
4817 windows, quick
4818 view state, active view)
4819 dhistory - directory history
4820 state - file name and dot filters and terminal multiplex‐
4821 ers integration
4822 state
4823 cs - primary color scheme
4824 savedirs - save last visited directory
4825 chistory - command line history
4826 shistory - search history (/ and ? commands)
4827 phistory - prompt history
4828 fhistory - history of local filter (see description of the
4829 "=" normal mode
4830 command)
4831 dirstack - directory stack overwrites previous stack, unless
4832 stack of
4833 current instance is empty
4834 registers - registers content
4835 tabs - global or pane tabs
4836 options - all options that can be set with the :set command
4837 (obsolete)
4838 filetypes - associated programs and viewers (obsolete)
4839 commands - user defined commands (see :command description)
4840 (obsolete)
4841
4842 'vimhelp'
4843 type: boolean
4844 default: false
4845 Use vim help format.
4846
4847 'wildmenu' 'wmnu'
4848 type: boolean
4849 default: false
4850 Controls whether possible matches of completion will be shown
4851 above the command line.
4852
4853 'wildstyle'
4854 type: enumeration
4855 default: bar
4856 Picks presentation style of wild menu. Possible values:
4857 - bar - one-line with left-to-right cursor
4858 - popup - multi-line with top-to-bottom cursor
4859
4860 'wordchars'
4861 type: string list
4862 default: "1-8,14-31,33-255" (that is all non-whitespace charac‐
4863 ters)
4864 Specifies which characters in command-line mode should be con‐
4865 sidered as part of a word. Value of the option is comma-sepa‐
4866 rated list of ranges. If both endpoints of a range match, sin‐
4867 gle endpoint is enough (e.g. "a" = "a-a"). Both endpoints are
4868 inclusive. There are two accepted forms: character representing
4869 itself or number encoding character according to ASCII table.
4870 In case of ambiguous characters (dash, comma, digit) use numeric
4871 form. Accepted characters are in the range from 0 to 255. Any
4872 Unicode character with code greater than 255 is considered to be
4873 part of a word.
4874
4875 The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W. This
4876 is intentionally to allow two use cases:
4877
4878 - Moving by WORDS and deletion by words.
4879 - Moving by words and deletion by WORDS.
4880
4881 To get the latter use the following mapping:
4882
4883 cnoremap <c-w> <a-b><a-d>
4884
4885 Also used for abbreviations.
4886
4887 'wrap' type: boolean
4888 default: true
4889 Controls whether to wrap text in quick view.
4890
4891 'wrapscan' 'ws'
4892 type: boolean
4893 default: true
4894 Searches wrap around end of the list.
4895
4897 Map arguments
4898
4899 LHS of mappings can be preceded by arguments which take the form of
4900 special sequences:
4901
4902 <silent>
4903 Postpone UI updates until RHS is completely processed.
4904
4905 <wait> In case of builtin mapping causing conflict for a user-defined
4906 mapping (e.g., `t` builtin to a partially typed `ta` user-de‐
4907 fined mapping), ignore the builtin mapping and wait for input
4908 indefinitely as opposed to default behaviour of triggering the
4909 builtin mapping after a delay defined by 'timeoutlen'. Example:
4910
4911 nnoremap <wait> tw :set wrap!<cr>
4912 nnoremap <wait> tn :set number!<cr>
4913 nnoremap <wait> tr :set relativenumber!<cr>
4914
4915 Special sequences
4916
4917 Since it's not easy to enter special characters there are several spe‐
4918 cial sequences that can be used in place of them. They are:
4919
4920 <cr> Enter key.
4921
4922 <esc> Escape key.
4923
4924 <space>
4925 Space key.
4926
4927 <lt> Less-than character (<).
4928
4929 <nop> provides a way to disable a mapping (by mapping it to <nop>).
4930
4931 <bs> Backspace key (see key conflict description below).
4932
4933 <tab> <s-tab>
4934 Tabulation and Shift+Tabulation keys.
4935
4936 <home> <end>
4937 Home/End.
4938
4939 <left> <right> <up> <down>
4940 Arrow keys.
4941
4942 <pageup> <pagedown>
4943 PageUp/PageDown.
4944
4945 <del> <delete>
4946 Delete key. <del> and <delete> mean different codes, but
4947 <delete> is more common.
4948
4949 <insert>
4950 Insert key.
4951
4952 <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
4953 Control + some key (see key conflict description below).
4954
4955 <c-@> only for *nix
4956 Control + Space.
4957
4958 <a-a>,<a-b>,...,<a-z>
4959 <m-a>,<m-b>,...,<m-z> Alt + some key.
4960
4961 <a-c-a>,<a-c-b>,...,<a-c-z>
4962 <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
4963 Alt + Ctrl + some key.
4964
4965 <f0> - <f63>
4966 Functional keys.
4967
4968 <c-f1> - <c-f12>
4969 only for MS-Windows
4970 functional keys with Control key pressed.
4971
4972 <a-f1> - <a-f12>
4973 only for MS-Windows
4974 functional keys with Alt key pressed.
4975
4976 <s-f1> - <s-f12>
4977 only for MS-Windows
4978 functional keys with Shift key pressed.
4979
4980 Note that due to the way terminals process their input, several key‐
4981 board keys might be mapped to single key code, for example:
4982
4983 - <cr> and <c-m>;
4984
4985 - <tab> and <c-i>;
4986
4987 - <c-h> and <bs>;
4988
4989 - etc.
4990
4991 Most of the time they are defined consistently and don't cause sur‐
4992 prises, but <c-h> and <bs> are treated differently in different envi‐
4993 ronments (although they match each other all the time), that's why they
4994 correspond to different keys in vifm. As a consequence, if you map <c-
4995 h> or <bs> be sure to repeat the mapping with the other one so that it
4996 works in all environments. Alternatively, provide your mapping in one
4997 form and add one of the following:
4998
4999 " if mappings with <c-h> in the LHS work
5000 map <c-h> <bs>
5001 " if mappings with <bs> in the LHS work
5002 map <bs> <c-h>
5003
5004 Whitespace
5005
5006 vifm removes whitespace characters at the beginning and end of com‐
5007 mands. That's why you may want to use <space> at the end of rhs in
5008 mappings. For example:
5009
5010 cmap <f1> man<space>
5011
5012 will put "man " in line when you hit the <f1> key in the command line
5013 mode.
5014
5016 Supported expressions is a subset of what VimL provides.
5017
5018 Expression syntax summary, from least to most significant:
5019
5020 expr1 expr2
5021 expr2 || expr2 .. logical OR
5022
5023 expr2 expr3
5024 expr3 && expr3 .. logical AND
5025
5026 expr3 expr4
5027 expr4 == expr4 equal
5028 expr4 != expr4 not equal
5029 expr4 > expr4 greater than
5030 expr4 >= expr4 greater than or equal
5031 expr4 < expr4 smaller than
5032 expr4 <= expr4 smaller than or equal
5033
5034 expr4 expr5
5035 expr5 + expr5 .. number addition
5036 expr5 - expr5 .. number subtraction
5037
5038 expr5 expr6
5039 expr6 . expr6 .. string concatenation
5040
5041 expr6 expr7
5042 - expr6 unary minus
5043 + expr6 unary plus
5044 ! expr6 logical NOT
5045
5046 expr7 number number constant
5047 "string" string constant, \ is special
5048 'string' string constant, ' is doubled
5049 &option option value
5050 $VAR environment variable
5051 v:var builtin variable
5052 function(expr1, ...) function call
5053 (expr1) nested expression
5054
5055 ".." indicates that the operations in this level can be concatenated.
5056
5057 expr1
5058 -----
5059 expr2 || expr2
5060
5061 Arguments are converted to numbers before evaluation.
5062
5063 Result is non-zero if at least one of arguments is non-zero.
5064
5065 It's right associative and with short-circuiting, so sub-expressions
5066 are evaluated from left to right until result of whole expression is
5067 determined (i.e., until first non-zero) or end of the expression.
5068
5069 expr2
5070 -----
5071 expr3 && expr3
5072
5073 Arguments are converted to numbers before evaluation.
5074
5075 Result is non-zero only if both arguments are non-zero.
5076
5077 It's right associative and with short-circuiting, so sub-expressions
5078 are evaluated from left to right until result of whole expression is
5079 determined (i.e., until first zero) or end of the expression.
5080
5081 expr3
5082 -----
5083 expr4 {cmp} expr4
5084
5085 Compare two expr4 expressions, resulting in a 0 if it evaluates to
5086 false or 1 if it evaluates to true.
5087
5088 equal ==
5089 not equal !=
5090 greater than >
5091 greater than or equal >=
5092 smaller than <
5093 smaller than or equal <=
5094
5095 Examples:
5096
5097 'a' == 'a' == 1
5098 'a' > 'b' == 1
5099 'a' == 'b' == 0
5100 '2' > 'b' == 0
5101 2 > 'b' == 1
5102 2 > '1b' == 1
5103 2 > '9b' == 0
5104 -1 == -'1' == 1
5105 0 == '--1' == 1
5106
5107 expr4
5108 -----
5109 expr5 + expr5 .. number addition expr5 - expr5 .. number sub‐
5110 traction
5111
5112 Examples:
5113
5114 1 + 3 - 3 == 1
5115 1 + '2' == 3
5116
5117 expr5
5118 -----
5119 expr6 . expr6 .. string concatenation
5120
5121 Examples:
5122
5123 'a' . 'b' == 'ab'
5124 'aaa' . '' . 'c' == 'aaac'
5125
5126 expr6
5127 -----
5128
5129 - expr6 unary minus
5130 + expr6 unary plus
5131 ! expr6 logical NOT
5132
5133 For '-' the sign of the number is changed.
5134 For '+' the number is unchanged.
5135 For '!' non-zero becomes zero, zero becomes one.
5136
5137 A String will be converted to a Number first.
5138
5139 These operations can be repeated and mixed. Examples:
5140
5141 --9 == 9
5142 ---9 == -9
5143 -+9 == 9
5144 !-9 == 0
5145 !'' == 1
5146 !'x' == 0
5147 !!9 == 1
5148
5149 expr7
5150 -----
5151
5152 number number constant
5153 -----
5154
5155 Decimal number. Examples:
5156
5157 0 == 0
5158 0000 == 0
5159 01 == 1
5160 123 == 123
5161 10000 == 10000
5162
5163 string
5164 ------
5165 "string" string constant
5166
5167 Note that double quotes are used.
5168
5169 A string constant accepts these special characters:
5170 \b backspace <bs>
5171 \e escape <esc>
5172 \n newline
5173 \r return <cr>
5174 \t tab <tab>
5175 \\ backslash
5176 \" double quote
5177
5178 Examples:
5179
5180 "\"Hello,\tWorld!\""
5181 "Hi,\nthere!"
5182
5183 literal-string
5184 --------------
5185 'string' string constant
5186
5187 Note that single quotes are used.
5188
5189 This string is taken as it is. No backslashes are removed or have a
5190 special meaning. The only exception is that two quotes stand for one
5191 quote.
5192
5193 Examples:
5194
5195 'All\slashes\are\saved.'
5196 'This string contains doubled single quotes ''here'''
5197
5198 option
5199 ------
5200 &option option value (local one is preferred, if exists)
5201 &g:option global option value &l:option local
5202 option value
5203
5204 Examples:
5205
5206 echo 'Terminal size: '.&columns.'x'.&lines
5207 if &columns > 100
5208
5209 Any valid option name can be used here (note that "all" in ":set all"
5210 is a pseudo option). See ":set options" section above.
5211
5212 environment variable
5213 --------------------
5214 $VAR environment variable
5215
5216 The String value of any environment variable. When it is not defined,
5217 the result is an empty string.
5218
5219 Examples:
5220
5221 'This is my $PATH env: ' . $PATH
5222 'vifmrc at ' . $MYVIFMRC . ' is used.'
5223
5224 builtin variable
5225 --------------------
5226 v:var builtin variable
5227
5228 Information exposed by vifm for use in scripting.
5229
5230 v:count
5231 count passed to : command, 0 by default. Can be used in mappings to
5232 passthe count to a different command.
5233 v:count1
5234 same as v:count, but 1 by default.
5235 v:jobcount
5236 number of active jobs (as can be seen in the :jobs menu).
5237 v:session
5238 name of the current session or empty string.
5239 v:servername
5240 See below.
5241
5242 function call
5243 -------------
5244 function(expr1, ...) function call
5245
5246 See "Functions" section below.
5247
5248 Examples:
5249
5250 "'" . filetype('.') . "'"
5251 filetype('.') == 'reg'
5252
5253 expression nesting
5254 ------------------
5255 (expr1) nested expression
5256
5257 Groups any other expression of arbitrary complexity enforcing order in
5258 which operators are applied.
5259
5260
5262 USAGE RESULT DESCRIPTION
5263
5264 chooseopt({opt}) String Queries choose parameters passed on
5265 startup.
5266 executable({expr}) Integer Checks whether {expr} command avail‐
5267 able.
5268 expand({expr}) String Expands special keywords in {expr}.
5269 extcached({cache}, {path}, {extcmd})
5270 String Caches output of {extcmd} per {cache}
5271 and
5272 {path} combination.
5273 filetype({fnum} [, {resolve}])
5274 String Returns file type from position.
5275 fnameescape({expr}) String Escapes {expr} for use in a :command.
5276 getpanetype() String Returns type of current pane.
5277 has({property}) Integer Checks whether instance has {prop‐
5278 erty}.
5279 layoutis({type}) Integer Checks whether layout is of type
5280 {type}.
5281 paneisat({loc}) Integer Checks whether current pane is at
5282 {loc}.
5283 system({command}) String Executes shell command and returns
5284 its output.
5285 tabpagenr([{arg}]) Integer Returns number of current or last
5286 tab.
5287 term({command}) String Like system(), but for interactive
5288 commands.
5289
5290 chooseopt({opt})
5291
5292 Retrieves values of options related to file choosing. {opt} can be one
5293 of:
5294 files returns argument of --choose-files or empty string
5295 dir returns argument of --choose-dir or empty string
5296 cmd returns argument of --on-choose or empty string
5297 delimiter returns argument of --delimiter or the default one (\n)
5298
5299 executable({expr})
5300
5301 If {expr} is absolute or relative path, checks whether path destination
5302 exists and refers to an executable, otherwise checks whether command
5303 named {expr} is present in directories listed in $PATH. Checks for
5304 various executable extensions on Windows. Returns boolean value de‐
5305 scribing result of the check.
5306
5307 Example:
5308
5309 " use custom default viewer script if it's available and installed
5310 " in predefined system directory, otherwise try to find it elsewhere
5311 if executable('/usr/local/bin/defviewer')
5312 fileview * /usr/local/bin/defviewer %c
5313 else
5314 if executable('defviewer')
5315 fileview * defviewer %c
5316 endif
5317 endif
5318
5319 expand({expr})
5320
5321 Expands environment variables and macros in {expr} just like it's done
5322 for command-line commands. Returns a string. See "Command macros"
5323 section above.
5324
5325 Examples:
5326
5327 " percent sign
5328 :echo expand('%%')
5329 " the last part of directory name of the other pane
5330 :echo expand('%D:t')
5331 " $PATH environment variable (same as `:echo $PATH`)
5332 :echo expand('$PATH')
5333
5334 extcached({cache}, {path}, {extcmd})
5335
5336 Caches value of {extcmd} external command automatically updating it as
5337 necessary based on monitoring change date of a {path}. The cache is
5338 invalidated when file or its meta-data is updated. A single path can
5339 have multiple caches associated with it.
5340
5341 {path} value is normalized, but symbolic links in it aren't resolved.
5342
5343 Example:
5344
5345 " display number and size of blocks actually used by a file or directory
5346 set statusline+=" Uses: %{ extcached('uses',
5347 expand('%c'),
5348 expand('stat --format=%%bx%%B %c')) }"
5349
5350 filetype({fnum} [, {resolve}])
5351
5352 The result is a string, which represents file type and is one of the
5353 list:
5354 exe executables
5355 reg regular files
5356 link symbolic links
5357 broken broken symbolic links (appears only when resolving)
5358 dir directories
5359 char character devices
5360 block block devices
5361 fifo pipes
5362 sock *nix domain sockets
5363 ? unknown file type (should not normally happen) or
5364 non-file (pseudo-entries in compare view)
5365
5366 The result can also be an empty string in case of invalid argument.
5367
5368 Parameter {fnum} can have following values:
5369 - '.' to get type of file under the cursor in the active pane
5370 - numerical value base 1 to get type of file on specified line num‐
5371 ber
5372
5373 Optional parameter {resolve} is treated as a boolean and specifies
5374 whether symbolic links should be resolved.
5375
5376 fnameescape({expr})
5377
5378 Escapes parameter to make it suitable for use as an argument of a :com‐
5379 mand. List of escaped characters includes %, which is doubled.
5380
5381 Usage example:
5382
5383 " navigate to most recently modified file in current directory
5384 execute 'goto' fnameescape(system('ls -t | head -1'))
5385
5386 getpanetype()
5387
5388 Retrieves string describing type of current pane. Possible return val‐
5389 ues:
5390 regular regular file listing of some directory
5391 custom custom file list (%u)
5392 very-custom very custom file list (%U)
5393 tree tree view
5394
5395 has({property})
5396
5397 Allows examining internal parameters from scripts to e.g. figure out
5398 environment in which application is running. Returns 1 if property is
5399 true/present, otherwise 0 is returned. Currently the following proper‐
5400 ties are supported (anything else will yield 0):
5401 unix runs in *nix-like environment (including Cygwin)
5402 win runs on Windows
5403
5404 Usage example:
5405
5406 " skip user/group on Windows
5407 if !has('win')
5408 let $RIGHTS = '%10u:%-7g '
5409 endif
5410
5411 execute 'set' 'statusline=" %t%= %A '.$RIGHTS.'%15E %20d "'
5412
5413 layoutis({type})
5414
5415 Checks whether current interface layout is {type} or not, where {type}
5416 can be:
5417 only single-pane mode
5418 split double-pane mode (either vertical or horizontal split)
5419 vsplit vertical split (left and right panes)
5420 hsplit horizontal split (top and bottom panes)
5421
5422 Usage example:
5423
5424 " automatically split vertically before enabling preview
5425 :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
5426
5427 paneisat({loc})
5428
5429 Checks whether position of active pane in current layout matches one of
5430 the following locations:
5431 top pane reaches top border
5432 bottom pane reaches bottom border
5433 left pane reaches left border
5434 right pane reaches right border
5435
5436 system({command})
5437
5438 Runs the command in shell and returns its output (joined standard out‐
5439 put and standard error streams). All trailing newline characters are
5440 stripped to allow easy appending to command output. Ctrl-C should in‐
5441 terrupt the command.
5442
5443 Use this function to consume output of external commands that don't re‐
5444 quire user interaction and term() for interactive commands that make
5445 use of terminal and are capable of handling stream redirection.
5446
5447 Usage example:
5448
5449 " command to enter .git/ directory of git-repository (when ran inside one)
5450 command! cdgit :execute 'cd' fnameescape(system('git rev-parse --git-dir'))
5451
5452 tabpagenr([{arg}])
5453
5454 When called without arguments returns number of current tab page base
5455 one.
5456
5457 When called with "$" as an argument returns number of the last tab page
5458 base one, which is the same as number of tabs.
5459
5460 term({command})
5461
5462 Same as system() function, but user interface is shutdown during the
5463 execution of the command, which makes sure that external interactive
5464 applications won't affect the way terminal is used by vifm.
5465
5466 Usage example:
5467
5468 " command to change directory by picking it via fzf
5469 command! fzfcd :execute 'cd'
5470 fnameescape(term('find -type d | fzf 2> /dev/tty'))
5471
5473 When navigating to some path from a menu there is a difference in end
5474 location depending on whether path has trailing slash or not. Files
5475 normally don't have trailing slashes so "file/" won't work and one can
5476 only navigate to a file anyway. On the other hand with directories
5477 there are two options: navigate to a directory or inside of it. To al‐
5478 low both use cases, the first one is used on paths like "dir" and the
5479 second one for "dir/".
5480
5481 Commands
5482
5483 :range navigate to a menu line.
5484
5485 :exi[t][!] :q[uit][!] :x[it][!]
5486 leave menu mode.
5487
5488 :noh[lsearch]
5489 reset search match highlighting.
5490
5491 :w[rite] {dest}
5492 write all menu lines into file specified by {dest}.
5493
5494 General
5495
5496 j, Ctrl-N - move down.
5497 k, Ctrl-P - move up.
5498 Enter, l - select and exit the menu.
5499 Ctrl-L - redraw the menu.
5500
5501 Escape, Ctrl-C, ZZ, ZQ, q - quit.
5502
5503 In all menus
5504
5505 The following set of keys has the same meaning as in normal mode.
5506
5507 Ctrl-B, Ctrl-F
5508 Ctrl-D, Ctrl-U
5509 Ctrl-E, Ctrl-Y
5510 /, ?
5511 n, N
5512 [count]G, [count]gg
5513 H, M, L
5514 zb, zt, zz
5515
5516 zh - scroll menu items [count] characters to the right.
5517 zl - scroll menu items [count] characters to the left.
5518 zH - scroll menu items half of screen width characters to the right.
5519 zL - scroll menu items half of screen width characters to the left.
5520
5521 : - enter command line mode for menus (currently only :exi[t], :q[uit],
5522 :x[it] and :{range} are supported).
5523
5524 b - interpret content of the menu as list of paths and use it to create
5525 custom view in place of previously active pane. See "Custom views"
5526 section below.
5527 B - same as above, but creates unsorted view.
5528
5529 v - load menu content into quickfix list of the editor (Vim compatible
5530 by assumption) or if list doesn't have separators after file names
5531 (colons) open each line as a file name.
5532
5533
5534 Below is description of additional commands and reaction on selection
5535 in some menus and dialogs.
5536
5537 Apropos menu
5538
5539 Selecting menu item runs man on a given topic. Menu won't be closed
5540 automatically to allow view several pages one by one.
5541
5542 Command-line mode abbreviations menu
5543
5544 Type dd on an abbreviation to remove it.
5545
5546 c leaves menu preserving file selection and inserts right-hand side of
5547 selected command into command-line.
5548
5549 Color scheme menu
5550
5551 Selecting name of a color scheme applies it the same way as if ":col‐
5552 orscheme <name>" was executed on the command-line.
5553
5554 Commands menu
5555
5556 Selecting command executes it with empty arguments (%a).
5557
5558 dd on a command to remove.
5559
5560 Marks menu
5561
5562 Selecting mark navigates to it.
5563
5564 dd on a mark to remove it.
5565
5566 Bookmarks menu
5567
5568 Selecting a bookmark navigates to it.
5569
5570 Type dd on a bookmark to remove it.
5571
5572 gf and e also work to make it more convenient to bookmark files.
5573
5574 Trash (:lstrash) menu
5575
5576 r on a file name to restore it from trash.
5577
5578 dd deletes file under the cursor.
5579
5580 Trashes (:trashes) menu
5581
5582 dd empties selected trash in background.
5583
5584 Directory history and Trashes menus
5585
5586 Selecting directory name will change directory of the current view as
5587 if :cd command was used.
5588
5589 Directory stack menu
5590
5591 Selecting directory name will rotate stack to put selected directory
5592 pair at the top of the stack.
5593
5594 File (:file) menu
5595
5596 Commands from vifmrc or typed in command-line are displayed above empty
5597 line. All commands below empty line are from .desktop files.
5598
5599 c leaves menu preserving file selection and inserts command after :! in
5600 command-line mode.
5601
5602 Grep, find, locate, bookmarks and user menu with navigation (%M macro)
5603
5604 gf - navigate previously active view to currently selected item.
5605 Leaves menu mode except for grep menu. Pressing Enter key has the same
5606 effect.
5607
5608 e - open selected path in the editor, stays in menu mode.
5609
5610 c - leave menu preserving file selection and insert file name after :!
5611 in command-line mode.
5612
5613 User menu without navigation (%m macro)
5614
5615 c leaves menu preserving file selection and inserts whole line after :!
5616 in command-line mode.
5617
5618 Grep menu
5619
5620 Selecting file (via Enter or l key) opens it in editor set by 'vicmd'
5621 at given line number. Menu won't be closed automatically to allow
5622 viewing more than one result.
5623
5624 See above for "gf" and "e" keys description.
5625
5626 Command-line history menu
5627
5628 Selecting an item executes it as command-line command, search query or
5629 local filter.
5630
5631 c leaves menu preserving file selection and inserts line into command-
5632 line of appropriate kind.
5633
5634 Volumes menu
5635
5636 Selecting a drive navigates previously active pane to the root of that
5637 drive.
5638
5639 Fileinfo dialog
5640
5641 Enter, q - close dialog
5642
5643 Sort dialog
5644
5645 h, Space - switch ascending/descending.
5646 q - close dialog
5647
5648 One shortcut per sorting key (see the dialog).
5649
5650 Attributes (permissions or properties) dialog
5651
5652 h, Space - check/uncheck.
5653 q - close dialog
5654 r - (*nix only) (un)set all read bits
5655 w - (*nix only) (un)set all write bits
5656 x - (*nix only) (un)set all execute bits
5657 s - (*nix only) (un)set all special (SetUID, SetGID, Sticky) bits
5658 e - (*nix only) (un)set recursion (for directories only)
5659
5660 Item states:
5661
5662 - * - checked flag.
5663
5664 - X - means that it has different value for files in selection.
5665
5666 - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X
5667 argument for the chmod program. If you're not on OS X and want to
5668 remove execute permission bit from all files, but preserve it for di‐
5669 rectories, set all execute flags to 'd' and check 'Set Recursively'
5670 flag.
5671
5672 Jobs menu
5673
5674 dd requests cancellation of job under cursor. The job won't be removed
5675 from the list, but marked as being cancelled (if cancellation was suc‐
5676 cessfully requested). A message will pop up if the job has already
5677 stopped. Note that on Windows cancelling external programs like this
5678 might not work, because their parent shell doesn't have any windows.
5679
5680 e key displays errors of selected job if any were collected. They are
5681 displayed in a new menu, but you can get back to jobs menu by pressing
5682 h.
5683
5684
5685 Undolist menu
5686
5687 r - reset undo position to group under the cursor.
5688
5689
5690 Media menu
5691
5692 Selecting a device either mounts (if it wasn't mounted yet) or navi‐
5693 gates to its first mount point.
5694
5695 Selecting a mount point navigates to it.
5696
5697 Selecting "not mounted" line causes mounting.
5698
5699 Selecting any other line does nothing.
5700
5701 r - reload the list.
5702
5703 m - mount/unmount device (cursor should be positioned on lines under
5704 device information).
5705
5706 [ - put cursor on the previous device.
5707
5708 ] - put cursor on the next device.
5709
5710
5711 Plugins menu
5712
5713 e - display log messages of selected plugin if any were collected.
5714 They are displayed in a new menu, but you can get back to plugins menu
5715 by pressing h.
5716
5717 gf - navigate previously active view to the location of selected
5718 plugin. Leaves menu mode.
5719
5720
5722 Definition
5723
5724 Normally file views contain list of files from a single directory, but
5725 sometimes it's useful to populate them with list of files that do not
5726 belong to the same directory, which is what custom views are for.
5727
5728 Presentation
5729
5730 Custom views are still related to directory they were in before custom
5731 list was loaded. Path to that directory (original directory) can be
5732 seen in the title of a custom view.
5733
5734 Files in same directory have to be named differently, this doesn't hold
5735 for custom views thus seeing just file names might be rather confusing.
5736 In order to give an idea where files come from and when possible, rela‐
5737 tive paths to original directory of the view is displayed, otherwise
5738 full path is used instead.
5739
5740 Custom views normally don't contain any inexistent files.
5741
5742 Navigation
5743
5744 Custom views have some differences related to navigation in regular
5745 views.
5746
5747 gf - acts similar to gf on symbolic links and navigates to the file at
5748 its real
5749 location.
5750
5751 h - go to closes parent node in tree view, otherwise return to the
5752 original directory.
5753
5754 gh - return to the original directory.
5755
5756 Opening ".." entry also causes return to the original directory.
5757
5758 History
5759
5760 Custom list exists only while it's visible, once left one can't return
5761 to it, so there is no appearances of it in any history.
5762
5763 Filters
5764
5765 Only local filter affects content of the view. This is intentional,
5766 presumably if one loads list, precisely that list should be displayed
5767 (except for inexistent paths, which are ignored).
5768
5769 Search
5770
5771 Although directory names are visible in listing, they are not search‐
5772 able. Only file names are taken into account (might be changed in fu‐
5773 ture, searching whole lines seems quite reasonable).
5774
5775 Sorting
5776
5777 Contrary to search sorting by name works on whole visible part of file
5778 path.
5779
5780 Highlight
5781
5782 Whole file name is highlighted as one entity, even if there are direc‐
5783 tory elements.
5784
5785 Updates
5786
5787 Reloads can occur, though they are not automatic due to files being
5788 scattered among different places. On a reload, inexistent files are
5789 removed and meta-data of all other files is updated.
5790
5791 Once custom view forgets about the file, it won't add it back even if
5792 it's created again. So not seeing file previously affected by an oper‐
5793 ation, which was undone is normal.
5794
5795 Operations
5796
5797 All operations that add files are forbidden for custom views. For ex‐
5798 ample, moving/copying/putting files into a custom view doesn't work,
5799 because it doesn't make much sense.
5800
5801 On the other hand, operations that use files of a custom view as a
5802 source (e.g. yanking, copying, moving file from custom view, deletion)
5803 and operations that modify names are all allowed.
5804
5806 Kinds
5807
5808 :compare can produce four different results depending on arguments:
5809 - single compare view (ofone and either listall or listdups);
5810 - single custom view (ofone and listunique);
5811 - two compare views (ofboth and either listall or listdups);
5812 - two custom views (ofboth and listunique).
5813
5814 The first two display files of one file system tree. Here duplicates
5815 are files that have at least one copy in the same tree. The other two
5816 kinds of operation compare two trees, in which duplicates are files
5817 that are found in both trees.
5818
5819 Lists of unique files are presented in custom views because there is no
5820 file grouping to preserve as all file ids are guaranteed to be dis‐
5821 tinct.
5822
5823 Creation
5824
5825 Arguments passed to :compare form four categories each with its own
5826 prefix and is responsible for particular property of operation.
5827
5828 Which files to compare:
5829 - ofboth - compares files of two panes against each other;
5830 - ofone - compares files of the same directory.
5831
5832 How files are compared:
5833 - byname - by their name only;
5834 - bysize - only by their size;
5835 - bycontents - by data they contain (combination of size and hash of
5836 small chunk of contents is used as first approximation, so don't worry
5837 too much about large files).
5838
5839 Which files to display:
5840 - listall - all files;
5841 - listunique - unique files only;
5842 - listdups - only duplicated files.
5843
5844 How results are grouped (has no effect if "ofone" specified):
5845 - groupids - files considered identical are always adjacent in out‐
5846 put;
5847 - grouppaths - file system ordering is preferred (this also enables
5848 displaying identically named files as mismatches).
5849
5850 Which files to omit:
5851 - skipempty - ignore empty files.
5852
5853 Each argument can appear multiple times, the rightmost one of the group
5854 is considered. Arguments alter default behaviour instead of substitut‐
5855 ing it.
5856
5857 Examples
5858
5859 The defaults corresponds to probably the most common use case of com‐
5860 paring files in two trees with grouping by paths, so the following are
5861 equivalent:
5862
5863 :compare
5864 :compare bycontents grouppaths
5865 :compare bycontents listall ofboth grouppaths
5866
5867 Another use case is to find duplicates in the current sub-tree:
5868
5869 :compare listdups ofone
5870
5871 The following command lists files that are unique to each pane:
5872
5873 :compare listunique
5874
5875 Look
5876
5877 The view can't switch to ls-like view as it's unable to display diff-
5878 like data.
5879
5880 Comparison views have second column displaying id of the file, files
5881 with same id are considered to be equal. The view columns configura‐
5882 tion is predefined.
5883
5884 Behaviour
5885
5886 When two views are being compared against each other the following
5887 changes to the regular behaviour apply:
5888 - views are scrolled synchronously (as if 'scrollbind' was set);
5889 - views' cursors are synchronized;
5890 - local filtering is disabled (its results wouldn't be meaningful);
5891 - zd excludes groups of adjacent identical files, 1zd gives usual be‐
5892 haviour;
5893 - sorting is permanently disabled (ordering is fixed);
5894 - removed files hide their counter pairs;
5895 - exiting one of the views terminates the other immediately;
5896 - renaming files isn't blocked, but isn't taken into account and might
5897 require regeneration of comparison;
5898 - entries which indicate absence of equivalent file have empty names
5899 and can be matched as such;
5900 - when unique files of both views are listed custom views can be
5901 empty, this absence of unique files is stated clearly.
5902
5903 One compare view has similar properties (those that are applicable for
5904 single pane).
5905
5906 Files are gathered in this way:
5907 - recursively starting at current location of the view;
5908 - dot files are excluded if view hides them at the moment of compari‐
5909 son, file name filters are obeyed as well so you end up comparing what
5910 you see;
5911 - directories are not taken into account;
5912 - symbolic links to directories are ignored.
5913
5915 On startup vifm determines several variables that are used during exe‐
5916 cution. They are determined in the order they appear below.
5917
5918 On *nix systems $HOME is normally present and used as is. On Windows
5919 systems vifm tries to find correct home directory in the following or‐
5920 der:
5921 - $HOME variable;
5922 - $USERPROFILE variable (on Windows only);
5923 - a combination of $HOMEDRIVE and $HOMEPATH variables (on Windows
5924 only).
5925
5926 vifm tries to find correct configuration directory by checking the fol‐
5927 lowing places:
5928 - $VIFM variable;
5929 - parent directory of the executable file (on Windows only);
5930 - $HOME/.vifm directory;
5931 - $APPDATA/Vifm directory (on Windows only);
5932 - $XDG_CONFIG_HOME/vifm directory;
5933 - $HOME/.config/vifm directory.
5934
5935 vifm tries to find correct configuration file by checking the following
5936 places:
5937 - $MYVIFMRC variable;
5938 - vifmrc in parent directory of the executable file (on Windows only);
5939 - $VIFM/vifmrc file.
5940
5942 See "Startup" section above for the explanations on $VIFM and $MYV‐
5943 IFMRC.
5944
5945 The vifmrc file contains commands that will be executed on vifm
5946 startup. There are two such files: global and local. Global one is at
5947 {prefix}/etc/vifm/vifmrc, see $MYVIFMRC variable description for the
5948 search algorithm used to find local vifmrc. Global vifmrc is loaded
5949 before the local one, so that the later one can redefine anything con‐
5950 figured globally.
5951
5952 Use vifmrc to set settings, mappings, filetypes etc. To use multi line
5953 commands precede each next line with a slash (whitespace before slash
5954 is ignored, but all spaces at the end of the lines are saved). For ex‐
5955 ample:
5956
5957 set
5958 \smartcase
5959
5960 equals "setsmartcase". When
5961
5962 set<space here>
5963 \ smartcase
5964
5965 equals "set smartcase".
5966
5967 The $VIFM/vifminfo file contains generic state of the application. You
5968 can control what is stored in vifminfo by setting 'vifminfo' option.
5969 Vifm always writes this file on exit unless 'vifminfo' option is empty.
5970 Marks, bookmarks, commands, histories, filetypes, fileviewers and reg‐
5971 isters in the file are merged with vifm configuration (which has bigger
5972 priority).
5973
5974 Generally, runtime configuration has bigger priority during merging,
5975 but there are some exceptions:
5976
5977 - directory stack stored in the file is not overwritten unless some‐
5978 thing is changed in vifm instance that performs merge;
5979
5980 - each mark or bookmark is marked with a timestamp, so that newer
5981 value is not overwritten by older one, thus no matter from where it
5982 comes, the newer one wins;
5983
5984 - all histories are marked with timestamps on storing, this means
5985 that last instance to quit puts its elements on top of the list;
5986
5987 - tabs are merged only if both current instance and stored state con‐
5988 tain exactly one tab of any kind.
5989
5990 The $VIFM/scripts directory can contain shell scripts. vifm modifies
5991 its PATH environment variable to let user run those scripts without
5992 specifying full path. All subdirectories of the $VIFM/scripts will be
5993 added to PATH too. Script in a subdirectory overlaps script with the
5994 same name in all its parent directories.
5995
5996 The $VIFM/colors/ and {prefix}/etc/vifm/colors/ directories contain
5997 color schemes. Available color schemes are searched in that order, so
5998 on name conflict the one in $VIFM/colors/ wins.
5999
6000 Each color scheme should have ".vifm" extension. This wasn't the case
6001 before and for this reason the following rules apply during lookup:
6002
6003 - if there is no file with .vifm extension, all regular files are
6004 listed;
6005
6006 - otherwise only files with .vifm extension are listed (with the ex‐
6007 tension being truncated).
6008
6010 Sessions provide a way to have multiple persistent runtime configura‐
6011 tions. Think of them as second-level vifminfo files in addition to the
6012 first-level one used by all sessions. In other words, they aren't a
6013 replacement for vifminfo file that exists without sessions, but an ad‐
6014 dition to it. One can empty 'vifminfo' option and rely solely on ses‐
6015 sions, but in practice one might want to share some state among in‐
6016 stances in different sessions or have an "out-of-sessions" state for
6017 tasks that don't deserve a session of their own.
6018
6019 This leads to a two-level structure where data in session files has
6020 higher priority than data in vifminfo files (where this makes sense)
6021 following the same rules that merging of vifminfo file obeys. In addi‐
6022 tion to that, history items from session files are never ordered before
6023 history items from vifminfo file.
6024
6025 Format
6026
6027 Sessions have the format of vifminfo files, they do not consist of se‐
6028 quence of command-line commands and are not meant to be sourced via
6029 :source command.
6030
6031 Storage and naming
6032
6033 `$VIFM/sessions/` directory serves as a storage for sessions. Conse‐
6034 quently names should be valid filenames. The structure of the storage
6035 is flat meaning that there are no subdirectories, that's why names of
6036 sessions can't contain slashes.
6037
6038 Usage model
6039
6040 Contrary to Vim, vifm automates basic management of sessions. You can
6041 start, switch, stop or delete a session using builtin means.
6042
6043 Current session is saved at the same time vifminfo is saved (on normal
6044 exits or explicitly on :write command) and right before switching to
6045 another session. To avoid saving in those cases use :session command
6046 to detach (without saving) from a session before proceeding.
6047
6048 Related topics
6049
6050 Commands: :session, :delsession
6051 Options: 'sessionoptions'
6052 Variables: v:session
6053
6055 vifm has a builtin support of automated FUSE file system mounts. It is
6056 implemented using file associations mechanism. To enable automated
6057 mounts, one needs to use a specially formatted program line in filetype
6058 or filextype commands. These use special macros, which differ from
6059 macros in commands unrelated to FUSE. Currently three formats are sup‐
6060 ported:
6061
6062 1) FUSE_MOUNT This format should be used in case when all information
6063 needed for mounting all files of a particular type is the same. E.g.
6064 mounting of tar files don't require any file specific options.
6065
6066 Format line:
6067 FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
6068
6069 Example filetype command:
6070
6071 :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
6072
6073 2) FUSE_MOUNT2 This format allows one to use specially formatted files
6074 to perform mounting and is useful for mounting remotes, for example re‐
6075 mote file systems over ftp or ssh.
6076
6077 Format line:
6078 FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
6079
6080 Example filetype command:
6081
6082 :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
6083
6084 Example file content:
6085
6086 root@127.0.0.1:/
6087
6088 3) FUSE_MOUNT3
6089
6090 This format is equivalent to FUSE_MOUNT, but omits unmounting. It is
6091 useful for cases, when unmounting isn't needed, like when using AVFS.
6092
6093 Example :filetype command:
6094
6095 :filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb
6096 \ {Mount with avfs}
6097 \ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE
6098
6099 Example `mount-avfs` helper script:
6100
6101 #!/bin/sh
6102
6103 dest=$1
6104 file=$2
6105
6106 rmdir "$dest"
6107 ln -s "$HOME/.avfs$file#/" "$dest"
6108
6109 All % macros are expanded by vifm at runtime and have the following
6110 meaning:
6111 - %SOURCE_FILE is replaced by full path to selected file;
6112 - %DESTINATION_DIR is replaced by full path to mount directory, which
6113 is created by vifm basing on the value of 'fusehome' option;
6114 - %PARAM value is filled from the first line of file (whole line),
6115 though in the future it can be changed to whole file content;
6116 - %FOREGROUND means that you want to run mount command as a regular
6117 command (required to be able to provide input for communication with
6118 mounter in interactive way).
6119
6120 %FOREGROUND is an optional macro. Other macros are not mandatory, but
6121 mount commands likely won't work without them.
6122
6123 %CLEAR is obsolete name of %FOREGROUND, which is still supported, but
6124 might be removed in future. Its use is discouraged.
6125
6126 Unlike macros elsewhere, these are recognized only if they appear at
6127 the end of a command or are followed by a space. There is no way to
6128 escape % either. These are historical limitations, which might be ad‐
6129 dressed in the future.
6130
6131 The mounted FUSE file systems will be automatically unmounted in two
6132 cases:
6133
6134 - when vifm quits (with ZZ, :q, etc. or when killed by signal);
6135
6136 - when you explicitly leave mount point going up to its parent direc‐
6137 tory (with h, Enter on "../" or ":cd ..") and other pane is not in
6138 the same directory or its child directories.
6139
6141 vifm supports displaying of file list view in two different ways:
6142
6143 - in a table mode, when multiple columns can be set using 'view‐
6144 columns' option (see "Column view" section below for details);
6145
6146 - in a multicolumn list manner which looks almost like `ls -x` com‐
6147 mand output (see "ls-like view" section below for details).
6148
6149 The look is local for each view and can be chosen by changing value of
6150 the 'lsview' boolean option.
6151
6152 Depending on view look some of keys change their meaning to allow more
6153 natural cursor moving. This concerns mainly h, j, k, l and other simi‐
6154 lar navigation keys.
6155
6156 Also some of options can be ignored if they don't affect view display‐
6157 ing in selected look. For example value of 'viewcolumns' when 'lsview'
6158 is set.
6159
6161 When this view look is enabled by setting 'lsview' option on, vifm will
6162 display files in multiple columns. Number of columns depends on the
6163 length of the longest file name present in current directory of the
6164 view. Whole file list is automatically reflowed on directory change,
6165 terminal or view resize.
6166
6167 View looks close to output of `ls -x` command, so files are listed left
6168 to right in rows.
6169
6170 In this mode file manipulation commands (e.g. d) don't work line-wise
6171 like they do in Vim, since such operations would be uncommon for file
6172 manipulation tasks. Thus, for example, dd will remove only current
6173 file.
6174
6175 By default the view is filled by lines, 'lsoptions' can be used to get
6176 filling by columns.
6177
6178 Note that tree-view and compare view inhibit ls-like view.
6179
6181 View columns are described by a comma-separated list of column descrip‐
6182 tions, each of which has the following format
6183 [ '-' | '*' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type | literal '}'
6184 '.'{0,3}
6185 where fw stands for full width, tw stands for text width, bar is logi‐
6186 cal or, square brackets denote optional parts and curly braces define
6187 range of repetitions for a symbol that precedes them.
6188
6189 So it basically consists of four parts:
6190 1. Optional alignment specifier
6191 2. Optional width specifier
6192 3. Mandatory column name
6193 4. Optional cropping specifier
6194
6195 Alignment specifier
6196
6197 It's an optional minus or asterisk sign as the first symbol of the
6198 string.
6199
6200 Specifies type of text alignment within a column. Three types are sup‐
6201 ported:
6202
6203 - left align
6204
6205 set viewcolumns=-{name}
6206
6207 - right align (default)
6208
6209 set viewcolumns={name}
6210
6211 - dynamic align
6212
6213 It's like left alignment, but when the text is bigger than the col‐
6214 umn, the alignment is made at the right (so the part of the field is
6215 always visible).
6216
6217 set viewcolumns=*{name}
6218
6219 Width specifier
6220
6221 It's a number followed by a percent sign, two numbers (second one
6222 should be less than or equal to the first one) separated with a dot or
6223 a single number.
6224
6225 Specifies column width and its units. There are three size types:
6226
6227 - absolute size - column width is specified in characters
6228
6229 set viewcolumns=-100{name},20.15{ext}
6230
6231 results in two columns with lengths of 100 and 20 and a reserved
6232 space of five characters on the left of second column.
6233
6234 - relative (percent) size - column width is specified in percents of
6235 view width
6236
6237 set viewcolumns=-80%{name},15%{ext},5%{mtime}
6238
6239 results in three columns with lengths of 80/100, 15/100 and 5/100 of
6240 view width.
6241
6242 - auto size (default) - column width is automatically determined
6243
6244 set viewcolumns=-{name},{ext},{mtime}
6245
6246 results in three columns with length of one third of view width.
6247 There is no size adjustment to content, since it will slow down ren‐
6248 dering.
6249
6250 Columns of different sizing types can be freely mixed in one view.
6251 Though sometimes some of columns can be seen partly or be completely
6252 invisible if there is not enough space to display them.
6253
6254 Column contents
6255
6256 This is usually a sorting key surrounded with curly braces, e.g.
6257
6258 {name},{ext},{mtime}
6259
6260 {name} and {iname} types are the same and present both for consistency
6261 with 'sort' option.
6262
6263 Following types don't have corresponding sorting keys:
6264
6265 - {root} - display name without extension (as a complement for
6266 {ext})
6267
6268 - {fileroot} - display name without extension for anything except for
6269 directories and symbolic links to directories (as a complement for
6270 {fileext})
6271
6272 Empty curly braces ({}) are replaced with the default secondary column
6273 for primary sort key. So after the next command view will be displayed
6274 almost as if 'viewcolumns' is empty, but adding ellipsis for long file
6275 names:
6276
6277 set viewcolumns=-{name}..,6{}.
6278
6279 The last kind of column value is a string literal. The literal is used
6280 as a column value for every row. The syntax is "{#literal}", for exam‐
6281 ple:
6282
6283 3{#},{#|},{# | }
6284
6285 This can be used to draw column separators. Mind that for convenience
6286 literals have different defaults: truncation and automatically deter‐
6287 mined absolute size, which is what you usually want for them. Example:
6288
6289 set viewcolumns=*{name}..,{#|},6{}.
6290
6291 Cropping specifier
6292
6293 It's from one to three dots after closing curly brace in column format.
6294
6295 Specifies type of text truncation if it doesn't fit in the column.
6296 Currently three types are supported:
6297
6298 - truncation - text is truncated
6299
6300 set viewcolumns=-{name}.
6301
6302 results in truncation of names that are too long too fit in the
6303 view.
6304
6305 - adding of ellipsis - ellipsis on the left or right are added when
6306 needed
6307
6308 set viewcolumns=-{name}..
6309
6310 results in that ellipsis are added at the end of too long file
6311 names.
6312
6313 - none (default) - text can pass column boundaries
6314
6315 set viewcolumns=-{name}...,{ext}
6316
6317 results in that long file names can partially be written on the ext
6318 column.
6319
6321 The color schemes in vifm can be applied in two different ways:
6322
6323 - as the primary color scheme;
6324
6325 - as local to a pane color scheme.
6326
6327 Both types are set using :colorscheme command, but of different forms:
6328
6329 - :colorscheme color_scheme_name - for the primary color scheme;
6330
6331 - :colorscheme color_scheme_name directory - for local color schemes.
6332
6333 Look of different parts of the TUI (Text User Interface) is determined
6334 in this way:
6335
6336 - Border, TabLine, TabLineSel, TopLineSel, TopLine, CmdLine, Er‐
6337 rorMsg, StatusLine, JobLine, SuggestBox and WildMenu are always de‐
6338 termined by the primary color scheme;
6339
6340 - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device,
6341 Executable, Fifo, CmpMismatch, Win, AuxWin and OtherWin are deter‐
6342 mined by primary color scheme and a set of local color schemes,
6343 which can be empty.
6344
6345 There might be a set of local color schemes because they are structured
6346 hierarchically according to file system structure. For example, having
6347 the following piece of file system:
6348
6349 ~
6350 `-- bin
6351 |
6352 `-- my
6353
6354 Two color schemes:
6355
6356 # ~/.vifm/colors/for_bin
6357 highlight Win cterm=none ctermfg=white ctermbg=red
6358 highlight CurrLine cterm=none ctermfg=red ctermbg=black
6359
6360 # ~/.vifm/colors/for_bin_my
6361 highlight CurrLine cterm=none ctermfg=green ctermbg=black
6362
6363 And these three commands in the vifmrc file:
6364
6365 colorscheme Default
6366 colorscheme for_bin ~/bin
6367 colorscheme for_bin_my ~/bin/my
6368
6369 File list will look in the following way for each level:
6370
6371 - ~/ - Default color scheme
6372 black background
6373 cursor with blue background
6374
6375 - ~/bin/ - mix of Default and for_bin color schemes
6376 red background
6377 cursor with black background and red foreground
6378
6379 - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
6380 red background
6381 cursor with black background and green foreground
6382
6384 vifm has support of trash directory, which is used as temporary storage
6385 for deleted files or files that were cut. Using trash is controlled by
6386 the 'trash' option, and exact path to the trash can be set with
6387 'trashdir' option. Trash directory in vifm differs from the system-
6388 wide one by default, because of possible incompatibilities of storing
6389 deleted files among different file managers. But one can set
6390 'trashdir' to "~/.local/share/Trash" to use a "standard" trash direc‐
6391 tory.
6392
6393 There are two scenarios of using trash in vifm:
6394
6395 1. As a place for storing files that were cut by "d" and may be in‐
6396 serted to some other place in file system.
6397
6398 2. As a storage of files, that are deleted but not purged yet.
6399
6400 The first scenario uses deletion ("d") operations to put files to trash
6401 and put ("p") operations to restore files from trash directory. Note
6402 that such operations move files to and from trash directory, which can
6403 be long term operations in case of different partitions or remote
6404 drives mounted locally.
6405
6406 The second scenario uses deletion ("d") operations for moving files to
6407 trash directory and :empty command-line command to purge all previously
6408 deleted files.
6409
6410 Deletion and put operations depend on registers, which can point to
6411 files in trash directory. Normally, there are no nonexistent files in
6412 registers, but vifm doesn't keep track of modifications under trash di‐
6413 rectory, so one shouldn't expect value of registers to be absolutely
6414 correct if trash directory was modified not by operation that are meant
6415 for it. But this won't lead to any issues with operations, since they
6416 ignore nonexistent files.
6417
6419 vifm supports remote execution of command-line mode commands, remote
6420 changing of directories and expression evaluation. This is possible
6421 using --remote and --remote-expr command-line arguments.
6422
6423 To execute a command remotely combine --remote argument with -c <com‐
6424 mand> or +<command>. For example:
6425
6426 vifm --remote -c 'cd /'
6427 vifm --remote '+cd /'
6428
6429 To change directory not using command-line mode commands one can spec‐
6430 ify paths right after --remote argument, like this:
6431
6432 vifm --remote /
6433 vifm --remote ~
6434 vifm --remote /usr/bin /tmp
6435
6436 Evaluating expression remotely might be useful to query information
6437 about an instance, for example its location:
6438
6439 vifm --remote-expr 'expand("%d")'
6440
6441 If there are several running instances, the target can be specified
6442 with --server-name option (otherwise, the first one lexicographically
6443 is used):
6444
6445 vifm --server-name work --remote ~/work/project
6446
6447 List of names of running instances can be obtained via --server-list
6448 option. Name of the current one is available via v:servername.
6449
6450
6451 v:servername
6452 server name of the running vifm instance. Empty if client-
6453 server feature is disabled.
6454
6456 When an editor is run to edit list of file names, contents of the tem‐
6457 porary file has the following format:
6458
6459 1. Order of lines correspond to the order of files in a view.
6460
6461 2. Lines that start with a "#" are comments and are ignored.
6462
6463 3. Single backslash at the beginning of a line is ignored, so that a
6464 file starting with a backslash will appear like "\#name".
6465
6466 If an operation was rejected due to issues with file names, next time
6467 you'll see the following in this order:
6468
6469 1. Last error (in comments).
6470
6471 2. Original file names (in comments).
6472
6473 3. Failed list of new names.
6474
6475 Mind that Vim plugin will extract list of original names and show them
6476 in a vertical split.
6477
6478 You can cancel renaming by removing all non-comments from the buffer.
6479 This also erases information about previous edits.
6480
6482 Plugin for using vifm in vim as a file selector.
6483
6484 Commands:
6485
6486 :EditVifm select a file or files to open in the current buffer.
6487 :Vifm alias for :EditVifm.
6488 :SplitVifm split buffer and select a file or files to open.
6489 :VsplitVifm vertically split buffer and select a file or files to
6490 open.
6491 :DiffVifm select a file or files to compare to the current file
6492 with
6493 :vert diffsplit.
6494 :TabVifm select a file or files to open in tabs.
6495
6496 Each command accepts up to two arguments: left pane directory and right
6497 pane directory. After arguments are checked, vifm process is spawned
6498 in a special "file-picker" mode. To pick files just open them either
6499 by pressing l, i or Enter keys, or by running :edit command. If no
6500 files are selected, file under the cursor is opened, otherwise whole
6501 selection is passed to the plugin and opened in vim.
6502
6503 The plugin have only two settings. It's a string variable named
6504 g:vifm_term to let user specify command to run GUI terminal. By de‐
6505 fault it's equal to 'xterm -e'. And another string variable named
6506 g:vifm_exec, which equals "vifm" by default and specifies path to
6507 vifm's executable. To pass arguments to vifm use g:vifm_exec_args,
6508 which is empty by default.
6509
6510 To use the plugin copy the vifm.vim file to either the system wide
6511 vim/plugin directory or into ~/.vim/plugin.
6512
6513 If you would prefer not to use the plugin and it is in the system wide
6514 plugin directory add
6515
6516 let loaded_vifm=1
6517
6518 to your ~/.vimrc file.
6519
6521 The following command names are reserved and shouldn't be used for user
6522 commands.
6523
6524 g[lobal]
6525 v[global]
6526
6528 VIFM Points to main configuration directory (usually ~/.vifm/).
6529
6530 MYVIFMRC
6531 Points to main configuration file (usually ~/.vifm/vifmrc).
6532
6533 These environment variables are valid inside vifm and also can be used
6534 to configure it by setting some of them before running vifm.
6535
6536 When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for Win‐
6537 dows: vifmrc in the same directory as vifm.exe has higher priority than
6538 $VIFM/vifmrc).
6539
6540 See "Startup" section above for more details.
6541
6542 VIFM_FUSE_FILE
6543 On execution of external commands this variable is set to the
6544 full path of file used to initiate FUSE mount of the closest
6545 mount point from current pane's directory up. It's not set when
6546 outside FUSE mount point. When vifm is used inside terminal
6547 multiplexer, it tries to set this variable as well (it doesn't
6548 work this way on its own).
6549
6551 vifm-convert-dircolors(1), vifm-pause(1)
6552
6553 Website: https://vifm.info/
6554 Wiki: https://wiki.vifm.info/
6555
6556 Esperanto translation of the documentation by Sebastian Cyprych:
6557 http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
6558
6560 Vifm was written by ksteen <ksteen@users.sourceforge.net>
6561 And currently is developed by xaizek <xaizek@posteo.net>
6562
6563
6564
6565vifm 0.12 September 29, 2021 VIFM(1)