Commit | Line | Data |
---|---|---|
1e76c1da AB |
1 | # =================================================================== |
2 | # This file contains the default startup commands for ranger. | |
3 | # To change them, it is recommended to create the file | |
4 | # ~/.config/ranger/rc.conf and add your custom commands there. | |
5 | # | |
6 | # If you copy this whole file there, you may want to set the environment | |
7 | # variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. | |
8 | # | |
9 | # The purpose of this file is mainly to define keybindings and settings. | |
10 | # For running more complex python code, please create a plugin in "plugins/" or | |
11 | # a command in "commands.py". | |
12 | # | |
13 | # Each line is a command that will be run before the user interface | |
14 | # is initialized. As a result, you can not use commands which rely | |
15 | # on the UI such as :delete or :mark. | |
16 | # =================================================================== | |
17 | ||
18 | # =================================================================== | |
19 | # == Options | |
20 | # =================================================================== | |
21 | ||
22 | # How many columns are there, and what are their relative widths? | |
23 | set column_ratios 1,3,4 | |
24 | ||
25 | # Which files should be hidden? (regular expression) | |
26 | set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ | |
27 | ||
28 | # Show hidden files? You can toggle this by typing 'zh' | |
29 | set show_hidden false | |
30 | ||
31 | # Ask for a confirmation when running the "delete" command? | |
32 | # Valid values are "always" (default), "never", "multiple" | |
33 | # With "multiple", ranger will ask only if you delete multiple files at once. | |
34 | set confirm_on_delete multiple | |
35 | ||
36 | # Which script is used to generate file previews? | |
37 | # ranger ships with scope.sh, a script that calls external programs (see | |
38 | # README for dependencies) to preview images, archives, etc. | |
39 | set preview_script ~/.config/ranger/scope.sh | |
40 | ||
41 | # Use the external preview script or display simple plain text previews? | |
42 | set use_preview_script true | |
43 | ||
44 | # Open all images in this directory when running certain image viewers | |
45 | # like feh or sxiv? You can still open selected files by marking them. | |
46 | set open_all_images true | |
47 | ||
48 | # Be aware of version control systems and display information. | |
49 | set vcs_aware false | |
50 | ||
51 | # State of the three backends git, hg, bzr. The possible states are | |
52 | # disabled, local (only show local info), enabled (show local and remote | |
53 | # information). | |
54 | set vcs_backend_git enabled | |
55 | set vcs_backend_hg disabled | |
56 | set vcs_backend_bzr disabled | |
57 | ||
58 | # Preview images in full color with the external command "w3mimgpreview"? | |
59 | # This requires the console web browser "w3m" and a supported terminal. | |
60 | # It has been successfully tested with "xterm" and "urxvt" without tmux. | |
61 | set preview_images true | |
62 | ||
63 | # Use a unicode "..." character to mark cut-off filenames? | |
64 | set unicode_ellipsis false | |
65 | ||
66 | # Show dotfiles in the bookmark preview box? | |
67 | set show_hidden_bookmarks true | |
68 | ||
69 | # Which colorscheme to use? These colorschemes are available by default: | |
70 | # default, jungle, snow | |
71 | set colorscheme default | |
72 | ||
73 | # Preview files on the rightmost column? | |
74 | # And collapse (shrink) the last column if there is nothing to preview? | |
75 | set preview_files true | |
76 | set preview_directories true | |
77 | set collapse_preview true | |
78 | ||
79 | # Save the console history on exit? | |
80 | set save_console_history true | |
81 | ||
82 | # Draw the status bar on top of the browser window (default: bottom) | |
83 | set status_bar_on_top false | |
84 | ||
85 | # Draw a progress bar in the status bar which displays the average state of all | |
86 | # currently running tasks which support progress bars? | |
87 | set draw_progress_bar_in_status_bar true | |
88 | ||
89 | # Draw borders around columns? | |
90 | set draw_borders true | |
91 | ||
92 | # Display the directory name in tabs? | |
93 | set dirname_in_tabs false | |
94 | ||
95 | # Enable the mouse support? | |
96 | set mouse_enabled true | |
97 | ||
98 | # Display the file size in the main column or status bar? | |
99 | set display_size_in_main_column true | |
100 | set display_size_in_status_bar true | |
101 | ||
102 | # Display files tags in all columns or only in main column? | |
103 | set display_tags_in_all_columns true | |
104 | ||
105 | # Set a title for the window? | |
106 | set update_title false | |
107 | ||
108 | # Set the title to "ranger" in the tmux program? | |
109 | set update_tmux_title false | |
110 | ||
111 | # Shorten the title if it gets long? The number defines how many | |
112 | # directories are displayed at once, 0 turns off this feature. | |
113 | set shorten_title 3 | |
114 | ||
115 | # Abbreviate $HOME with ~ in the titlebar (first line) of ranger? | |
116 | set tilde_in_titlebar false | |
117 | ||
118 | # How many directory-changes or console-commands should be kept in history? | |
119 | set max_history_size 20 | |
120 | set max_console_history_size 50 | |
121 | ||
122 | # Try to keep so much space between the top/bottom border when scrolling: | |
123 | set scroll_offset 8 | |
124 | ||
125 | # Flush the input after each key hit? (Noticable when ranger lags) | |
126 | set flushinput true | |
127 | ||
128 | # Padding on the right when there's no preview? | |
129 | # This allows you to click into the space to run the file. | |
130 | set padding_right true | |
131 | ||
132 | # Save bookmarks (used with mX and `X) instantly? | |
133 | # This helps to synchronize bookmarks between multiple ranger | |
134 | # instances but leads to *slight* performance loss. | |
135 | # When false, bookmarks are saved when ranger is exited. | |
136 | set autosave_bookmarks true | |
137 | ||
138 | # You can display the "real" cumulative size of directories by using the | |
139 | # command :get_cumulative_size or typing "dc". The size is expensive to | |
140 | # calculate and will not be updated automatically. You can choose | |
141 | # to update it automatically though by turning on this option: | |
142 | set autoupdate_cumulative_size false | |
143 | ||
144 | # Turning this on makes sense for screen readers: | |
145 | set show_cursor false | |
146 | ||
147 | # One of: size, basename, mtime, type | |
148 | set sort natural | |
149 | ||
150 | # Additional sorting options | |
151 | set sort_reverse false | |
152 | set sort_case_insensitive true | |
153 | set sort_directories_first true | |
154 | ||
155 | # Enable this if key combinations with the Alt Key don't work for you. | |
156 | # (Especially on xterm) | |
157 | set xterm_alt_key false | |
158 | ||
159 | # =================================================================== | |
160 | # == Local Options | |
161 | # =================================================================== | |
162 | # You can set local options that only affect a single directory. | |
163 | ||
164 | # Examples: | |
165 | # setlocal path=~/downloads sort mtime | |
166 | ||
167 | # =================================================================== | |
168 | # == Command Aliases in the Console | |
169 | # =================================================================== | |
170 | ||
171 | alias e edit | |
172 | alias q quit | |
173 | alias q! quitall | |
174 | alias qall quitall | |
175 | alias setl setlocal | |
176 | ||
177 | alias filter scout -prt | |
178 | alias find scout -aet | |
179 | alias mark scout -mr | |
180 | alias unmark scout -Mr | |
181 | alias search scout -rs | |
182 | alias search_inc scout -rts | |
183 | alias travel scout -aefiklst | |
184 | ||
185 | # =================================================================== | |
186 | # == Define keys for the browser | |
187 | # =================================================================== | |
188 | ||
189 | # Basic | |
190 | map Q quit! | |
191 | map q quit | |
192 | copymap q ZZ ZQ | |
193 | ||
194 | map R reload_cwd | |
195 | map <C-r> reset | |
196 | map <C-l> redraw_window | |
197 | map <C-c> abort | |
198 | map <esc> change_mode normal | |
199 | ||
200 | map i display_file | |
201 | map ? help | |
202 | map W display_log | |
203 | map w taskview_open | |
204 | map S shell $SHELL | |
205 | ||
206 | map : console | |
207 | map ; console | |
208 | map ! console shell | |
209 | map @ console -p6 shell %%s | |
210 | map # console shell -p | |
211 | map s console shell | |
212 | map r chain draw_possible_programs; console open_with | |
213 | map f console find | |
214 | map cd console cd | |
215 | ||
216 | # Tagging / Marking | |
217 | map t tag_toggle | |
218 | map ut tag_remove | |
219 | map "<any> tag_toggle tag=%any | |
220 | map <Space> mark_files toggle=True | |
221 | map v mark_files all=True toggle=True | |
222 | map uv mark_files all=True val=False | |
223 | map V toggle_visual_mode | |
224 | map uV toggle_visual_mode reverse=True | |
225 | ||
226 | # For the nostalgics: Midnight Commander bindings | |
227 | map <F1> help | |
228 | map <F3> display_file | |
229 | map <F4> edit | |
230 | map <F5> copy | |
231 | map <F6> cut | |
232 | map <F7> console mkdir | |
233 | map <F8> console delete | |
234 | map <F10> exit | |
235 | ||
236 | # In case you work on a keyboard with dvorak layout | |
237 | map <UP> move up=1 | |
238 | map <DOWN> move down=1 | |
239 | map <LEFT> move left=1 | |
240 | map <RIGHT> move right=1 | |
241 | map <HOME> move to=0 | |
242 | map <END> move to=-1 | |
243 | map <PAGEDOWN> move down=1 pages=True | |
244 | map <PAGEUP> move up=1 pages=True | |
245 | map <CR> move right=1 | |
246 | map <DELETE> console delete | |
247 | map <INSERT> console touch | |
248 | ||
249 | # VIM-like | |
250 | copymap <UP> k | |
251 | copymap <DOWN> j | |
252 | copymap <LEFT> h | |
253 | copymap <RIGHT> l | |
254 | copymap <HOME> gg | |
255 | copymap <END> G | |
256 | copymap <PAGEDOWN> <C-F> | |
257 | copymap <PAGEUP> <C-B> | |
258 | ||
259 | map J move down=0.5 pages=True | |
260 | map K move up=0.5 pages=True | |
261 | copymap J <C-D> | |
262 | copymap K <C-U> | |
263 | ||
264 | # Jumping around | |
265 | map H history_go -1 | |
266 | map L history_go 1 | |
267 | map ] move_parent 1 | |
268 | map [ move_parent -1 | |
269 | map } traverse | |
270 | ||
271 | map gh cd ~ | |
272 | map ge cd /etc | |
273 | map gu cd /usr | |
274 | map gd cd /dev | |
275 | map gl cd -r . | |
276 | map gL cd -r %f | |
277 | map go cd /opt | |
278 | map gv cd /var | |
279 | map gm cd /media | |
280 | map gM cd /mnt | |
281 | map gs cd /srv | |
282 | map gr cd / | |
283 | map gR eval fm.cd(ranger.RANGERDIR) | |
284 | map g/ cd / | |
285 | map g? cd /usr/share/doc/ranger | |
286 | ||
287 | # External Programs | |
288 | map E edit | |
289 | map du shell -p du --max-depth=1 -h --apparent-size | |
290 | map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh | |
291 | map yp shell -d echo -n %d/%f | xsel -i | |
292 | map yd shell -d echo -n %d | xsel -i | |
293 | map yn shell -d echo -n %f | xsel -i | |
294 | ||
295 | # Filesystem Operations | |
296 | map = chmod | |
297 | ||
298 | map cw console rename | |
299 | map A eval fm.open_console('rename ' + fm.thisfile.basename) | |
300 | map I eval fm.open_console('rename ' + fm.thisfile.basename, position=7) | |
301 | ||
302 | map pp paste | |
303 | map po paste overwrite=True | |
304 | map pl paste_symlink relative=False | |
305 | map pL paste_symlink relative=True | |
306 | map phl paste_hardlink | |
307 | map pht paste_hardlinked_subtree | |
308 | ||
309 | map dd cut | |
310 | map ud uncut | |
311 | map da cut mode=add | |
312 | map dr cut mode=remove | |
313 | ||
314 | map yy copy | |
315 | map uy uncut | |
316 | map ya copy mode=add | |
317 | map yr copy mode=remove | |
318 | ||
319 | # Temporary workarounds | |
320 | map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) | |
321 | map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) | |
322 | map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) | |
323 | map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) | |
324 | map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) | |
325 | map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) | |
326 | map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) | |
327 | map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) | |
328 | ||
329 | # Searching | |
330 | map / console search | |
331 | map n search_next | |
332 | map N search_next forward=False | |
333 | map ct search_next order=tag | |
334 | map cs search_next order=size | |
335 | map ci search_next order=mimetype | |
336 | map cc search_next order=ctime | |
337 | map cm search_next order=mtime | |
338 | map ca search_next order=atime | |
339 | ||
340 | # Tabs | |
341 | map <C-n> tab_new ~ | |
342 | map <C-w> tab_close | |
343 | map <TAB> tab_move 1 | |
344 | map <S-TAB> tab_move -1 | |
345 | map <A-Right> tab_move 1 | |
346 | map <A-Left> tab_move -1 | |
347 | map gt tab_move 1 | |
348 | map gT tab_move -1 | |
349 | map gn tab_new ~ | |
350 | map gc tab_close | |
351 | map uq tab_restore | |
352 | map <a-1> tab_open 1 | |
353 | map <a-2> tab_open 2 | |
354 | map <a-3> tab_open 3 | |
355 | map <a-4> tab_open 4 | |
356 | map <a-5> tab_open 5 | |
357 | map <a-6> tab_open 6 | |
358 | map <a-7> tab_open 7 | |
359 | map <a-8> tab_open 8 | |
360 | map <a-9> tab_open 9 | |
361 | ||
362 | # Sorting | |
363 | map or toggle_option sort_reverse | |
364 | map os chain set sort=size; set sort_reverse=False | |
365 | map ob chain set sort=basename; set sort_reverse=False | |
366 | map on chain set sort=natural; set sort_reverse=False | |
367 | map om chain set sort=mtime; set sort_reverse=False | |
368 | map oc chain set sort=ctime; set sort_reverse=False | |
369 | map oa chain set sort=atime; set sort_reverse=False | |
370 | map ot chain set sort=type; set sort_reverse=False | |
371 | ||
372 | map oS chain set sort=size; set sort_reverse=True | |
373 | map oB chain set sort=basename; set sort_reverse=True | |
374 | map oN chain set sort=natural; set sort_reverse=True | |
375 | map oM chain set sort=mtime; set sort_reverse=True | |
376 | map oC chain set sort=ctime; set sort_reverse=True | |
377 | map oA chain set sort=atime; set sort_reverse=True | |
378 | map oT chain set sort=type; set sort_reverse=True | |
379 | ||
380 | map dc get_cumulative_size | |
381 | ||
382 | # Settings | |
383 | map zc toggle_option collapse_preview | |
384 | map zd toggle_option sort_directories_first | |
385 | map zh toggle_option show_hidden | |
386 | map <C-h> toggle_option show_hidden | |
387 | map zi toggle_option flushinput | |
388 | map zm toggle_option mouse_enabled | |
389 | map zp toggle_option preview_files | |
390 | map zP toggle_option preview_directories | |
391 | map zs toggle_option sort_case_insensitive | |
392 | map zu toggle_option autoupdate_cumulative_size | |
393 | map zv toggle_option use_preview_script | |
394 | map zf console filter | |
395 | ||
396 | # Bookmarks | |
397 | map `<any> enter_bookmark %any | |
398 | map '<any> enter_bookmark %any | |
399 | map m<any> set_bookmark %any | |
400 | map um<any> unset_bookmark %any | |
401 | ||
402 | map m<bg> draw_bookmarks | |
403 | copymap m<bg> um<bg> `<bg> '<bg> | |
404 | ||
405 | # Generate all the chmod bindings with some python help: | |
406 | eval for arg in "rwxXst": cmd("map +u{0} shell -d chmod u+{0} %s".format(arg)) | |
407 | eval for arg in "rwxXst": cmd("map +g{0} shell -d chmod g+{0} %s".format(arg)) | |
408 | eval for arg in "rwxXst": cmd("map +o{0} shell -d chmod o+{0} %s".format(arg)) | |
409 | eval for arg in "rwxXst": cmd("map +a{0} shell -d chmod a+{0} %s".format(arg)) | |
410 | eval for arg in "rwxXst": cmd("map +{0} shell -d chmod u+{0} %s".format(arg)) | |
411 | ||
412 | eval for arg in "rwxXst": cmd("map -u{0} shell -d chmod u-{0} %s".format(arg)) | |
413 | eval for arg in "rwxXst": cmd("map -g{0} shell -d chmod g-{0} %s".format(arg)) | |
414 | eval for arg in "rwxXst": cmd("map -o{0} shell -d chmod o-{0} %s".format(arg)) | |
415 | eval for arg in "rwxXst": cmd("map -a{0} shell -d chmod a-{0} %s".format(arg)) | |
416 | eval for arg in "rwxXst": cmd("map -{0} shell -d chmod u-{0} %s".format(arg)) | |
417 | ||
418 | # =================================================================== | |
419 | # == Define keys for the console | |
420 | # =================================================================== | |
421 | # Note: Unmapped keys are passed directly to the console. | |
422 | ||
423 | # Basic | |
424 | cmap <tab> eval fm.ui.console.tab() | |
425 | cmap <s-tab> eval fm.ui.console.tab(-1) | |
426 | cmap <ESC> eval fm.ui.console.close() | |
427 | cmap <CR> eval fm.ui.console.execute() | |
428 | cmap <C-l> redraw_window | |
429 | ||
430 | copycmap <ESC> <C-c> | |
431 | copycmap <CR> <C-j> | |
432 | ||
433 | # Move around | |
434 | cmap <up> eval fm.ui.console.history_move(-1) | |
435 | cmap <down> eval fm.ui.console.history_move(1) | |
436 | cmap <left> eval fm.ui.console.move(left=1) | |
437 | cmap <right> eval fm.ui.console.move(right=1) | |
438 | cmap <home> eval fm.ui.console.move(right=0, absolute=True) | |
439 | cmap <end> eval fm.ui.console.move(right=-1, absolute=True) | |
440 | ||
441 | # Line Editing | |
442 | cmap <backspace> eval fm.ui.console.delete(-1) | |
443 | cmap <delete> eval fm.ui.console.delete(0) | |
444 | cmap <C-w> eval fm.ui.console.delete_word() | |
445 | cmap <C-k> eval fm.ui.console.delete_rest(1) | |
446 | cmap <C-u> eval fm.ui.console.delete_rest(-1) | |
447 | cmap <C-y> eval fm.ui.console.paste() | |
448 | ||
449 | # And of course the emacs way | |
450 | copycmap <up> <C-p> | |
451 | copycmap <down> <C-n> | |
452 | copycmap <left> <C-b> | |
453 | copycmap <right> <C-f> | |
454 | copycmap <home> <C-a> | |
455 | copycmap <end> <C-e> | |
456 | copycmap <delete> <C-d> | |
457 | copycmap <backspace> <C-h> | |
458 | ||
459 | # Note: There are multiple ways to express backspaces. <backspace> (code 263) | |
460 | # and <backspace2> (code 127). To be sure, use both. | |
461 | copycmap <backspace> <backspace2> | |
462 | ||
463 | # This special expression allows typing in numerals: | |
464 | cmap <allow_quantifiers> false | |
465 | ||
466 | # =================================================================== | |
467 | # == Pager Keybindings | |
468 | # =================================================================== | |
469 | ||
470 | # Movement | |
471 | pmap <down> pager_move down=1 | |
472 | pmap <up> pager_move up=1 | |
473 | pmap <left> pager_move left=4 | |
474 | pmap <right> pager_move right=4 | |
475 | pmap <home> pager_move to=0 | |
476 | pmap <end> pager_move to=-1 | |
477 | pmap <pagedown> pager_move down=1.0 pages=True | |
478 | pmap <pageup> pager_move up=1.0 pages=True | |
479 | pmap <C-d> pager_move down=0.5 pages=True | |
480 | pmap <C-u> pager_move up=0.5 pages=True | |
481 | ||
482 | copypmap <UP> k <C-p> | |
483 | copypmap <DOWN> j <C-n> <CR> | |
484 | copypmap <LEFT> h | |
485 | copypmap <RIGHT> l | |
486 | copypmap <HOME> g | |
487 | copypmap <END> G | |
488 | copypmap <C-d> d | |
489 | copypmap <C-u> u | |
490 | copypmap <PAGEDOWN> n f <C-F> <Space> | |
491 | copypmap <PAGEUP> p b <C-B> | |
492 | ||
493 | # Basic | |
494 | pmap <ESC> pager_close | |
495 | copypmap <ESC> q Q i <F3> | |
496 | pmap E edit_file | |
497 | ||
498 | # =================================================================== | |
499 | # == Taskview Keybindings | |
500 | # =================================================================== | |
501 | ||
502 | # Movement | |
503 | tmap <up> taskview_move up=1 | |
504 | tmap <down> taskview_move down=1 | |
505 | tmap <home> taskview_move to=0 | |
506 | tmap <end> taskview_move to=-1 | |
507 | tmap <pagedown> taskview_move down=1.0 pages=True | |
508 | tmap <pageup> taskview_move up=1.0 pages=True | |
509 | tmap <C-d> taskview_move down=0.5 pages=True | |
510 | tmap <C-u> taskview_move up=0.5 pages=True | |
511 | ||
512 | copytmap <UP> k <C-p> | |
513 | copytmap <DOWN> j <C-n> <CR> | |
514 | copytmap <HOME> g | |
515 | copytmap <END> G | |
516 | copytmap <C-u> u | |
517 | copytmap <PAGEDOWN> n f <C-F> <Space> | |
518 | copytmap <PAGEUP> p b <C-B> | |
519 | ||
520 | # Changing priority and deleting tasks | |
521 | tmap J eval -q fm.ui.taskview.task_move(-1) | |
522 | tmap K eval -q fm.ui.taskview.task_move(0) | |
523 | tmap dd eval -q fm.ui.taskview.task_remove() | |
524 | tmap <pagedown> eval -q fm.ui.taskview.task_move(-1) | |
525 | tmap <pageup> eval -q fm.ui.taskview.task_move(0) | |
526 | tmap <delete> eval -q fm.ui.taskview.task_remove() | |
527 | ||
528 | # Basic | |
529 | tmap <ESC> taskview_close | |
530 | copytmap <ESC> q Q w <C-c> |