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