summary refs log blame commit diff stats
path: root/README
blob: 88d9523f280007ef3e525a927faba3fe24191e46 (plain) (tree)
1
2
3
4
5
6
7
              
              
 


                                                          
                                          





                                                                  
 
                                                             
                                                       
 


     
 


                                                 
                        

 

        




                                                       
                              

                                 
                                                         


           

            
 
                                                 



                      
                         














                                                               





                                                               


                                                                           




                                                               

                                                                      



                                                                           
                         
                         

                                                                

                                                                






                                                                

                  






                                                                        

                                                                     
 

                                                            
Ranger v.1.0.3
==============

Ranger

   A keeper, guardian, or soldier who ranges over a region
   to protect the area or enforce the law.

This file browser gives you the ability to swiftly move around
and get a broad overview of your forest of directory trees.

Rangers default hotkeys make it intuitive for users of the popular
text-editor VIM, but it is fully customizable.

The program is written in Python since version 1.0.0 and uses
ncurses for the (completely text based) user interface.


About
-----

* Author:          hut
* Email:           hut@lavabit.com
* Git repo:        http://repo.or.cz/w/ranger.git
* Version:         1.0.3


Features
--------

* Multi-column display
* Preview of the selected file/directory
* Common file operations (create/chmod/copy/delete/...)
* Quickly find files or text inside files
* VIM-like console and hotkeys
* Open files in external programs
* Mouse support
* Change the directory of your shell after exiting ranger
* Bookmarks


Dependencies
------------

* A Unix-like OS        (Linux, BSD, Mac OS, ...)
* Python 2.6 or 3.1
* Python curses module


Bugs and Feature Requests
-------------------------

Report bugs and feature requests on the bug tracker of
the ranger repository on GitHub:
    http://github.com/hut/ranger/issues

Alternatively you can send an email to hut@lavabit.com.

Please include as much relevant information as possible.
Using ranger with the --debug option will abort the program and
print tracebacks in certain cases.


Getting Started
---------------

At first, it's a good idea to create a symlink in your bin dir:
    sudo ln -s /path/to/ranger.py /usr/bin/ranger

Now type in ranger to start it.

You should see 4 columns.  The third is the directory where you are at
the moment.  To the left, there are the directories above the current
working directory, and the column on the right is a preview of the selected
file/directory.

Now use the arrow keys to navigate, press enter to open a file.

A list of commands with short descriptions can be viewed by
pressing "?" inside the program and following the instructions.
The file code/keys.rb contains all key combinations, so that's another
place you may want to check out.
More extensive documentation will be written when enough users ask me to :)


Opening Files with Ranger
-------------------------

If you use the same applications like me, you'll be able to open
files by pressing the right arrow key.  If not, you will have to
specify them in ranger/defaults/apps.py.  It's explained
in the docstrings how exactly to do that.

Once you've set up your applications, you can also use ranger to
open files from the shell:
    ranger blabla.pdf


Customizing Ranger
------------------

The file ranger/defaults/options.py contains most of the options.
apps.py defines how files are run, keys.py defines keybindings.

The files in ranger/defaults/ can be copied into ~/.ranger/ for per-user
modifications.  Colorschemes can be placed in ~/.ranger/colorschemes.

The configuration files should be self-explanatory.  If you need more
information, check out the source code.

Also, see the file HACKING for more detailed instructions on
modifying the program.
n> <span id="L12" class="LineNr">12 </span> <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> index = <span class="Constant">0</span><span class="Delimiter">;</span> index &lt; <a href='001help.cc.html#L141'>SIZE</a><span class="Delimiter">(</span>caller<span class="Delimiter">.</span>steps<span class="Delimiter">);</span> ++index<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L13" class="LineNr">13 </span> instruction&amp; inst = caller<span class="Delimiter">.</span>steps<span class="Delimiter">.</span>at<span class="Delimiter">(</span>index<span class="Delimiter">);</span> <span id="L14" class="LineNr">14 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>is_label<span class="Delimiter">)</span> <span class="Identifier">continue</span><span class="Delimiter">;</span> <span id="L15" class="LineNr">15 </span> <span class="Normal">if</span> <span class="Delimiter">(</span>!contains_key<span class="Delimiter">(</span>Recipe_ordinal<span class="Delimiter">,</span> inst<span class="Delimiter">.</span>name<span class="Delimiter">))</span> <span class="Delimiter">{</span> <span id="L16" class="LineNr">16 </span> <a href='003trace.cc.html#L174'>raise</a> &lt;&lt; <a href='013update_operation.cc.html#L25'>maybe</a><span class="Delimiter">(</span>caller<span class="Delimiter">.</span>name<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;instruction '&quot;</span> &lt;&lt; inst<span class="Delimiter">.</span>name &lt;&lt; <span class="Constant">&quot;' has no <a href='010vm.cc.html#L19'>recipe</a> in '&quot;</span> &lt;&lt; to_original_string<span class="Delimiter">(</span>inst<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; <a href='003trace.cc.html#L203'>end</a><span class="Delimiter">();</span> <span id="L17" class="LineNr">17 </span> <span class="Identifier">continue</span><span class="Delimiter">;</span> <span id="L18" class="LineNr">18 </span> <span class="Delimiter">}</span> <span id="L19" class="LineNr">19 </span> inst<span class="Delimiter">.</span>operation = get<span class="Delimiter">(</span>Recipe_ordinal<span class="Delimiter">,</span> inst<span class="Delimiter">.</span>name<span class="Delimiter">);</span> <span id="L20" class="LineNr">20 </span> <span class="Comment">// End Instruction Operation Checks</span> <span id="L21" class="LineNr">21 </span> <span class="Delimiter">}</span> <span id="L22" class="LineNr">22 </span><span class="Delimiter">}</span> <span id="L23" class="LineNr">23 </span> <span id="L24" class="LineNr">24 </span><span class="Comment">// hook to suppress inserting recipe name into errors</span> <span id="L25" class="LineNr">25 </span>string <a href='013update_operation.cc.html#L25'>maybe</a><span class="Delimiter">(</span>string recipe_name<span class="Delimiter">)</span> <span class="Delimiter">{</span> <span id="L26" class="LineNr">26 </span> <span class="Comment">// End maybe(recipe_name) Special-cases</span> <span id="L27" class="LineNr">27 </span> <span class="Identifier">return</span> recipe_name + <span class="Constant">&quot;: &quot;</span><span class="Delimiter">;</span> <span id="L28" class="LineNr">28 </span><span class="Delimiter">}</span> <span id="L29" class="LineNr">29 </span> <span id="L30" class="LineNr">30 </span><span class="Delimiter">:(scenarios transform)</span> <span id="L31" class="LineNr">31 </span><span class="Delimiter">:(scenario missing_arrow)</span> <span id="L32" class="LineNr">32 </span><span class="Special">% Hide_errors = true;</span> <span id="L33" class="LineNr">33 </span><span class="muRecipe">def</span> <a href='000organization.cc.html#L113'>main</a> [ <span id="L34" class="LineNr">34 </span> <span class="Constant">1</span>:number <span class="Delimiter">,</span> copy <span class="Constant">0</span> <span class="Comment"># typo: ',' instead of '&lt;-'</span> <span id="L35" class="LineNr">35 </span>] <span id="L36" class="LineNr">36 </span><span class="traceContains">+error: <a href='000organization.cc.html#L113'>main</a>: <a href='010vm.cc.html#L32'>instruction</a> '1:number' has no <a href='010vm.cc.html#L19'>recipe</a> in '1:number copy, 0'</span> </pre> </body> </html> <!-- vim: set foldmethod=manual : -->