xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit 0d40464e8d4499fcf47faa49d3554495ab67f64f

Updated man page.
Author: xaizek
Author date (UTC): 2011-05-20 18:46
Committer name: xaizek
Committer date (UTC): 2011-05-20 18:46
Parent(s): e52be8641a81041a4f207074970693612e54cab4
Signing key:
Tree: d0f2b358672519093c38d01ce30e1f9925205f46
File Lines added Lines deleted
ChangeLog 3 3
src/bookmarks.c 0 6
src/filelist.c 1 1
src/vifm-help.txt 11 3
src/vifm.1 144 13
src/vifm.txt 2 1
File ChangeLog changed (mode: 100644) (index 0d793b86a..1950a52b3)
2 2
3 3 Added :wq command. Added :wq command.
4 4
5 Added ZZ and ZE commands.
5 Added ZZ and ZQ commands.
6 6
7 7 Added Ctrl+D and Ctrl+U commands. Added Ctrl+D and Ctrl+U commands.
8 8
 
23 23
24 24 Added backward search (?). Added backward search (?).
25 25
26 Added :map, :nmap:, :cmap, :vmap commands.
26 Added :map, :nmap, :cmap, :vmap commands.
27 27
28 28 Added co (change owner), cg (change group) and cp (change permissions) Added co (change owner), cg (change group) and cp (change permissions)
29 29 commands. commands.
 
59 59
60 60 Added ! and !! completion. Added ! and !! completion.
61 61
62 Added support of multiple commands per line (with | as delimiter).
62 Added support for multiple commands per line (with | as delimiter).
63 63
64 64 Added ga command (calculate directory size). Added ga command (calculate directory size).
65 65
File src/bookmarks.c changed (mode: 100644) (index 8afc2977d..308fd3c42)
... ... mark2index(const char mark)
53 53 return (int) mark - 55; return (int) mark - 55;
54 54 } }
55 55
56
57 56 /* /*
58 57 * transform an index to a mark * transform an index to a mark
59 58 */ */
 
... ... is_bookmark(const int x)
85 84 return 0; return 0;
86 85 } }
87 86
88
89 87 /* /*
90 88 * low-level function without safety checks * low-level function without safety checks
91 89 */ */
 
... ... silent_remove_bookmark(const int x)
101 99 cfg.num_bookmarks--; cfg.num_bookmarks--;
102 100 } }
103 101
104
105 102 void void
106 103 remove_bookmark(const int x) remove_bookmark(const int x)
107 104 { {
108
109 105 if (is_bookmark(x)) if (is_bookmark(x))
110 106 silent_remove_bookmark(x); silent_remove_bookmark(x);
111 107 else else
112 108 status_bar_message("Could not find mark"); status_bar_message("Could not find mark");
113 109 } }
114 110
115
116 111 void void
117 112 add_bookmark(const char mark, const char *directory, const char *file) add_bookmark(const char mark, const char *directory, const char *file)
118 113 { {
 
... ... check_mark_directory(FileView *view, char mark)
177 172 file_pos = find_file_pos_in_list(view, bookmarks[x].file); file_pos = find_file_pos_in_list(view, bookmarks[x].file);
178 173
179 174 return file_pos; return file_pos;
180
181 175 } }
182 176
183 177 int int
File src/filelist.c changed (mode: 100644) (index ce11119d8..3962152e2)
... ... leave_invalid_dir(FileView *view, char *path)
912 912 * The *directory passed to change_directory() cannot be modified. * The *directory passed to change_directory() cannot be modified.
913 913 * Symlink directories require an absolute path * Symlink directories require an absolute path
914 914 * *
915 * Returns 0 if there was no errors.
915 * Returns 0 if there were no errors.
916 916 */ */
917 917 int int
918 918 change_directory(FileView *view, const char *directory) change_directory(FileView *view, const char *directory)
File src/vifm-help.txt changed (mode: 100644) (index 56f04004d..a02a900a9)
1 1 The basic vi key bindings are used to move through the files and popup The basic vi key bindings are used to move through the files and popup
2 2 windows. windows.
3 3
4 k is up
5 j is down
4 k is up
5 j is down
6 6
7 7 h is updir h is updir
8 8 l is handle file and is the same as Return. l is handle file and is the same as Return.
 
... ... The basic vi key bindings are used to move through the files and popup
13 13 gg top of list gg top of list
14 14 ga calculate size of directory ga calculate size of directory
15 15 G bottom of list G bottom of list
16 H move to the first file in the window.
17 M move to the file in the middle of the window.
18 L move to the last file in the window.
16 19 cg change group of file. cg change group of file.
17 20 co change owner of file. co change owner of file.
18 21 cp change file permissions. cp change file permissions.
 
... ... The basic vi key bindings are used to move through the files and popup
80 83 Ctrl-w l - switch to the right pane. Ctrl-w l - switch to the right pane.
81 84 Ctrl-w o - shortcut for :only Ctrl-w o - shortcut for :only
82 85 Ctrl-w v - shortcut for :split Ctrl-w v - shortcut for :split
83 Ctrl-w Ctrl-w - switch to other pane.
86 Ctrl-w w - switch to other pane.
87 Ctrl-w x - exchange panes.
84 88
85 89 f, F, ;, <comma> - search by first character in filename. f, F, ;, <comma> - search by first character in filename.
86 90
 
... ... The basic vi key bindings are used to move through the files and popup
128 132 :ch[ange] - create a menu window to alter a files properties. :ch[ange] - create a menu window to alter a files properties.
129 133 :cd - change directory :cd - change directory
130 134 :cd ~/bin :cd ~/bin
135 :popd - remove pane directories from stack.
136 :pushd directory - add pane directories to stack.
131 137 :s[creen] toggles whether to use the screen program or not. :s[creen] toggles whether to use the screen program or not.
132 138 :sh[ell] will start a shell :sh[ell] will start a shell
133 139 :so[rt] - popup menu of different sorting methods :so[rt] - popup menu of different sorting methods
 
... ... Reserved :commands
260 266 pw pw
261 267 pwd pwd
262 268 q q
269 popd
270 pushd
263 271 s s
264 272 screen screen
265 273 sh sh
File src/vifm.1 changed (mode: 100644) (index dd7fc5613..99fe6ddd1)
1 1
2 .TH vifm 1 "January 08, 2009" "" "Vifm"
2 .TH vifm 1 "May 20, 2011" "" "Vifm"
3 3
4 4 .SH NAME .SH NAME
5 5 vifm [OPTION] vifm [OPTION]
6 6 .SH DESCRIPTION .SH DESCRIPTION
7 Vifm is a 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.
7 Vifm is a 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.
8 8 .SH OPTIONS .SH OPTIONS
9 9 .TP .TP
10 10 .BI <path> .BI <path>
 
... ... moves up.
27 27 .BI l .BI l
28 28 moves into a directory or launches a file. moves into a directory or launches a file.
29 29 .TP .TP
30 .BI i
31 opens file with associated program even if it's an executable.
32 .TP
30 33 .BI h .BI h
31 34 moves up one directory. moves up one directory.
32 35 .TP .TP
 
... ... move to the bottom of the file list.
39 42 .BI 14G .BI 14G
40 43 move to the 14th file in the list. move to the 14th file in the list.
41 44 .TP .TP
45 .BI H
46 move to the first file in the window.
47 .TP
48 .BI M
49 move to the file in the middle of the window.
50 .TP
51 .BI L
52 move to the last file in the window.
53 .TP
42 54 .BI "Ctrl-F or Page Down" .BI "Ctrl-F or Page Down"
43 55 move forward one page. move forward one page.
44 56 .TP .TP
45 57 .BI "Ctrl-B or Page Up" .BI "Ctrl-B or Page Up"
46 58 move back one page. move back one page.
47 59 .TP .TP
60 .BI Ctrl-D
61 jump back one half page.
62 .TP
63 .BI Ctrl-U
64 jump forward one half page.
65 .TP
66 .BI Ctrl-O
67 go backward through history.
68 .TP
69 .BI Ctrl-I
70 go forward through history.
71 .TP
48 72 .BI 25% .BI 25%
49 73 move to the file that is 25 percent from the top of the list. move to the file that is 25 percent from the top of the list.
50 74 .TP .TP
 
... ... move to the 34th file.
54 78 .BI "Space Bar or Tab Key" .BI "Space Bar or Tab Key"
55 79 toggles between the two file lists. toggles between the two file lists.
56 80 .TP .TP
57 .BI Ctrl+G
81 .BI Ctrl-G
58 82 creates a window showing detailed information about the current file. creates a window showing detailed information about the current file.
83 .TP
84 .BI ga
85 calculate directory size.
86 .SH Scrolling panes
87 .TP
88 .BI zt
89 redraw pane with file in top of list.
90 .TP
91 .BI zz
92 redraw pane with file in center of list.
93 .TP
94 .BI zb
95 redraw pane with file in bottom of list.
96 .TP
97 .BI Ctrl-E
98 scroll pane one line down.
99 .TP
100 .BI Ctrl-Y
101 scroll pane one line up.
102 .SH Pane manipulation
103 .TP
104 .BI "Ctrl-W H"
105 switch to the left pane.
106 .TP
107 .BI "Ctrl-W L"
108 switch to the right pane.
109 .TP
110 .BI "Ctrl-W O"
111 shortcut for :only
112 .TP
113 .BI "Ctrl-W V"
114 shortcut for :split
115 .TP
116 .BI "Ctrl-W W"
117 switch to other pane.
118 .TP
119 .BI "Ctrl+W X"
120 exchange panes.
59 121 .SH Marks .SH Marks
60 122 .TP .TP
61 Marks are set the same way as they are in vi.
123 Marks are set the same way as they are in vi.
62 124 .TP .TP
63 125 .BI m[a-z][A-Z][0-9] .BI m[a-z][A-Z][0-9]
64 126 to set a mark for the current file. to set a mark for the current file.
 
... ... moves to the file set for the mark.
68 130 .SH Searching .SH Searching
69 131 .TP .TP
70 132 .BI "/regular expression pattern[Return]" .BI "/regular expression pattern[Return]"
71 will highlight all files matching the pattern.
133 will highlight all files matching the pattern and go to the next match.
134 .TP
135 .BI "?regular expression pattern[Return]"
136 will highlight all files matching the pattern and go to the previous match.
72 137 .TP .TP
73 138 .BI N .BI N
74 find the previous match.
139 find the previous match of / or ?.
75 140 .TP .TP
76 141 .BI n .BI n
77 find the next match.
142 find the next match of / or ?.
143 .TP
144 .BI f[character]
145 search forward for file with [character] as first character in name.
146 .TP
147 .BI F[character]
148 search backward for file with [character] as first character in name.
149 .TP
150 .BI ;
151 find the next match of f or F.
152 .TP
153 .BI ,
154 find the previous match of f or F.
78 155 .SH Additional Normal Mode Keys .SH Additional Normal Mode Keys
79 156 .TP .TP
80 .BI [count]dd
157 .BI cw
158 rename a file.
159 .TP
160 .BI cW
161 change only name of file (without extension).
162 .TP
163 .BI co
164 change file owner.
165 .TP
166 .BI cg
167 change file group.
168 .TP
169 .BI cp
170 change file permissions.
171 .TP
172 .BI "[count]d[selector] or [count]dd in compatibility mode"
81 173 moves the selected files to the trash directory. moves the selected files to the trash directory.
82 174 .TP .TP
83 .BI [count]yy
175 .BI [count]D[selector]
176 removes the selected files.
177 .TP
178 .BI "[count]y[selector] or [count]yy in compatibility mode"
84 179 yanks the selected files. yanks the selected files.
85 180 .TP .TP
86 181 .BI p .BI p
87 182 puts the last yanked or deleted files. puts the last yanked or deleted files.
88 183 .TP .TP
184 .BI P
185 moves the last yanked files.
186 .TP
89 187 .BI t .BI t
90 188 tag the current file. tag the current file.
91 189 .TP .TP
92 190 .BI v .BI v
93 191 start visual mode. start visual mode.
192 .TP
193 .BI ZQ
194 same as :quit
195 .TP
196 .BI ZZ
197 same as :wq
198 .SH Selectors
199 .TP
200 Most of selectors are like vi motions: j, k, gg, G, H, L and M. But there are some additional ones.
201 .TP
202 .BI a
203 all files in current view.
204 .TP
205 .BI s
206 selected files.
207 .TP
208 .BI S
209 all files except selected.
94 210 .SH Commands .SH Commands
95 211 .TP .TP
96 212 .BI :com .BI :com
 
... ... will remove the command_name user command
106 222 will filter all the files out of the directory listing that match the regular expression. will filter all the files out of the directory listing that match the regular expression.
107 223 .TP .TP
108 224 .BI ":fil /\.o$" .BI ":fil /\.o$"
109 would filter all files ending in .o from the filelist.
225 would filter all files ending in .o from the filelist.
110 226 .TP .TP
111 227 .BI :empty .BI :empty
112 228 will permanently remove 'rm -fr' files from the Trash directory. will permanently remove 'rm -fr' files from the Trash directory.
 
... ... show the help file.
147 263 .BI :marks .BI :marks
148 264 create a popup menu of bookmarks. create a popup menu of bookmarks.
149 265 .TP .TP
266 .BI ":map :nmap :cmap and :vmap"
267 map one key sequence to another in different modes.
268 .TP
150 269 .BI :screen .BI :screen
151 270 toggles whether or not to use the screen program. toggles whether or not to use the screen program.
152 271 .TP .TP
153 272 .BI :split .BI :split
154 splits the window to show both file directories
273 splits the window to show both file directories.
155 274 .TP .TP
156 275 .BI :only .BI :only
157 changes the window to show only the current file directory
276 changes the window to show only the current file directory.
277 .TP
278 .BI :pushd
279 add pane directories to stack.
280 .TP
281 .BI :popd
282 remove pane directories from stack.
283 .TP
284 .BI :wq
285 exit vifm saving pane locations.
286 .TP
287 .BI ":w or :write"
288 write config file.
158 289 .SH File Filters .SH File Filters
159 The basic vim folding key bindings are used for filtering files.
290 The basic vim folding key bindings are used for filtering files.
160 291 .TP .TP
161 292 .BI zO .BI zO
162 293 Show the filtered files. Show the filtered files.
File src/vifm.txt changed (mode: 100644) (index 95ccb8d3e..800e7eccf)
... ... gg will move to the first line of the file list.
138 138 G will move to the last line in the file list. G will move to the last line in the file list.
139 139
140 140 H - move to the first file in the window. H - move to the first file in the window.
141 L - move to the last file in the window.
142 141 M - move to the file in the middle of the window. M - move to the file in the middle of the window.
142 L - move to the last file in the window.
143 143
144 144 Space or Tab to switch file lists. Space or Tab to switch file lists.
145 145
 
... ... Ctrl-w h/Ctrl-w l - switch to left or right pane.
195 195 Ctrl-w Ctrl-w - switch to other pane. Ctrl-w Ctrl-w - switch to other pane.
196 196 Ctrl-w o - shortcut for :only Ctrl-w o - shortcut for :only
197 197 Ctrl-w v - shortcut for :split Ctrl-w v - shortcut for :split
198 Ctrl-w x - exchange panes
198 199 Ctrl-e/Ctrl-y - scroll pane one line down/up. Ctrl-e/Ctrl-y - scroll pane one line down/up.
199 200
200 201 -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master