-
-
Notifications
You must be signed in to change notification settings - Fork 119
/
vifm.1
7459 lines (6704 loc) · 231 KB
/
vifm.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.TH VIFM 1 "14 January 2022" "vifm 0.12.1"
.\" ---------------------------------------------------------------------------
.SH NAME
.\" ---------------------------------------------------------------------------
vifm \- vi file manager
.\" ---------------------------------------------------------------------------
.SH SYNOPSIS
.\" ---------------------------------------------------------------------------
vifm [OPTION]...
.br
vifm [OPTION]... path
.br
vifm [OPTION]... path path
.\" ---------------------------------------------------------------------------
.SH DESCRIPTION
.\" ---------------------------------------------------------------------------
Vifm is an ncurses based file manager with vi like keybindings. If you use vi,
vifm gives you complete keyboard control over your files without having to learn
a new set of commands.
.\" ---------------------------------------------------------------------------
.SH OPTIONS
.\" ---------------------------------------------------------------------------
vifm starts in the current directory unless it is given a different directory
on the command line or 'vifminfo' option includes "savedirs" (in which case
last visited directories are used as defaults).
.TP
.BI -
Read list of files from standard input stream and compose custom view out of
them (see "Custom views" section). Current working directory is used as a base
for relative paths.
.TP
.BI <path>
Starts Vifm in the specified path.
.TP
.BI "<path> <path>"
Starts Vifm in the specified paths.
.LP
Specifying two directories triggers split view even when vifm was in single-view
mode on finishing previous run. To suppress this behaviour :only command can be
put in the vifmrc file.
.LP
When only one path argument is found on command-line, the left/top pane is
automatically set as the current view.
.LP
Paths to files are also allowed in case you want vifm to start with some
archive opened.
.TP
.BI "\-\-select <path>"
Open parent directory of the given path and select specified file in it.
.TP
.BI \-f
Makes vifm instead of opening files write selection to $VIFM/vimfiles and quit.
.TP
.BI "\-\-choose-files <path>|\-"
Sets output file to write selection into on exit instead of opening files.
"\-" means standard output. Use empty value to disable it.
.TP
.BI "\-\-choose-dir <path>|\-"
Sets output file to write last visited directory into on exit. "\-" means
standard output. Use empty value to disable it.
.TP
.BI "\-\-delimiter <delimiter>"
Sets separator for list of file paths written out by vifm. Empty value means
null character. Default is new line character.
.TP
.BI "\-\-on\-choose <command>"
Sets command to be executed on selected files instead of opening them. The
command may use any of macros described in "Command macros" section below. The
command is executed once for whole selection.
.TP
.BI "\-\-plugins\-dir <path>"
Additional plugins directory (can appear multiple times). The last one
added has the highest priority.
.TP
.BI "\-\-logging[=<startup log path>]"
Log some operational details to $XDG_DATA_HOME/vifm/log or $VIFM/log. If
the optional startup log path is specified and permissions allow to open
it for writing, then logging of early initialization (before configuration
directories are determined) is put there.
.TP
.BI \-\-server\-list
List available server names and exit.
.TP
.BI "\-\-server\-name <name>"
Name of target or this instance (sequential numbers are appended on name
conflict).
.TP
.BI "\-\-remote"
Sends the rest of the command line to another instance of vifm, \-\-server\-name
is treated just like any other argument and should precede \-\-remote on the
command line. When there is no server, quits silently. There is no limit on
how many arguments can be processed. One can combine \-\-remote with \-c
<command> or +<command> to execute commands in already running instance of vifm.
See also "Client\-Server" section below.
.TP
.BI "\-\-remote-expr"
passes expression to vifm server and prints result. See also "Client\-Server"
section below.
.TP
.BI "\-c <command> or +<command>"
Run command-line mode <command> on startup. Commands in such arguments are
executed in the order they appear in command line. Commands with spaces or
special symbols must be enclosed in double or single quotes or all special
symbols should be escaped (the exact syntax strongly depends on shell). "+"
argument is equivalent to "$" and thus picks last item of of the view.
.TP
.BI "\-\-help, \-h"
Show a brief command summary and exit vifm.
.TP
.BI "\-\-version, \-v"
Show version information and quit.
.TP
.BI \-\-no\-configs
Skip reading vifmrc and vifminfo.
.LP
See "Startup" section below for the explanations on $VIFM.
.br
.\" ---------------------------------------------------------------------------
.SH General keys
.\" ---------------------------------------------------------------------------
.TP
.BI "Ctrl-C or Escape"
cancel most operations (see "Cancellation" section below), clear all selected
files.
.TP
.BI Ctrl-L
clear and redraw the screen. Can also reload file list in appropriate
modes (like normal and visual).
.\" ---------------------------------------------------------------------------
.SH Basic Movement
.\" ---------------------------------------------------------------------------
The basic vi key bindings are used to move through the files and pop-up windows.
.TP
.BI "k, gk, or Ctrl-P"
move cursor up one line.
.TP
.BI "j, gj or Ctrl-N"
move cursor down one line.
.TP
.BI h
when 'lsview' is off move up one directory (moves to parent directory node in
tree view), otherwise move left one file.
.TP
.BI l
when 'lsview' is off move into a directory or launch a file, otherwise move
right one file. See "Selection" section below.
.TP
.BI gg
move to the first line of the file list.
.TP
.BI G
move to the last line in the file list.
.TP
.BI gh
go up one directory regardless of view representation (regular, ls-like). Also
can be used to leave custom views including tree view.
.TP
.BI "gl or Enter"
enter directory or launch a file. See "Selection" section below.
.TP
.BI H
move to the first file in the window.
.TP
.BI M
move to the file in the middle of the window.
.TP
.BI L
move to the last file in the window.
.TP
.BI "Ctrl-F or Page Down"
move forward one page.
.TP
.BI "Ctrl-B or Page Up"
move back one page.
.TP
.BI Ctrl-D
jump back one half page.
.TP
.BI Ctrl-U
jump forward one half page.
.TP
.BI n%
move to the file that is n percent from the top of the list (for example 25%).
.TP
.BI "0 or ^"
move cursor to the first column. See 'lsview' option description.
.TP
.BI $
move cursor to the last column. See 'lsview' option description.
.TP
.BI Space
switch file lists.
.TP
.BI gt
switch to the next tab (wrapping around).
.TP
.BI {n}gt
switch to the tab number {n} (wrapping around).
.TP
.BI gT
switch to the previous tab (wrapping around).
.TP
.BI {n}gT
switch to {n}-th previous tab.
.\" ---------------------------------------------------------------------------
.SH Movement with Count
.\" ---------------------------------------------------------------------------
.TP
Most movement commands also accept a count, 12j would move down 12 files.
.TP
.BI [count]%
move to percent of the file list.
.TP
.BI [count]j
move down [count] files.
.TP
.BI [count]k
move up [count] files.
.TP
.BI "[count]G or [count]gg"
move to list position [count].
.TP
.BI [count]h
go up [count] directories.
.\" ---------------------------------------------------------------------------
.SH Scrolling panes
.\" ---------------------------------------------------------------------------
.TP
.BI zt
redraw pane with file in top of list.
.TP
.BI zz
redraw pane with file in center of list.
.TP
.BI zb
redraw pane with file in bottom of list.
.TP
.BI Ctrl-E
scroll pane one line down.
.TP
.BI Ctrl-Y
scroll pane one line up.
.\" ---------------------------------------------------------------------------
.SH Pane manipulation
.\" ---------------------------------------------------------------------------
Second character can be entered with or without Control key.
.TP
.BI "Ctrl-W H"
move the pane to the far left.
.TP
.BI "Ctrl-W J"
move the pane to the very bottom.
.TP
.BI "Ctrl-W K"
move the pane to the very top.
.TP
.BI "Ctrl-W L"
move the pane to the far right.
.TP
.BI "Ctrl-W h"
switch to the left pane.
.TP
.BI "Ctrl-W j"
switch to the pane below.
.TP
.BI "Ctrl-W k"
switch to the pane above.
.TP
.BI "Ctrl-W l"
switch to the right pane.
.TP
.BI "Ctrl-W b"
switch to bottom-right window.
.TP
.BI "Ctrl-W t"
switch to top-left window.
.TP
.BI "Ctrl-W p"
switch to previous window.
.TP
.BI "Ctrl-W w"
switch to other pane.
.TP
.BI "Ctrl-W o"
leave only one pane.
.TP
.BI "Ctrl-W s"
split window horizontally.
.TP
.BI "Ctrl-W v"
split window vertically.
.TP
.BI "Ctrl-W x"
exchange panes.
.TP
.BI "Ctrl-W z"
quit preview pane or view modes.
.TP
.BI "Ctrl-W \-"
decrease size of the view by count.
.TP
.BI "Ctrl-W +"
increase size of the view by count.
.TP
.BI "Ctrl-W <"
decrease size of the view by count.
.TP
.BI "Ctrl-W >"
increase size of the view by count.
.TP
.BI "Ctrl-W |"
set current view size to count.
.TP
.BI "Ctrl-W _"
set current view size to count.
.TP
.BI "Ctrl-W ="
make size of two views equal.
.LP
For Ctrl-W +, Ctrl-W \-, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _ commands
count can be given before and/or after Ctrl-W. The resulting count
is a multiplication of those two. So "2 Ctrl-W 2 \-" decreases
window size by 4 lines or columns.
Ctrl-W | and Ctrl-W _ maximise current view by default.
.\" ---------------------------------------------------------------------------
.SH Marks
.\" ---------------------------------------------------------------------------
.TP
Marks are set the same way as they are in vi.
.LP
You can use these characters for marks [a\-z][A\-Z][0\-9].
.TP
.BI m[a\-z][A\-Z][0\-9]
set a mark for the file at the current cursor position.
.TP
.BI '[a\-z][A\-Z][0\-9]
navigate to the file set for the mark.
.LP
There are also several special marks that can't be set manually:
.RS 2
.IP \- 2
\(aq (single quote) \- previously visited directory of the view, thus hitting
\(aq\(aq allows switching between two last locations
.IP \- 2
< \- the first file of the last visually selected block
.IP \- 2
> \- the last file of the last visually selected block
.RE
.\" ---------------------------------------------------------------------------
.SH Searching
.\" ---------------------------------------------------------------------------
.TP
.BI "/regular expression pattern"
search for files matching regular expression in forward direction and advance
cursor to next match.
.TP
.BI "/"
perform forward search with top item of search pattern history.
.TP
.BI "?regular expression pattern"
search for files matching regular expression in backward direction and advance
cursor to previous match.
.TP
.BI "?"
perform backward search with top item of search pattern history.
.TP
Trailing slash for directories is taken into account, so /\\/ searches for \
directories and symbolic links to directories. At the moment // works too, \
but this can change in the future, so consider escaping the slash if not \
typing pattern by hand.
.TP
Matches are automatically selected if 'hlsearch' is set. Enabling 'incsearch' \
makes search interactive. 'ignorecase' and 'smartcase' options affect case \
sensitivity of search queries as well as local filter and other things \
detailed in the description of 'caseoptions'.
.TP
.BI [count]n
go to the next file matching last search pattern. Takes last search direction
into account.
.TP
.BI [count]N
go to the previous file matching last search pattern. Takes last search
direction into account.
.TP
If 'hlsearch' option is set, hitting n/N to perform search and go to the first \
matching item resets current selection in normal mode. It is not the case if \
search was already performed on files in the directory, thus selection is not \
reset after clearing selection with escape key and hitting n/N key again.
.LP
See also "Regular expressions" section.
.TP
.BI [count]f[character]
search forward for file with [character] as first character in name. Search
wraps around the end of the list.
.TP
.BI [count]F[character]
search backward for file with [character] as first character in name. Search
wraps around the end of the list.
.TP
.BI [count];
find the next match of f or F.
.TP
.BI [count],
find the previous match of f or F.
.LP
Note: f, F, ; and , wrap around list beginning and end when they are used
alone and they don't wrap when they are used as selectors.
.\" ---------------------------------------------------------------------------
.SH File Filters
.\" ---------------------------------------------------------------------------
There are three basic file filters:
.RS 2
.IP \- 2
dot files filter (does not affect "." and ".." special directories, whose
appearance is controlled by the 'dotdirs' option), see 'dotfiles' option;
.IP \- 2
permanent filter;
.IP \- 2
local filter (see description of the "=" normal mode command).
.RE
Permanent filter essentially allows defining a group of files names which are
not desirable to be seen by default, like temporary or backup files, which
might be created alongside normal ones. Just like you don't usually need to
see hidden dot files (files starting with a dot). Local filter on the other
hand is for temporary immediate filtering of file list at hand, to get rid of
uninterested files in the view or to make it possible to use % range in a
:command.
For the purposes of more deterministic editing permanent filter is split
into two parts:
.RS 2
.IP \- 2
one edited explicitly via :filter command;
.IP \- 2
another one which is edited implicitly via zf shortcut.
.RE
Files are tested against both parts and a match counts if at least one
of the parts matched.
.TP
Each file list has its own copy of each filter.
.TP
Filtered files are not checked in / search or :commands.
.TP
Files and directories are filtered separately. This is done by appending \
a slash to a directory name before testing whether it matches the filter. \
Examples:
.EX
.LP
" filter directories which names end with '.files'
:filter /^.*\\.files\\/$/
" filter files which names end with '.d'
:filter {*.d}
" filter files and directories which names end with '.o'
:filter /^.*\\.o\\/?$/
.EE
See also "Regular expressions" and "Patterns" sections.
The basic Vim folding key bindings are used for managing filters.
.TP
.BI za
toggle visibility of dot files.
.TP
.BI zo
show dot files.
.TP
.BI zm
hide dot files.
.TP
.BI zf
add selected files to permanent filter.
.TP
.BI zO
reset permanent filter.
.TP
.BI zR
save and reset all filters.
.TP
.BI zr
clear local filter.
.TP
.BI zM
restore all filters (undoes last zR).
.TP
.BI zd
exclude selection or current file from a custom view. Does nothing for regular
view. For tree view excluding directory excludes that sub-tree. For compare
views zd hides group of adjacent identical files, count can be specified as 1 to
exclude just single file or selected items instead. Files excluded this way are
not counted as filtered out and can't be returned unless view is reloaded.
.TP
.BI "=regular expression pattern"
filter out files that don't match regular expression. Whether view is updated
as regular expression is changed depends on the value of the 'incsearch' option.
This kind of filter is automatically reset when directory is changed.
.\" ---------------------------------------------------------------------------
.SH Tree-related Keys
.\" ---------------------------------------------------------------------------
While some of the keys make sense outside of tree-view, they are most useful
in trees.
.TP
.BI [z
go to first sibling of current entry.
.TP
.BI ]z
go to last sibling of current entry.
.TP
.BI zj
go to next directory sibling of current entry or do nothing.
.TP
.BI zk
go to previous directory sibling of current entry or do nothing.
.TP
.BI zx
toggle fold under the cursor or parent entry of the current file if cursor
is not on a directory.
.\" ---------------------------------------------------------------------------
.SH Other Normal Mode Keys
.\" ---------------------------------------------------------------------------
.TP
.BI [count]:
enter command line mode. [count] generates range.
.TP
.BI q:
open external editor to prompt for command-line command. See
"Command line editing" section for details.
.TP
.BI q/
open external editor to prompt for search pattern to be searched in forward
direction. See "Command line editing" section for details.
.TP
.BI q?
open external editor to prompt for search pattern to be searched in backward
direction. See "Command line editing" section for details.
.TP
.BI q=
open external editor to prompt for filter pattern. See "Command line editing"
section for details. Unlike other q{x} commands this one doesn't work in Visual
mode.
.TP
.BI "[count]!! and [count]!<selector>"
enter command line mode with entered ! command. [count] modifies range.
.TP
.BI Ctrl-O
go backwards through directory history of current view. Nonexistent directories
are automatically skipped.
.TP
.BI Ctrl-I
if 'cpoptions' contains "t" flag, <tab> and <c-i> switch active pane just like
<space> does, otherwise it goes forward through directory history of current
view. Nonexistent directories are automatically skipped.
.TP
.BI Ctrl-G
show a dialog with detailed information about current file. See
"Menus and dialogs" section for controls.
.TP
.BI "Shift-Tab"
enter view mode (works only after activating view pane with :view command).
.TP
.BI ga
calculate directory size. Uses cached directory sizes when possible for better
performance. As a special case calculating size of ".." entry results in
calculation of size of current directory.
.TP
.BI gA
like ga, but force update. Ignores old values of directory sizes.
.LP
If file under cursor is selected, each selected item is processed, otherwise
only current file is updated.
.TP
.BI gf
find link destination (like l with 'followlinks' off, but also finds
directories). On Windows additionally follows .lnk-files.
.TP
.BI gF
Same as gf, but resolves final path of the chain of symbolic links.
.TP
.BI gr
only for MS-Windows
.br
same as l key, but tries to run program with administrative privileges.
.TP
.BI av
go into visual mode for updating current selection, any existing selection
is preserved.
.TP
.BI gv
go into visual mode restoring last selection.
.TP
.BI [reg]gs
if register is present, then all files listed in that register that are
visible in current view are selected.
When no register is specified, restore the last selection saved for this
view (similar to what gv does for visual mode selection). When you
leave a directory, its saved selection is remembered for that path and
visiting the directory again restores it. Selection for up to 10 distinct
file-system locations are remembered.
.TP
.BI gu<selector>
make names of selected files lowercase.
.TP
.BI "[count]guu and [count]gugu"
make names of [count] files starting from the current one lowercase. Without
[count] only current file is affected.
.TP
.BI gU<selector>
make names of selected files uppercase.
.TP
.BI "[count]gUU and [count]gUgU"
make names of [count] files starting from the current one uppercase. Without
[count] only current file is affected.
.TP
.BI e
explore file in the current pane.
.TP
.BI i
handle file (even if it's an executable and 'runexec' option is set).
.TP
.BI cw
change word is used to rename a file or files. If multiple files are selected,
behaves as :rename command run without arguments.
.TP
.BI cW
change WORD is used to change only name of file (without extension).
.TP
.BI cl
change link target. If multiple files are selected, an editor is spawn
to edit paths.
.TP
.BI co
only for *nix
.br
change file owner.
.TP
.BI cg
only for *nix
.br
change file group.
.TP
.BI [count]cp
change file attributes (permission on *nix and properties on Windows). If
[count] is specified, it's treated as numerical argument for non-recursive
`chmod` command (of the form [0-7]{3,4}). See "Menus and dialogs" section for
controls.
.TP
.BI [count]C
clone file [count] times.
.TP
.BI "[count]dd or d[count]selector"
move selected file or files to trash directory (if 'trash' option is set,
otherwise delete). See "Trash directory" section below.
.TP
.BI "[count]DD or D[count]selector"
like dd and d<selector>, but omitting trash directory (even when 'trash' option
is set).
.TP
.BI "Y, [count]yy or y[count]selector"
yank selected files.
.TP
.BI p
copy yanked files to the current directory or move the files to the current
directory if they were deleted with dd or :d[elete] or if the files were yanked
from trash directory. See "Trash directory" section below.
.TP
.BI P
move the last yanked files. The advantage of using P instead of d followed by
p is that P moves files only once. This isn't important in case you're moving
files in the same file system where your home directory is, but using P to
move files on some other file system (or file systems, in case you want to move
files from fs1 to fs2 and your home is on fs3) can save your time.
.TP
.BI al
put symbolic links with absolute paths.
.TP
.BI rl
put symbolic links with relative paths.
.TP
.BI t
select or unselect (tag) the current file.
.TP
.BI u
undo last change.
.TP
.BI Ctrl-R
redo last change.
.TP
.BI dp
in compare view of "ofboth grouppaths" kind, makes corresponding entry of the
other pane equal to the current one. The semantics is as follows:
\- nothing done for identical entries
\- if file is missing in current view, its pair gets removed
\- if file is missing or differs in other view, it's replaced
\- file pairs are defined by matching relative paths
.br
File removal obeys 'trash' option. When the option is enabled, the operation
can be undone/redone (although results won't be visible automatically).
.br
Unlike in Vim, this operation is performed on a single line rather than
a set of adjacent changes.
.TP
.BI do
same as dp, but applies changes in the opposite direction.
.TP
.BI "v or V"
enter visual mode, clears current selection.
.TP
.BI [count]Ctrl-A
increment first number in file name by [count] (1 by default).
.TP
.BI [count]Ctrl-X
decrement first number in file name by [count] (1 by default).
.TP
.BI ZQ
same as :quit!.
.TP
.BI ZZ
same as :quit.
.TP
.BI .
repeat last command-line command (not normal mode command) of this run (does
nothing right after startup or :restart command). The command doesn't depend on
command-line history and can be used with completely disabled history.
.TP
.BI (
go to previous group. Groups are defined by primary sorting key. For name and
iname members of each group have same first letter, for all other sorting keys
vifm uses size, uid, ...
.TP
.BI )
go to next group. See ( key description above.
.TP
.BI {
speeds up navigation to closest previous entry of the opposite type by
moving to the first file backwards when cursor is on a directory and
to the first directory backwards when cursor is on a file. This is
essentially a special case of ( that is locked on "dirs".
.TP
.BI }
same as {, but in forward direction.
.TP
.BI [c
go to previous mismatched entry in directory comparison view or do nothing.
.TP
.BI ]c
go to next mismatched entry in directory comparison view or do nothing.
.TP
.BI [d
go to previous directory entry or do nothing.
.TP
.BI ]d
go to next directory entry or do nothing.
.TP
.BI [r
same as :siblprev.
.TP
.BI ]r
same as :siblnext.
.TP
.BI [R
same as :siblprev!.
.TP
.BI ]R
same as :siblnext!.
.TP
.BI [s
go to previous selected entry or do nothing.
.TP
.BI ]s
go to next selected entry or do nothing.
.\" ---------------------------------------------------------------------------
.SH Using Count
.\" ---------------------------------------------------------------------------
.TP
You can use count with commands like yy.
.TP
.BI [count]yy
yank count files starting from current cursor position downward.
.TP
Or you can use count with motions passed to y, d or D.
.TP
.BI d[count]j
delete (count + 1) files starting from current cursor position upward.
.\" ---------------------------------------------------------------------------
.SH Registers
.\" ---------------------------------------------------------------------------
.LP
vifm supports multiple registers for temporary storing list of yanked or
deleted files.
Registers should be specified by hitting double quote key followed by a
register name. Count is specified after register name. By default commands use
unnamed register, which has double quote as its name.
Though all commands accept registers, most of commands ignores them (for example
H or Ctrl-U). Other commands can fill register or append new files to it.
Presently vifm supports ", _, a-z and A-Z characters as register names.
As mentioned above " is unnamed register and has special meaning of the default
register. Every time when you use named registers (a-z and A-Z) unnamed
register is updated to contain same list of files as the last used register.
_ is black hole register. It can be used for writing, but its list is always
empty.
Registers with names from a to z and from A to Z are named ones. Lowercase
registers are cleared before adding new files, while uppercase aren't and should
be used to append new files to the existing file list of appropriate lowercase
register (A for a, B for b, ...).
Registers can be changed on :empty command if they contain files under trash
directory (see "Trash directory" section below).
Registers do not contain one file more than once.
Example:
.EX
"a2yy
.EE
.br
puts names of two files to register a (and to the unnamed register),
.EX
"Ad
.EE
.br
removes one file and append its name to register a (and to the unnamed
register),
.EX
p or "ap or "Ap
.EE
.br
inserts previously yanked and deleted files into current directory.
.\" ---------------------------------------------------------------------------
.SH Selectors
.\" ---------------------------------------------------------------------------
.TP
y, d, D, !, gu and gU commands accept selectors. You can combine them with \
any of selectors below to quickly remove or yank several files.
.LP
Most of selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F, ;, \
comma, ', ^, 0 and $. But there are some additional ones.
.TP
.BI a
all files in current view.
.TP
.BI s
selected files.
.TP
.BI S
all files except selected.
.LP
Examples:
.RS 2
.IP \- 2
dj \- delete file under cursor and one below;
.IP \- 2
d2j \- delete file under cursor and two below;
.IP \- 2
y6gg \- yank all files from cursor position to 6th file in the list.
.RE
When you pass a count to whole command and its selector they are multiplied. So:
.RS 2
.IP \- 2
2d2j \- delete file under cursor and four below;
.IP \- 2
2dj \- delete file under cursor and two below;
.IP \- 2
2y6gg \- yank all files from cursor position to 12th file in the list.
.RE
.\" ---------------------------------------------------------------------------
.SH Visual Mode
.\" ---------------------------------------------------------------------------
Visual mode has two generic operating submodes:
.RS 2
.IP \- 2
plain selection as it is in Vim;
.IP \- 2
selection editing submode.
.RE
Both modes select files in range from cursor position at which visual mode was
entered to current cursor position (let's call it "selection region"). Each of
two borders can be adjusted by swapping them via "o" or "O" keys and updating
cursor position with regular cursor motion keys. Obviously, once initial cursor
position is altered this way, real start position becomes unavailable.
Plain Vim-like visual mode starts with cleared selection, which is not restored
on rejecting selection ("Escape", "Ctrl-C", "v", "V"). Contrary to it,
selection editing doesn't clear previously selected files and restores them
after reject. Accepting selection by performing an operation on selected
items (e.g. yanking them via "y") moves cursor to the top of current selection
region (not to the top most selected file of the view).
In turn, selection editing supports three types of editing (look at status bar
to know which one is currently active):
.RS 2
.IP \- 2
append \- amend selection by selecting elements in selection region;
.IP \- 2
remove \- amend selection by deselecting elements in selection region;
.IP \- 2
invert \- amend selection by inverting selection of elements in selection \
region.
.RE
No matter how you activate selection editing it starts in "append". One can
switch type of operation (in the order given above) via "Ctrl-G" key.
Almost all normal mode keys work in visual mode, but instead of accepting
selectors they operate on selected items.
.TP
.BI Enter
save selection and go back to normal mode not moving cursor.
.TP
.BI av
leave visual mode if in amending mode (restores previous selection), otherwise
switch to amending selection mode.
.TP
.BI gv
restore previous visual selection.
.TP
.BI "v, V, Ctrl-C or Escape"
leave visual mode if not in amending mode, otherwise switch to normal visual
selection.
.TP
.BI Ctrl-G
switch type of amending by round robin scheme: append \-> remove \-> invert.
.TP
.BI :
enter command line mode. Selection is cleared on leaving the mode.
.TP
.BI o
switch active selection bound.
.TP
.BI O
switch active selection bound.
.TP
.BI "gu, u"
make names of selected files lowercase.
.TP
.BI "gU, U"
make names of selected files uppercase.
.TP
.BI cl
change target of symbolic link(s).
.TP
.BI cw
same as running :rename command without arguments.
.\" ---------------------------------------------------------------------------
.SH View Mode
.\" ---------------------------------------------------------------------------
This mode tries to imitate the less program. List of builtin shortcuts can be
found below. Shortcuts can be customized using :qmap, :qnoremap and :qunmap
command-line commands.
.TP
.BI "Shift-Tab, Tab, q, Q, ZZ"
return to normal mode.
.TP
.BI "[count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter"
scroll forward one line (or [count] lines).
.TP
.BI "[count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P"
scroll backward one line (or [count] lines).
.TP
.BI "[count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space"
scroll forward one window (or [count] lines).
.TP
.BI "[count]b, [count]Ctrl-B, [count]Alt-V"
scroll backward one window (or [count] lines).
.TP
.BI [count]z
scroll forward one window (and set window to [count]).
.TP