about summary refs log tree commit diff stats
path: root/ranger/defaults/rc.conf
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2011-09-30 12:10:00 +0200
committerhut <hut@lavabit.com>2011-09-30 16:43:28 +0200
commitf93725f5ff3890c99c65f5fa2998d9eeda6dd16b (patch)
tree17ea7d9a9057fef6a9d55d00d3fecef9b4391ee6 /ranger/defaults/rc.conf
parent41df56beff2785174b4b466c8cc39159a79eaedc (diff)
downloadranger-f93725f5ff3890c99c65f5fa2998d9eeda6dd16b.tar.gz
Extended rc.conf
Diffstat (limited to 'ranger/defaults/rc.conf')
-rw-r--r--ranger/defaults/rc.conf293
1 files changed, 276 insertions, 17 deletions
diff --git a/ranger/defaults/rc.conf b/ranger/defaults/rc.conf
index 59401e3b..cb90a38f 100644
--- a/ranger/defaults/rc.conf
+++ b/ranger/defaults/rc.conf
@@ -1,21 +1,280 @@
-# VIM
-map x break_shit
-map gg eval fm.move(to=0)
-map G  eval fm.move(to=-1)
-map : eval fm.open_console()
-map j eval fm.move(down=1)
-map k eval fm.move(up=1)
-map h eval fm.move(left=1)
-map l eval fm.move(right=1)
-map q quit
+# ===================================================================
+# == Define keys for the browser
+# ===================================================================
+
+# Basic
 map Q quit
+map q quit
+map ZZ quit
+map ZQ quit
 
-cmap <ESC> quit
+map R reload_cwd
+map <C-r> reset
+map <C-l> redraw_window
+map H history_go -1
+map L history_go 1
+map <C-c> abort
 
-map R eval fm.reload_cwd()
-map <c-r> eval fm.reset()
-map <c-l> eval fm.redraw_window()
-map H eval fm.history_go(-1)
-map L eval fm.history_go(1)
-map <c-c> eval fm.abort()
+map i display_file
 map ? help
+map W display_log
+map w eval fm.ui.open_taskview()
+map S shell $SHELL
+
+map :  console
+map ;  console
+map !  console shell 
+map @  console -p6 shell  %s
+map #  console shell -p 
+map s  console shell 
+map r  console open_with 
+map f  console find 
+map cd console cd 
+
+# Tagging / Marking
+map t tag_toggle
+map T tag_remove
+
+# VIM-like
+map gg    move to=0
+map G     move to=-1
+map j     move down=1
+map k     move up=1
+map h     move left=1
+map l     move right=1
+map J     move down=0.5 pages=True
+map K     move up=0.5   pages=True
+map <C-d> move down=0.5 pages=True
+map <C-u> move up=0.5   pages=True
+map <C-f> move down=1   pages=True
+map <C-b> move up=1     pages=True
+
+# For the nostalgics: Midnight Commander bindings
+map <F1> help
+map <F3> display_file
+map <F4> edit
+map <F5> copy
+map <F6> cut
+map <F7> console mkdir 
+map <F8> console delete seriously? 
+map <F10> exit
+
+# In case you work on a keyboard with dvorak layout
+map <UP>       move down=1
+map <LEFT>     move up=1
+map <LEFT>     move left=1
+map <RIGHT>    move right=1
+map <HOME>     move to=0
+map <END>      move to=-1
+map <PAGEDOWN> move down=1   pages=True
+map <PAGEUP>   move up=1     pages=True
+map <CR>       move right=1
+map <DEL>      console delete
+map <INS>      console touch
+
+# Jumping around
+map ]     move_parent 1
+map [     move_parent -1
+map }     traverse
+
+map gh cd ~
+map ge cd /etc
+map gu cd /usr
+map gd cd /dev
+map gl cd -r .
+map gL cd -r %f
+map go cd /opt
+map gv cd /var
+map gm cd /media
+map gM cd /mnt
+map gs cd /srv
+map gR eval fm.cd(ranger.RANGERDIR)
+
+# External Programs
+map du shell -p du --max-depth=1 -h --apparent-size
+map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
+map yp shell -d echo -n %d/%f | xsel -i
+map yd shell -d echo -n %d    | xsel -i
+map yn shell -d echo -n %%f   | xsel -i
+
+# Filesystem Operations
+map =  chmod
+
+map cw console rename 
+map A  eval fm.open_console('rename ' + fm.env.cf.basename)
+map I  eval fm.open_console('rename ' + fm.env.cf.basename, position=7)
+
+map pp paste
+map po paste overwrite=True
+map pl paste_symlink relative=False
+map pL paste_symlink relative=True
+map phl paste_hardlink
+
+map dd cut
+map ud uncut
+map da cut mode=add
+map dr cut mode=remove
+
+map yy copy
+map uy uncut
+map ya copy mode=add
+map yr copy mode=remove
+
+# Temporary workarounds
+map dgg eval fm.cut(dirarg=dict(to=0))
+map dG  eval fm.cut(dirarg=dict(to=-1))
+map dj  eval fm.cut(dirarg=dict(down=1))
+map dk  eval fm.cut(dirarg=dict(up=1))
+map ygg eval fm.copy(dirarg=dict(to=0))
+map yG  eval fm.copy(dirarg=dict(to=-1))
+map yj  eval fm.copy(dirarg=dict(down=1))
+map yk  eval fm.copy(dirarg=dict(up=1))
+
+# Searching
+map /  console search 
+map n  search_next
+map N  search_next forward=False
+map ct search_next order=tag
+map cs search_next order=size
+map ci search_next order=mimetype
+map cc search_next order=ctime
+map cm search_next order=mtime
+map ca search_next order=atime
+
+# Tabs
+map <C-n>   chain tab_new; cd ~
+map <C-w>   tab_close
+map <TAB>   tab_move 1
+map <S-TAB> tab_move -1
+map gn      chain tab_new; cd ~
+map gc      tab_close
+map gt      tab_move 1
+map gT      tab_move -1
+map <a-1>   tab_open 1
+map <a-2>   tab_open 2
+map <a-3>   tab_open 3
+map <a-4>   tab_open 4
+map <a-5>   tab_open 5
+map <a-6>   tab_open 6
+map <a-7>   tab_open 7
+map <a-8>   tab_open 8
+map <a-9>   tab_open 9
+
+# Sorting
+map or eval fm.settings.sort_reverse ^= True
+map os chain set sort=size;      set sort_reverse=False
+map ob chain set sort=basename;  set sort_reverse=False
+map on chain set sort=natural;   set sort_reverse=False
+map om chain set sort=mtime;     set sort_reverse=False
+map oc chain set sort=ctime;     set sort_reverse=False
+map oa chain set sort=atime;     set sort_reverse=False
+map ot chain set sort=type;      set sort_reverse=False
+
+map oS chain set sort=size;      set sort_reverse=True
+map oB chain set sort=basename;  set sort_reverse=True
+map oN chain set sort=natural;   set sort_reverse=True
+map oM chain set sort=mtime;     set sort_reverse=True
+map oC chain set sort=ctime;     set sort_reverse=True
+map oA chain set sort=atime;     set sort_reverse=True
+map oT chain set sort=type;      set sort_reverse=True
+
+# Settings
+map zc    toggle_option collapse_preview
+map zd    toggle_option sort_directories_first
+map zh    toggle_option show_hidden
+map <C-h> toggle_option show_hidden
+map zi    toggle_option flushinput
+map zm    toggle_option mouse_enabled
+map zp    toggle_option preview_files
+map zP    toggle_option preview_directories
+map zs    toggle_option sort_case_insensitive
+map zv    toggle_option use_preview_script
+map zf    console filter 
+
+# Beware. I haven't figured out how to make these keybindings pretty yet:
+
+# map +ow shell -d chmod o+w (one mapping for each combination)
+eval import itertools; [cmd("map +%s%s shell -d chmod %s+%s %%s" % (mode+mode)) for mode in itertools.product("ugoa", "rwxXst")]
+
+# map -ow shell -d chmod o+w (one mapping for each combination)
+eval import itertools; [cmd("map -%s%s shell -d chmod %s-%s %%s" % (mode+mode)) for mode in itertools.product("ugoa", "rwxXst")]
+
+# map "x tag_toggle tag=x (one mapping for each key)
+eval -q [cmd('map "%s eval fm.tag_toggle(tag=chr(%d))' % (chr(s),s)) for s in range(33, 127)]
+
+
+# ===================================================================
+# == Define keys for the console
+# ===================================================================
+
+# Basic
+cmap <tab>   eval fm.ui.console.tab()
+cmap <s-tab> eval fm.ui.console.tab(-1)
+cmap <C-c>   eval fm.ui.console.close()
+cmap <C-d>   eval fm.ui.console.close()
+cmap <ESC>   eval fm.ui.console.close()
+cmap <CR>    eval fm.ui.console.execute()
+cmap <C-j>   eval fm.ui.console.execute()
+cmap <C-l>   redraw_window
+
+# This special expression allows typing in numerals:
+cmap <allow_quantifiers> false
+
+# Move around
+cmap <left>  eval fm.ui.console.move(left=1)
+cmap <right> eval fm.ui.console.move(right=1)
+cmap <home>  eval fm.ui.console.move(right=0, absolute=True)
+cmap <end>   eval fm.ui.console.move(right=-1, absolute=True)
+cmap <up>    eval fm.ui.console.history_move(-1)
+cmap <down>  eval fm.ui.console.history_move(1)
+
+# And of course the emacs way
+cmap <C-b>   eval fm.ui.console.move(left=1)
+cmap <C-f>   eval fm.ui.console.move(right=1)
+cmap <C-a>   eval fm.ui.console.move(right=0, absolute=True)
+cmap <C-e>   eval fm.ui.console.move(right=-1, absolute=True)
+cmap <C-p>   eval fm.ui.console.history_move(-1)
+cmap <C-n>   eval fm.ui.console.history_move(1)
+
+# Line Editing
+# Note: There are multiple ways to express backspaces.  <backspace> (code 263)
+# and <backspace2> (code 127).  To be sure, use both.
+cmap <backspace>  eval fm.ui.console.delete(-1)
+cmap <backspace2> eval fm.ui.console.delete(-1)
+cmap <delete>     eval fm.ui.console.delete(0)
+cmap <C-h>        eval fm.ui.console.delete(-1)
+cmap <C-d>        eval fm.ui.console.delete(0)
+cmap <C-w>        eval fm.ui.console.delete_word()
+cmap <C-k>        eval fm.ui.console.delete_rest(1)
+cmap <C-u>        eval fm.ui.console.delete_rest(-1)
+cmap <C-y>        eval fm.ui.console.paste()
+
+
+# ===================================================================
+# == Taskview Keybindings
+# ===================================================================
+
+# Movement
+tmap j eval -q fm.ui.taskview.move(down=1)
+tmap k eval -q fm.ui.taskview.move(up=1)
+tmap gg eval -q fm.ui.taskview.move(down=0, absolute=True)
+tmap G eval -q fm.ui.taskview.move(down=-1, absolute=True)
+tmap <down> eval -q fm.ui.taskview.move(down=1)
+tmap <up> eval -q fm.ui.taskview.move(up=1)
+tmap <home> eval -q fm.ui.taskview.move(down=0, absolute=True)
+tmap <end> eval -q fm.ui.taskview.move(down=-1, absolute=True)
+
+# Changing priority and deleting tasks
+tmap J eval -q fm.ui.taskview.task_move(-1)
+tmap K eval -q fm.ui.taskview.task_move(0)
+tmap dd eval -q fm.ui.taskview.task_remove()
+tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
+tmap <pageup> eval -q fm.ui.taskview.task_move(0)
+tmap <delete> eval -q fm.ui.taskview.task_remove()
+
+# A bunch of aliases for closing
+tmap w eval -q fm.ui.close_taskview()
+tmap q eval -q fm.ui.close_taskview()
+tmap Q eval -q fm.ui.close_taskview()
+tmap <esc> eval -q fm.ui.close_taskview()
+tmap <c-c> eval -q fm.ui.close_taskview()