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