Don't assume CWD is a valid path.
[rover.git] / rover.1
blob0d11eba2cda059fd285590ec977a1fab6fb08254
1 .TH ROVER 1 rover\-0.4.2
2 .SH NAME
3 rover \- file browser for the terminal
4 .SH SYNOPSIS
5 .B rover
6 [\fB\-d\fR|\fB\-\-save\-cwd\fR \fIFILE\fR]
7 [\fB\-m\fR|\fB\-\-save\-marks\fR \fIFILE\fR]
8 [\fIDIR\fR [\fIDIR\fR [\fIDIR\fR [...]]]]
9 .br
10 .B rover
11 \fB\-h\fR|\fB\-\-help\fR
12 .br
13 .B rover
14 \fB\-v\fR|\fB\-\-version\fR
15 .SH DESCRIPTION
16 Browse current working directory or the ones specified.
17 .SH OPTIONS
18 .TP
19 \fB\-d\fR, \fB\-\-save\-cwd\fR
20 write last visited path to \fIFILE\fR before exiting
21 .TP
22 \fB\-m\fR, \fB\-\-save\-marks\fR
23 append path of marked entries to \fIFILE\fR before exiting;
24 if \fIFILE\fR doesn't exist, it'll be created
25 .TP
26 \fB\-h\fR, \fB\-\-help\fR
27 print help message and exit
28 .TP
29 \fB\-v\fR, \fB\-\-version\fR
30 print program version and exit
31 .SH CONCEPTS
32 .SS TABS
33 .PP
34 Rover is operated via a tabbed interface. There are always ten tabs in total,
35 numbered from 0 to 9. At any given moment, one (and only one) tab is visible on
36 the screen. The number of the tab currently visible is shown on the top right
37 corner of the screen. To view a different tab, one just needs to press its
38 corresponding number. Each tab has a \fBcurrent working directory\fR (\fBCWD\fR)
39 associated to it, also shown on the top of the screen. The \fBCWD\fR of the
40 visible tab is changed as the user navigates through the file system.
41 .PP
42 It's also possible to set the \fBCWD\fR of tabs at Rover start-up by passing the
43 desired paths as command-line arguments. The tab number 0 always starts at
44 \fB$HOME\fR. If more than nine directories are specified, only the first nine
45 are used for tabs 1\-9 and the rest are ignored. Tabs for which an invalid path
46 was assigned will also start at \fB$HOME\fR. Remaining tabs not specified on
47 the command line start at the current working directory of the parent process.
48 .SS ENTRIES
49 .PP
50 An \fBentry\fR is anything that may be found inside a directory in some file
51 system. It may be a file, a directory, a link, a socket, a FIFO, etc. In its
52 most basic usage, Rover will gather a list of entries inside the \fBCWD\fR
53 and present it on the screen.
54 .PP
55 There is always one (and only one) highlighted entry visible. This is both the
56 \fBcursor\fR location and the current \fBselection\fR. The highlighting moves as
57 the user navigates the entry list with cursor commands. Simple operations, like
58 entering a subdirectory or renaming a file, are done by first selecting the
59 relevant entry and then issuing the appropriate command (see the \fBCOMMANDS\fR
60 section). For commands that operate on more than one entry at once (batch
61 commands), selection is not sufficient, since it's not possible to select more
62 than one entry. Batch commands are performed on marked entries.
63 .SS MARKS
64 .PP
65 For some file operations, it is convenient to first \fBmark\fR all entries that
66 are to be processed, so that the appropriate command only needs to be issued
67 once. For such purpose, Rover allows an arbitrary number of entries to be
68 marked, with the limitation that they must be all in the same directory.
69 .PP
70 Unlike simple selection, the effect of marks is not constrained by visibility.
71 This is so one can mark a number of entries in some directory, navigate to another
72 directory, and then finally issue a copy or move command. Moreover, marks are
73 shared over all tabs. This allows one to mark some entries in one tab that is
74 pointed to the "source" directory of the operation and then issue the command on
75 another tab that is pointed to the "destination" directory.
76 .SH COMMANDS
77 .TP
78 .B q
79 Quit rover.
80 .TP
81 .B j/k
82 Move cursor down/up.
83 .TP
84 .B J/K
85 Move cursor down/up 10 lines.
86 .TP
87 .B g/G
88 Move cursor to top/bottom of listing.
89 .TP
90 .B l
91 Enter selected directory.
92 .TP
93 .B h
94 Go to parent directory.
95 .TP
96 .B H
97 Go to \fB$HOME\fR directory.
98 .TP
99 .B t
100 Go to the target of the selected link.
102 .B y
103 Copy location to clipboard.
105 .B p
106 Go to location in clipboard.
108 .B r
109 Refresh directory listing.
111 .B <RETURN>
112 Open \fB$SHELL\fR on the current directory.
114 .B <SPACE>
115 Open \fB$PAGER\fR with the selected file.
117 .B e
118 Open \fB$EDITOR\fR with the selected file.
120 .B o
121 Open \fB$OPEN\fR with the selected file.
123 .B /
124 Start incremental search.
126 .B f/d/s
127 Toggle file/directory/hidden listing.
129 .B n/N
130 Create new file/directory.
132 .B R
133 Rename selected file or directory.
135 .B E
136 Toggle execute permission of the selected file.
138 .B D
139 Delete selected file or (empty) directory.
141 .B m
142 Toggle mark on the selected entry.
144 .B M
145 Toggle mark on all visible entries.
147 .B a
148 Mark all visible entries.
150 .B X/C/V
151 Delete/copy/move all marked entries.
153 .B 0-9
154 Change tab.
155 .SH LINE EDITING
157 Some commands will prompt for an input string. For example, in order to rename a
158 file, the user must supply the new name. This string will appear at the bottom
159 of the screen and must be edited interactively using the keyboard. Printable
160 keys will insert characters at the cursor position. The following shortcuts are
161 available for line editing:
163 .B <TAB>
164 Finish editing and \fBcancel\fR command.
166 .B <RETURN>
167 Finish editing and \fBconfirm\fR command.
169 .B <LEFT>/<RIGHT>
170 Move insertion cursor left/right.
172 .B <UP>/<DOWN>
173 Move insertion cursor to beginning/end of string.
175 .B <BACKSPACE>
176 Remove one character before cursor.
178 .B <DELETE>
179 Remove one character after cursor.
181 .B <CONTROL>+u
182 Clear line (remove all characters).
183 .SH ENVIRONMENT VARIABLES
185 .B HOME
186 Full path of the home directory.
188 .B PATH
189 Colon\-separated path list for program directories.
191 .B SHELL
192 Name of shell program (e.g. \fI/bin/sh\fP).
194 .B PAGER
195 Name of pager program (e.g. \fIless\fP).
197 .B EDITOR
198 Name of editor program (e.g. \fIvim\fP or \fIemacs\fP).
200 .B CLIP
201 Path of clipboard file (e.g. \fI/tmp/clipboard\fP).
202 The user must have read and write permissions on this path.
203 If this variable is not defined, Rover will use an internal, in-memory, clipboard.
205 .B RVSEL
206 Rover writes the name of the selected entry to this variable before running a
207 subprocess. This allows one to use the selection as part of an arbitrary command
208 by first invoking a shell from Rover (see the \fBCOMMANDS\fR section) and then
209 typing something like \fBgrep abc "$RVSEL"\fR.
211 .B OPEN
212 This variable can be set to a command accepting a single argument: a filename.
213 The command is supposed to open the given file with an appropriate program.
215 .B ROVER_SHELL, ROVER_PAGER, ROVER_EDITOR, ROVER_OPEN
216 If any of these variables are set, they override \fBSHELL\fR, \fBPAGER\fR,
217 \fBEDITOR\fR and \fBOPEN\fR, respectivelly.
218 .SH CONFIGURATION
220 If you want to change Rover key bindings or colors, you can edit the
221 \fIconfig.h\fP file in the source distribution and recompile the program. Rover
222 will not use or create any external file during its execution, except when asked
223 to do so by user commands or command-line options.
224 .SH NOTES
226 \fBImportant\fR: Currently, Rover never asks for confirmation before overwriting
227 existing files while copying/moving marked entries. Please be careful to not
228 accidentally lose your data.
229 .SH LINKS
230 Rover homepage: <http://lecram.github.io/p/rover/>.
231 .SH SEE ALSO
232 \fBnoice(1)\fR, \fBmc(1)\fR, \fBvifm(1)\fR, \fBranger(1)\fR