summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/defaults/keys.py79
1 files changed, 39 insertions, 40 deletions
diff --git a/ranger/defaults/keys.py b/ranger/defaults/keys.py
index e6b9010c..ac909a6d 100644
--- a/ranger/defaults/keys.py
+++ b/ranger/defaults/keys.py
@@ -48,25 +48,26 @@ def initialize_commands(command_list):
 
 	bind, hint = make_abbreviations(command_list)
 
+	# -------------------------------------------------------- movement
 	bind('j', KEY_DOWN, fm.move_pointer(relative=1))
 	bind('k', KEY_UP, fm.move_pointer(relative=-1))
 	bind('l', KEY_RIGHT, fm.move_right())
 	bind('h', KEY_LEFT, KEY_BACKSPACE, DEL, fm.move_left(1))
 
-	bind('gg', fm.move_pointer(absolute=0))
-	bind('G', fm.move_pointer(absolute=-1))
+	bind(KEY_ENTER, ctrl('j'), fm.move_right(mode=1))
+
+	bind('gg', KEY_HOME, fm.move_pointer(absolute=0))
+	bind('G', KEY_END, fm.move_pointer(absolute=-1))
 	bind('%', fm.move_pointer_by_percentage(absolute=50))
+	bind(KEY_NPAGE, ctrl('f'), fm.move_pointer_by_pages(1))
+	bind(KEY_PPAGE, ctrl('b'), fm.move_pointer_by_pages(-1))
+	bind('J', ctrl('d'), fm.move_pointer_by_pages(0.5))
+	bind('K', ctrl('u'), fm.move_pointer_by_pages(-0.5))
 
-	bind(KEY_END, fm.move_pointer(absolute=-1))
-	bind(KEY_HOME, fm.move_pointer(absolute=0))
-	bind(KEY_ENTER, ctrl('j'), fm.move_right(mode=1))
 	bind('H', fm.history_go(-1))
 	bind('L', fm.history_go(1))
-	bind('J', ctrl('d'), fm.move_pointer_by_pages(0.5))
-	bind('K', ctrl('u'), fm.move_pointer_by_pages(-0.5))
-	bind(KEY_NPAGE, ctrl('f'), fm.move_pointer_by_pages(1))
-	bind(KEY_PPAGE, ctrl('b'), fm.move_pointer_by_pages(-1))
-	bind('E', fm.edit_file())
+
+	# ----------------------------------------------- tagging / marking
 	bind('b', fm.tag_toggle())
 	bind('B', fm.tag_remove())
 
@@ -74,6 +75,7 @@ def initialize_commands(command_list):
 	bind('v', fm.mark(all=True, toggle=True))
 	bind('V', fm.mark(all=True, val=False))
 
+	# ------------------------------------------ file system operations
 	bind('yy', fm.copy())
 	bind('dd', fm.cut())
 	bind('pp', fm.paste())
@@ -81,12 +83,13 @@ def initialize_commands(command_list):
 	hint('p', 'press //p// once again to confirm pasting' \
 			', or //l// to create symlinks')
 
+	# ---------------------------------------------------- run programs
 	bind('s', fm.execute_command('bash'))
+	bind('E', fm.edit_file())
+	bind('term', fm.execute_command('x-terminal-emulator', flags='d'))
+	bind('du', fm.execute_command('du --max-depth=1 -h | less'))
 
-	bind(TAB, fm.search(order='tag'))
-
-	bind(ctrl('p'), fm.display_log())
-
+	# -------------------------------------------------- toggle options
 	hint('t', "show_//h//idden //p//review_files //d//irectories_first " \
 			"//a//uto_load_preview //c//ollapse_preview")
 	bind('th', fm.toggle_boolean_option('show_hidden'))
@@ -95,6 +98,8 @@ def initialize_commands(command_list):
 	bind('ta', fm.toggle_boolean_option('auto_load_preview'))
 	bind('tc', fm.toggle_boolean_option('collapse_preview'))
 
+	# ------------------------------------------------------------ sort
+	hint('o', 'O', "//s//ize //b//ase//n//ame //m//time //t//ype //r//everse")
 	sort_dict = {
 		's': 'size',
 		'b': 'basename',
@@ -103,35 +108,25 @@ def initialize_commands(command_list):
 		't': 'type',
 	}
 
-	# reverse if any of the two letters is capital
 	for key, val in sort_dict.items():
-		for key, is_upper in ((key.lower(), False), (key.upper(), True)):
-			bind('o' + key, fm.sort(func=val, reverse=is_upper))
+		for key, is_capital in ((key, False), (key.upper(), True)):
+			# reverse if any of the two letters is capital
+			bind('o' + key, fm.sort(func=val, reverse=is_capital))
 			bind('O' + key, fm.sort(func=val, reverse=True))
 
 	bind('or', 'Or', 'oR', 'OR', lambda arg: \
 			arg.fm.sort(reverse=not arg.fm.settings.reverse))
 
-	hint('o', 'O', "//s//ize //b//ase//n//ame //m//time //t//ype //r//everse")
-
-	def edit_name(arg):
-		cf = arg.fm.env.cf
-		if cf:
-			arg.fm.open_console(cmode.COMMAND, 'rename ' + cf.basename)
-
-	bind('i', fm.display_file())
-
-	bind('A', edit_name)
+	# ----------------------------------------------- console shortcuts
+	bind('A', lambda arg: arg.fm.open_console(cmode.COMMAND,
+		'rename ' + arg.fm.env.cf.basename))
 	bind('cw', fm.open_console(cmode.COMMAND, 'rename '))
 	bind('cd', fm.open_console(cmode.COMMAND, 'cd '))
 	bind('f', fm.open_console(cmode.COMMAND_QUICK, 'find '))
-
-	bind('term', fm.execute_command('x-terminal-emulator', flags='d'))
-	bind('du', fm.execute_command('du --max-depth=1 -h | less'))
 	bind('tf', fm.open_console(cmode.COMMAND, 'filter '))
 	hint('d', 'd//u// (disk usage) d//d// (cut)')
 
-	# key combinations which change the current directory
+	# --------------------------------------------- jump to directories
 	bind('gh', fm.enter_dir('~'))
 	bind('ge', fm.enter_dir('etc'))
 	bind('gu', fm.enter_dir('/usr'))
@@ -142,38 +137,42 @@ def initialize_commands(command_list):
 	bind('gs', fm.enter_dir('/srv'))
 	bind('gR', fm.enter_dir(RANGERDIR))
 
+	# ------------------------------------------------------- searching
+	bind('/', fm.open_console(cmode.SEARCH))
+
 	bind('n', fm.search())
 	bind('N', fm.search(forward=False))
 
+	bind(TAB, fm.search(order='tag'))
 	bind('cc', fm.search(order='ctime'))
 	bind('cm', fm.search(order='mimetype'))
 	bind('cs', fm.search(order='size'))
 	hint('c', '//c//time //m//imetype //s//ize')
 
-	# bookmarks
+	# ------------------------------------------------------- bookmarks
 	for key in ALLOWED_BOOKMARK_KEYS:
 		bind("`" + key, "'" + key, fm.enter_bookmark(key))
 		bind("m" + key, fm.set_bookmark(key))
 		bind("um" + key, fm.unset_bookmark(key))
 
-	# system functions
+	# ---------------------------------------------------- change views
+	bind('i', fm.display_file())
+	bind(ctrl('p'), fm.display_log())
+	bind('?', KEY_F1, fm.display_help())
+	bind('w', lambda arg: arg.fm.ui.open_taskview())
+
+	# ------------------------------------------------ system functions
 	system_functions(command_list)
 	bind('ZZ', fm.exit())
 	bind(ctrl('R'), fm.reset())
 	bind('R', fm.reload_cwd())
 	bind(ctrl('C'), fm.exit())
+
 	bind(':', ';', fm.open_console(cmode.COMMAND))
 	bind('>', fm.open_console(cmode.COMMAND_QUICK))
-	bind('/', fm.open_console(cmode.SEARCH))
 	bind('!', fm.open_console(cmode.OPEN))
 	bind('r', fm.open_console(cmode.OPEN_QUICK))
 
-	bind('?', KEY_F1, fm.display_help())
-
-	# definitions which require their own function:
-
-	bind('w', lambda arg: arg.fm.ui.open_taskview())
-
 	command_list.rebuild_paths()
 
 
100 settings: allow to toggle flushinput' href='/akspecs/ranger/commit/TODO?h=v1.9.0b1&id=b4934e4221ce6cf72bb8375b8a117caada47f938'>b4934e42 ^
2c1d2db0 ^
291ca616 ^
50845f37 ^
039c03ef ^
af6658b3 ^
efe2d7a3 ^
f0df3fa5 ^
a986e2bd ^

3fe38754 ^

6a8d5d23 ^
aad61455 ^
7a268c8b ^

efdc7b16 ^
636f69d3 ^
d3c262a9 ^
cf8b174e ^
e02d47ed ^
39bf5e5a ^
2e631f44 ^
f3bc52e5 ^
3a917b8a ^
ff86460b ^
2f3326a4 ^
e952d6cb ^
4be8b401 ^



d955e3f0 ^
75013dc7 ^
67bb838c ^
a808a661 ^
bba8d293 ^
2a64495f ^
5e449699 ^
8895b130 ^

7b04e507 ^
87db0130 ^
dd4a4145 ^
8f2f1767 ^
db1721dd ^
b624bd94 ^
83868c7a ^
6099d9a3 ^
9207e83c ^
f7db061b ^
6099d9a3 ^
f3bc52e5 ^
f01ef1a0 ^
13370392 ^
ff86460b ^
e1d0613a ^
b4f7187f ^
6f43de0a ^




fca1fc4f ^
f70ee6b2 ^
0db4c9b2 ^
338bbba4 ^

6908d0cc ^
338bbba4 ^


338bbba4 ^
c776804d ^
dab4db44 ^
cc4210ff ^
34c131ef ^
32f93303 ^
c1a9373c ^
ff86460b ^
66c5bb93 ^
338bbba4 ^



39bf5e5a ^
338bbba4 ^
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

       

                                      
                               
                                         
                                                    



       
                                                    
                                           
                                     
                                                                

                                                                  
                            
                                                               
                                                        
                                                        
                                       
                                 
                                                             
                                       
                                                  
                                                                        
                                             
                                                                      
                                                           
                                                           
                                        
                                                
                                                              
                                                                     
                                            
                                                  
                                                                          
                                         
                                                     

                                                                        

                                                              
                                                      
                                                      

                                                
                                                   
                                                
                                                           
                                     
                                                    
                                                                                    
                                                                          
                                          
                                            
                                                                         
                                                                
                                                 



    
                                                           
                                                              
                                               
                                                                   
                                                                 
                                                              
                                                                              

                                                   
                                                                
                                                           
                                        
                                                          
                                                             
                                                     
                                                                                  
                                           
                                                              
                                                                        
                                            
                                                                           
                                                                          
                                                                    
                                                              
                                                     
                                                                             




                                                               
                                  
                                                                     
                                                                

                                                 
                                                           


                                                         
                       
                                                                
                                         
                                                   
                                                       
                                                   
                                                          
                                 
 



                                            
                                                                                    
 
Console

   (X) #0   09/12/06  console commands
   (X) #1   09/12/06  quick find
   (X) #2   09/12/06  open with
   (X) #4   09/12/06  history for console
   (X) #13  09/12/27  display docstring of a command


General

   (X) #5   09/12/06  move code from fm into objects
   (X) #6   09/12/06  move main to __init__
   (X) #7   09/12/06  cooler titlebar
   (X) #8   09/12/17  Add operations to modify files/directories
   (X) #9   09/12/24  add a widget for managing running operations
   (X) #10  09/12/24  sorting
   (X) #11  09/12/27  filter
   (X) #12  09/12/27  jump through the list in a specific order
   (X) #14  09/12/29  make filelists inherit from pagers
   (X) #15  09/12/29  better way of running processes!!~
   (X) #16  10/01/01  list of bookmarks
   (X) #21  10/01/01  write help!
   (X) #22  10/01/03  add getopt options to change flags/mode
   (X) #29  10/01/06  add chmod command
   (X) #30  10/01/06  add a way to create symlinks
   (X) #32  10/01/08  place the (hidden) cursor to a meaningful position
   (X) #34  10/01/09  display free disk space
   (X) #35  10/01/09  display disk usage of files in current directory
   ( ) #36  10/01/11  help coloring is terribly inefficient
   (X) #37  10/01/13  better tab completion for OpenConsole
   ( ) #38  10/01/16  searching in pager
   (X) #39  10/01/17  flushinput not always good
   (X) #42  10/01/17  memorize directory for `` when using :cd
   (X) #43  10/01/18  internally treat the bookmarks ` and ' the same
   ( ) #44  10/01/18  more error messages :P
   (X) #47  10/01/19  less restricive auto preview
   (X) #48  10/01/19  abbreviate commands with first unambiguous substring
   ( ) #50  10/01/19  add more unit tests
   ( ) #51  10/01/21  remove directory.marked_items ?
   (X) #55  10/01/24  allow change of filename when pasting
          you're given the choice between overwriting or appending a "_"
   ( ) #56  10/01/30  warn before deleting mount points
   ( ) #57  10/01/30  warn before deleting unseen marked files
   (X) #58  10/02/04  change the title of the terminal
   (X) #61  10/02/09  show sum of size of marked files
   (X) #63  10/02/15  limit filesize in previews
   ( ) #64  10/02/25  scroll in previews
   (X) #66  10/02/28  explain how colorschemes work
   (X) #70  10/03/14  mouse handler for titlebar
   (X) #71  10/03/21  previews: black/whitelist + read file
   (X) #79  10/04/08  tab number zero
   ( ) #80  10/04/08  when closing tabs, avoid gaps?
   (X) #81  10/04/15  system crash when previewing /proc/kcore with root permissions
   (X) #83  10/04/19  better ways to mark files. eg by regexp, filetype,..
   ( ) #86  10/04/21  narg for move_parent
   ( ) #60  10/02/05  utf support improvable
   ( ) #91  10/05/12  in keys.py, fm.move(right=N) should run with mode=N
   ( ) #92  10/05/14  allow to enter the realpath of a directory
   ( ) #93  10/05/15  pause after running program


Bugs

   (X) #17  10/01/01  why do bookmarks disappear sometimes?
   (X) #18  10/01/01  fix notify widget (by adding a LogView?)
   (X) #19  10/01/01  resizing after pressing g
   (X) #23  10/01/04  stop dir loading with ^C -> wont load anymore
   (X) #25  10/01/06  directories sometimes dont reload correctly
   (X) #26  10/01/06  :delete on symlinks of directories fails
   (X) #31  10/01/06  ^C breaks cd-after-exit by stopping sourced shell script
   (X) #40  10/01/17  freeze with unavailable sshfs
          Not rangers fault (?)
   (X) #41  10/01/17  capital file extensions are not recognized
   (X) #46  10/01/19  old username displayed after using su
   (X) #49  10/01/19  fix unit tests :'(
   (X) #52  10/01/23  special characters in tab completion
   (X) #54  10/01/23  max_dirsize_for_autopreview not working
   (X) #62  10/02/15  curs_set can raise an exception
   (X) #65  10/02/16  "source ranger ranger some/file.txt" shouldn't cd after exit
   (X) #67  10/03/08  terminal title in tty
   (X) #69  10/03/11  tab-completion breaks with Apps subclass
   (X) #73  10/03/21  when clicking on the first column, it goes 1x down
   (X) #74  10/03/21  console doesn't scroll
   (X) #78  10/03/31  broken preview when deleting all files in a directory
   (X) #85  10/04/26  no automatic reload of directory after using :filter
   (X) #87  10/05/10  files are not properly closed after previewing
   ( ) #88  10/05/10  race conditions for data loading from FS
   (X) #90  10/05/11  no link target for broken links
   ( ) #94  10/05/26  "pressed keys" text cut off when chaining ctrl-XYZ keys


Ideas

   ( ) #20  10/01/01  use inotify to monitor filesystem changes
   ( ) #24  10/01/06  progress bar
   (X) #27  10/01/06  hide bookmarks in list which contain hidden dir
   (X) #28  10/01/06  use regexp instead of string for searching
   (X) #33  10/01/08  accelerate mousewheel speed
          won't do this
   (X) #45  10/01/18  hooks for events like setting changes
   (X) #53  10/01/23  merge fm and environment
          won't do this
   (X) #68  10/03/10  threads, to seperate ui and loading
          won't do this
   ( ) #72  10/03/21  ranger daemon which does the slow io tasks
   ( ) #75  10/03/28  navigate in history
   (X) #76  10/03/28  save history between sessions
   (X) #77  10/03/28  colorscheme overlay in options.py
   ( ) #82  10/04/19  :s command for batch renaming
   ( ) #84  10/04/25  use pygments for syntax highlighting
   ( ) #89  10/05/10  branch view


Blocking

   ( ) #60  10/02/05  utf support improvable
   (X) #81  10/04/15  system crash when previewing /proc/kcore with root permissions