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

                                                                          


                                                                        
 

                                                                     
 


     
 
                                                         
                                                             

                                                       
                        
 





                                                                         
 

        
 
                                       

                                                       
                              
                                                                       
                                                         
                                



               
 


                                                                      
 
                                                                  
 




                                                                          
 

                                                                       
 
 

                             
 


                                                                       
 
                                
 

                                                                          
 

                                                     
 
 

               
 
                                                                  
 

                                                                          
 

                                                                         
Ranger v.1.0.4
==============

Ranger is a console file manager with fast and straightforward navigation.
By efficiently using the screen space, it gives you a broad overview of
your file system.  Ranger's hotkeys are similar to those of other common
unix programs such as VIM, Emacs and Midnight Commander, though it's
controllable with Arrow Keys just fine.

The program is written in Python (2.6 or 3.1) and uses curses for the
text-based user interface.


About
-----

* Author:          Roman Zimbelmann  <romanz@lavabit.com>
* Website:         http://savannah.nongnu.org/projects/ranger
* Dependencies:    Unix-like OS, Python 2.6 or 3.1
* License:         GNU General Public License Version 3
* Version:         1.0.4

* Download URL of the newest stable version:
http://git.savannah.gnu.org/cgit/ranger.git/snapshot/ranger-stable.tar.gz

* Git Clone URL:
git clone http://git.sv.gnu.org/r/ranger.git


Features
--------

* Multi-column display (Miller Columns)
* Preview of the selected file/directory
* Common file operations (create/chmod/copy/delete/...)
* VIM-like console and hotkeys
* Automatically determine file types and run them with correct programs
* Change the directory of your shell after exiting ranger
* Tabs, Bookmarks, Mouse support


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

Ranger can be started without installing.  Just run the executable (in
a terminal.)  The switch "--clean" will prevent it from creating or
accessing configuration files.

Follow the instructions in the INSTALL file for installing ranger.

After starting ranger, you should see 4 columns. The third one is the main
column, the directory where you're currently at.  To the left you see the
parent directories and to the right there's a preview of the object you're
pointing at.  Now use the Arrow Keys to navigate, Enter to open a file
or type Q to quit.

To customize ranger, copy the files from ranger/defaults/ to ~/.ranger/
and modify them according to your wishes.


Troubleshooting, Getting Help
-----------------------------

If you encounter an error, try running ranger with --debug.  This will
sometimes display more detailed information about the error.  Also, try
deactivating optimization:

PYTHONOPTIMIZE="" ranger --debug

Report bugs on savannah:  (please include as much information as possible)
http://savannah.nongnu.org/bugs/?func=additem&group=ranger

Ask questions on the mailing list:
http://lists.nongnu.org/mailman/listinfo/ranger-users


Further Reading
---------------

Check the man page for information on common features and hotkeys.

The most detailed manual is accessible by pressing "?" from inside ranger.
It is also available at ranger/help/, contained in the *.py files.

The file ranger/defaults/keys.py contains all key combinations, so that's
another place you may want to check out.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                          




                                                                                                                                                
                                                                                                                           

                                                                                                                                                       


       
                                     
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Mu - 044space_surround.cc</title>
<meta name="Generator" content="Vim/7.4">
<meta name="plugin-version" content="vim7.4_v2">
<meta name="syntax" content="cpp">
<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
<meta name="colorscheme" content="minimal">
<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #aaaaaa; background-color: #080808; }
body { font-size: 12pt; font-family: monospace; color: #aaaaaa; background-color: #080808; }
a { color:#eeeeee; text-decoration: none; }
a:hover { text-decoration: underline; }
* { font-size: 12pt; font-size: 1em; }
.Constant { color: #00a0a0; }
.muRecipe { color: #ff8700; }
.Special { color: #c00000; }
.Conceal { color: #4e4e4e; }
.Comment { color: #9090ff; }
.Comment a { color:#0000ee; text-decoration:underline; }
.Delimiter { color: #800080; }
.LineNr { color: #444444; }
.Identifier { color: #c0a020; }
.Normal { color: #aaaaaa; background-color: #080808; padding-bottom: 1px; }
.cSpecial { color: #008000; }
.traceContains { color: #008000; }
-->
</style>

<script type='text/javascript'>
<!--

/* function to open any folds containing a jumped-to line before jumping to it */
function JumpToLine()
{
  var lineNum;
  lineNum = window.location.hash;
  lineNum = lineNum.substr(1); /* strip off '#' */

  if (lineNum.indexOf('L') == -1) {
    lineNum = 'L'+lineNum;
  }
  lineElem = document.getElementById(lineNum);
  /* Always jump to new location even if the line was hidden inside a fold, or
   * we corrected the raw number to a line ID.
   */
  if (lineElem) {
    lineElem.scrollIntoView(true);
  }
  return true;
}
if ('onhashchange' in window) {
  window.onhashchange = JumpToLine;
}

-->
</script>
</head>
<body onload='JumpToLine();'>
<pre id='vimCodeElement'>
<span id="L1" class="LineNr"> 1 </span><span class="Comment">//: So far you can have global variables by not setting default-space, and</span>
<span id="L2" class="LineNr"> 2 </span><span class="Comment">//: local variables by setting default-space. You can isolate variables</span>
<span id="L3" class="LineNr"> 3 </span><span class="Comment">//: between those extremes by creating 'surrounding' spaces.</span>
<span id="L4" class="LineNr"> 4 </span><span class="Comment">//:</span>
<span id="L5" class="LineNr"> 5 </span><span class="Comment">//: (Surrounding spaces are like lexical scopes in other languages.)</span>
<span id="L6" class="LineNr"> 6 </span>
<span id="L7" class="LineNr"> 7 </span><span class="Delimiter">:(scenario surrounding_space)</span>
<span id="L8" class="LineNr"> 8 </span><span class="Comment"># location 1 in space 1 refers to the space surrounding the default space, here 20.</span>
<span id="L9" class="LineNr"> 9 </span><span class="muRecipe">def</span> <a href='000organization.cc.html#L113'>main</a> [
<span id="L10" class="LineNr">10 </span>  <span class="Comment"># pretend address:array:location; in practice we'll use 'new'</span>
<span id="L11" class="LineNr">11 </span>  <span class="Constant">10</span>:num<span class="Special"> &lt;- </span>copy <span class="Constant">0</span>  <span class="Comment"># refcount</span>
<span id="L12" class="LineNr">12 </span>  <span class="Constant">11</span>:num<span class="Special"> &lt;- </span>copy <span class="Constant">5</span>  <span class="Comment"># length</span>
<span id="L13" class="LineNr">13 </span>  <span class="Comment"># pretend address:array:location; in practice we'll use 'new&quot;</span>
<span id="L14" class="LineNr">14 </span>  <span class="Constant">20</span>:num<span class="Special"> &lt;- </span>copy <span class="Constant">0</span>  <span class="Comment"># refcount</span>
<span id="L15" class="LineNr">15 </span>  <span class="Constant">21</span>:num<span class="Special"> &lt;- </span>copy <span class="Constant">5</span>  <span class="Comment"># length</span>
<span id="L16" class="LineNr">16 </span>  <span class="Comment"># actual start of this recipe</span>
<span id="L17" class="LineNr">17 </span>  <span class="Normal">default</span>-space:space<span class="Special"> &lt;- </span>copy <span class="Constant">10</span>/unsafe
<span id="L18" class="LineNr">18 </span>  <span class="Comment">#: later layers will explain the /names: property</span>
<span id="L19" class="LineNr">19 </span>  <span class="Constant">0</span>:space/names:dummy<span class="Special"> &lt;- </span>copy <span class="Constant">20</span>/unsafe
<span id="L20" class="LineNr">20 </span>  <span class="Constant">1</span>:num<span class="Special"> &lt;- </span>copy <span class="Constant">32</span>
<span id="L21" class="LineNr">21 </span>  <span class="Constant">1</span>:num/space:<span class="Constant">1</span><span class="Special"> &lt;- </span>copy <span class="Constant">33</span>
<span id="L22" class="LineNr">22 </span>]
<span id="L23" class="LineNr">23 </span><span class="muRecipe">def</span> dummy [  <span class="Comment"># just for the /names: property above</span>
<span id="L24" class="LineNr">24 </span>]
<span id="L25" class="LineNr">25 </span><span class="Comment"># chain space: 10 + (refcount and length) 2</span>
<span id="L26" class="LineNr">26 </span><span class="traceContains">+mem: storing 20 in location 12</span>
<span id="L27" class="LineNr">27 </span><span class="Comment"># store to default space: 10 + (skip refcount and length) 2 + (index) 1</span>
<span id="L28" class="LineNr">28 </span><span class="traceContains">+mem: storing 32 in location 13</span>
<span id="L29" class="LineNr">29 </span><span class="Comment"># store to chained space: (contents of location 12) 20 + (refcount and length) 2 + (index) 1</span>
<span id="L30" class="LineNr">30 </span><span class="traceContains">+mem: storing 33 in location 23</span>
<span id="L31" class="LineNr">31 </span>
<span id="L32" class="LineNr">32 </span><span class="Delimiter">:(before &quot;End Checks For Reclaiming Locals&quot;)</span>
<span id="L33" class="LineNr">33 </span><span class="Normal">if</span> <span class="Delimiter">(</span>space_index<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>products<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">))</span> &gt; <span class="Constant">0</span><span class="Delimiter">)</span> <span class="Identifier">continue</span><span class="Delimiter">;</span>
<span id="L34" class="LineNr">34 </span>
<span id="L35" class="LineNr">35 </span><span class="Comment">//: If you think of a space as a collection of variables with a common</span>
<span id="L36" class="LineNr">36 </span><span class="Comment">//: lifetime, surrounding allows managing shorter lifetimes inside a longer</span>
<span id="L37" class="LineNr">37 </span><span class="Comment">//: one.</span>
<span id="L38" class="LineNr">38 </span>
<span id="L39" class="LineNr">39 </span><span class="Delimiter">:(replace{} &quot;int space_base(const reagent&amp; x)&quot;)</span>
<span id="L40" class="LineNr">40 </span><span class="Normal">int</span> space_base<span class="Delimiter">(</span><span class="Normal">const</span> reagent&amp; x<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L41" class="LineNr">41 </span>  <span class="Normal">int</span> base = <a href='026call.cc.html#L79'>current_call</a><span class="Delimiter">().</span>default_space ? <span class="Delimiter">(</span><a href='026call.cc.html#L79'>current_call</a><span class="Delimiter">().</span>default_space+<span class="Comment">/*</span><span class="Comment">skip refcount</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">)</span> : <span class="Constant">0</span><span class="Delimiter">;</span>
<span id="L42" class="LineNr">42 </span>  <span class="Identifier">return</span> space_base<span class="Delimiter">(</span>x<span class="Delimiter">,</span> space_index<span class="Delimiter">(</span>x<span class="Delimiter">),</span> base<span class="Delimiter">);</span>
<span id="L43" class="LineNr">43 </span><span class="Delimiter">}</span>
<span id="L44" class="LineNr">44 </span>
<span id="L45" class="LineNr">45 </span><span class="Normal">int</span> space_base<span class="Delimiter">(</span><span class="Normal">const</span> reagent&amp; x<span class="Delimiter">,</span> <span class="Normal">int</span> space_index<span class="Delimiter">,</span> <span class="Normal">int</span> base<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L46" class="LineNr">46 </span>  <span class="Normal">if</span> <span class="Delimiter">(</span>space_index == <span class="Constant">0</span><span class="Delimiter">)</span>
<span id="L47" class="LineNr">47 </span>  <span class="Conceal">¦</span> <span class="Identifier">return</span> base<span class="Delimiter">;</span>
<span id="L48" class="LineNr">48 </span>  <span class="Normal">int</span> result = space_base<span class="Delimiter">(</span>x<span class="Delimiter">,</span> space_index-<span class="Constant">1</span><span class="Delimiter">,</span> <a href='001help.cc.html#L228'>get_or_insert</a><span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> base+<span class="Comment">/*</span><span class="Comment">skip length</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">))</span>+<span class="Comment">/*</span><span class="Comment">skip refcount</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">;</span>
<span id="L49" class="LineNr">49 </span>  <span class="Identifier">return</span> result<span class="Delimiter">;</span>
<span id="L50" class="LineNr">50 </span><span class="Delimiter">}</span>
<span id="L51" class="LineNr">51 </span>
<span id="L52" class="LineNr">52 </span><span class="Normal">int</span> space_index<span class="Delimiter">(</span><span class="Normal">const</span> reagent&amp; x<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L53" class="LineNr">53 </span>  <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span>  i &lt; <a href='001help.cc.html#L141'>SIZE</a><span class="Delimiter">(</span>x<span class="Delimiter">.</span>properties<span class="Delimiter">);</span>  ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L54" class="LineNr">54 </span>  <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span>x<span class="Delimiter">.</span>properties<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">).</span>first == <span class="Constant">&quot;space&quot;</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
<span id="L55" class="LineNr">55 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Normal">if</span> <span class="Delimiter">(</span>!x<span class="Delimiter">.</span>properties<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">).</span>second || x<span class="Delimiter">.</span>properties<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">).</span>second<span class="Delimiter">-&gt;</span>right<span class="Delimiter">)</span>
<span id="L56" class="LineNr">56 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='003trace.cc.html#L168'>raise</a> &lt;&lt; <a href='013update_operation.cc.html#L25'>maybe</a><span class="Delimiter">(</span><a href='026call.cc.html#L83'>current_recipe_name</a><span class="Delimiter">())</span> &lt;&lt; <span class="Constant">&quot;/space metadata should take exactly one value in '&quot;</span> &lt;&lt; x<span class="Delimiter">.</span>original_string &lt;&lt; <span class="Constant">&quot;'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; <a href='003trace.cc.html#L197'>end</a><span class="Delimiter">();</span>
<span id="L57" class="LineNr">57 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Identifier">return</span> <a href='002test.cc.html#L91'>to_integer</a><span class="Delimiter">(</span>x<span class="Delimiter">.</span>properties<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">).</span>second<span class="Delimiter">-&gt;</span>value<span class="Delimiter">);</span>
<span id="L58" class="LineNr">58 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
<span id="L59" class="LineNr">59 </span>  <span class="Delimiter">}</span>
<span id="L60" class="LineNr">60 </span>  <span class="Identifier">return</span> <span class="Constant">0</span><span class="Delimiter">;</span>
<span id="L61" class="LineNr">61 </span><span class="Delimiter">}</span>
<span id="L62" class="LineNr">62 </span>
<span id="L63" class="LineNr">63 </span><span class="Delimiter">:(scenario permit_space_as_variable_name)</span>
<span id="L64" class="LineNr">64 </span><span class="muRecipe">def</span> <a href='000organization.cc.html#L113'>main</a> [
<span id="L65" class="LineNr">65 </span>  <span class="Normal">space</span>:num<span class="Special"> &lt;- </span>copy <span class="Constant">0</span>
<span id="L66" class="LineNr">66 </span>]
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->