diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/HACKING | 74 | ||||
-rw-r--r-- | doc/examples/plugin_file_filter.py | 18 | ||||
-rw-r--r-- | doc/examples/vim_file_chooser.vim | 2 | ||||
-rw-r--r-- | doc/howto-publish-a-release.txt | 27 | ||||
-rw-r--r-- | doc/ranger.1 | 137 | ||||
-rw-r--r-- | doc/ranger.pod | 153 | ||||
-rw-r--r-- | doc/rifle.1 | 4 | ||||
-rw-r--r-- | doc/screenshot.png | bin | 0 -> 55571 bytes | |||
-rwxr-xr-x | doc/tools/convert_papermode_to_metadata.py | 69 |
9 files changed, 382 insertions, 102 deletions
diff --git a/doc/HACKING b/doc/HACKING deleted file mode 100644 index 68a1a942..00000000 --- a/doc/HACKING +++ /dev/null @@ -1,74 +0,0 @@ -Guidelines on Code Modification -=============================== - -Coding Style ------------- - -* Use syntax compatible to both python 2.6 and 3.1. -* Use docstrings with pydoc in mind -* Follow the style guide for python code: - http://www.python.org/dev/peps/pep-0008/ -* Test the code with "doctest" where it makes sense - - -Patches -------- - -Send patches, created with "git format-patch", to the email adress - - hut@lepus.uberspace.de - -If you plan to do major changes, or many changes over time, I encourage -you to create a fork on GitHub, Gitorious or any other site. - - -Starting Points ---------------- - -Good places to read about ranger internals are: -ranger/core/actions.py -ranger/container/fsobject.py - -About the UI: -ranger/gui/widgets/browsercolumn.py -ranger/gui/widgets/browserview.py -ranger/gui/ui.py - - -Common Changes --------------- - -* Change which files are previewed in the auto preview: -In ranger/container/file.py -the constant PREVIEW_BLACKLIST - -* Adding options: -In ranger/config/rc.conf -add the default value, like: my_option = True -In ranger/container/settings.py -add the name of your option to the constant ALLOWED_SETTINGS - -The setting is now accessible at self.settings.my_option, -assuming <self> is a "SettingsAware" object. - -* Adding colorschemes: -Copy ranger/colorschemes/default.py to ranger/colorschemes/myscheme.py -and modify it according to your needs. Alternatively, mimic the jungle -colorscheme. It subclasses the default scheme and just modifies a few things. -In ranger/config/rc.conf (or ~/.config/ranger/rc.conf), add the line: - - set colorscheme myscheme - -* Change the file type => application associations: -Edit the configuration file ~/.config/ranger/rifle.conf. The default one can -be obtained by running "ranger --copy-config rifle". - -* Change the file extension => mime type associations: -Modify ranger/data/mime.types - - -Version Numbering ------------------ - -Three numbers; The first changes on a rewrite, the second changes when major -configuration incompatibilities occur and the third changes with each release. diff --git a/doc/examples/plugin_file_filter.py b/doc/examples/plugin_file_filter.py index bad5a368..b9bea1f3 100644 --- a/doc/examples/plugin_file_filter.py +++ b/doc/examples/plugin_file_filter.py @@ -1,18 +1,20 @@ -# Compatible with ranger 1.6.* +# Compatible since ranger 1.6.1, git commit c82a8a76989c # -# This plugin hides the directories "boot", "sbin", "proc" and "sys" in the -# root directory. +# This plugin hides the directories "/boot", "/sbin", "/proc" and "/sys" unless +# the "show_hidden" option is activated. # Save the original filter function import ranger.container.directory old_accept_file = ranger.container.directory.accept_file +HIDE_FILES = ("/boot", "/sbin", "/proc", "/sys") + # Define a new one -def custom_accept_file(fname, directory, hidden_filter, name_filter): - if hidden_filter and directory.path == '/' and fname in ('boot', 'sbin', 'proc', 'sys'): - return False - else: - return old_accept_file(fname, directory, hidden_filter, name_filter) +def custom_accept_file(file, filters): + if not file.fm.settings.show_hidden and file.path in HIDE_FILES: + return False + else: + return old_accept_file(file, filters) # Overwrite the old function import ranger.container.directory diff --git a/doc/examples/vim_file_chooser.vim b/doc/examples/vim_file_chooser.vim index 68947d2d..df6aacc9 100644 --- a/doc/examples/vim_file_chooser.vim +++ b/doc/examples/vim_file_chooser.vim @@ -14,11 +14,13 @@ function! RangeChooser() "exec 'silent !ranger --choosefile=' . shellescape(temp) exec 'silent !ranger --choosefiles=' . shellescape(temp) if !filereadable(temp) + redraw! " Nothing to read. return endif let names = readfile(temp) if empty(names) + redraw! " Nothing to open. return endif diff --git a/doc/howto-publish-a-release.txt b/doc/howto-publish-a-release.txt new file mode 100644 index 00000000..2ef99afe --- /dev/null +++ b/doc/howto-publish-a-release.txt @@ -0,0 +1,27 @@ +( ) test everything one last time: +( ) * make test +( ) * ./ranger.py [--clean] +( ) * ranger/ext/rifle.py +( ) * make install +( ) make a release commit: +( ) * update the number in the README +( ) * update the number in ranger/__init__.py +( ) * update the version number in ranger/ext/rifle.py +( ) * rebuild the man page with the updated number +( ) * write changelog entry +( ) * think of a witty commit message +( ) * change VERSION in ranger/__init__.py to something with "stable" +( ) * push the commit +( ) build .tar.gz with "make snapshot" +( ) make, make install and test the snapshot one last time +( ) update the website: +( ) * add the new version as ranger-stable.tar.gz +( ) * add the new version as ranger-X.Y.Z.tar.gz +( ) * update both signatures (gpg -sb <file>) +( ) * update the changelog +( ) * update the man page +( ) * rerun boobies.py +( ) announce the update +( ) * to the mailing list +( ) * in the arch linux forum +( ) * write a news entry on savannah diff --git a/doc/ranger.1 b/doc/ranger.1 index c0971d47..b27aa9f3 100644 --- a/doc/ranger.1 +++ b/doc/ranger.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) +.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "RANGER 1" -.TH RANGER 1 "ranger-1.6.1" "04/11/2014" "ranger manual" +.TH RANGER 1 "ranger-1.6.1" "01/17/2015" "ranger manual" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -142,7 +142,7 @@ ranger \- visual file manager .SH "SYNOPSIS" .IX Header "SYNOPSIS" -\&\fBranger\fR [\fB\-\-version\fR] [\fB\-\-help\fR] [\fB\-\-debug\fR] [\fB\-\-clean\fR] +\&\fBranger\fR [\fB\-\-version\fR] [\fB\-\-help\fR] [\fB\-\-debug\fR] [\fB\-\-clean\fR] [\fB\-\-confdir\fR=\fIdirectory\fR] [\fB\-\-copy\-config\fR=\fIwhich\fR] [\fB\-\-choosefile\fR=\fItarget\fR] [\fB\-\-choosefiles\fR=\fItarget\fR] [\fB\-\-choosedir\fR=\fItarget\fR] [\fB\-\-selectfile\fR=\fIfilepath\fR] @@ -160,7 +160,7 @@ commands and \fI3?\fR for settings. .PP The \fI\s-1README\s0\fR contains install instructions. .PP -The file \fIdoc/HACKING\fR contains guidelines for code modification. +The file \fI\s-1HACKING\s0.md\fR contains guidelines for code modification. .PP The directory \fIdoc/configs\fR contains configuration files. They are usually installed to \fI/usr/lib/python*/site\-packages/ranger/config\fR and can be @@ -235,7 +235,7 @@ efficiently. .SS "\s-1TAGS\s0" .IX Subsection "TAGS" Tags are single characters which are displayed left of a filename. You can use -tags however you want. Press \*(L"t\*(R" to toggle tags and \*(L"T\*(R" to remove any tags of +tags however you want. Press \*(L"t\*(R" to toggle tags and \*(L"ut\*(R" to remove any tags of the selection. The default tag is an Asterisk (\*(L"*\*(R"), but you can use any tag by typing \fI"<tagname>\fR. .SS "\s-1PREVIEWS\s0" @@ -411,6 +411,8 @@ Move to the top .IP "G" 14 .IX Item "G" Move to the bottom +.IP "[, ]" 14 +Move up and down in the parent directory. .IP "^R" 14 .IX Item "^R" Reload everything @@ -419,7 +421,7 @@ Reload everything Redraw the screen .IP "i" 14 .IX Item "i" -Display the current file in a bigger window. +Inspect the current file in a bigger window. .IP "E" 14 .IX Item "E" Edit the current file in \f(CW$EDITOR\fR (\*(L"nano\*(R" by default) @@ -428,6 +430,19 @@ Edit the current file in \f(CW$EDITOR\fR (\*(L"nano\*(R" by default) Open a shell in the current directory .IP "?" 14 Opens this man page +.IP "W" 14 +.IX Item "W" +Opens the log window where you can review messages that pop up at the bottom. +.IP "w" 14 +.IX Item "w" +Opens the task window where you can view and modify background processes that +currently run in ranger. In there, you can type \*(L"dd\*(R" to abort a process and +\&\*(L"J\*(R" or \*(L"K\*(R" to change the priority of a process. Only one process is run at a +time. +.IP "^C" 14 +.IX Item "^C" +Stop the currently running background process that ranger has started, like +copying files, loading directories or file previews. .IP "<octal>=, +<who><what>, \-<who><what>" 14 .IX Item "<octal>=, +<who><what>, -<who><what>" Change the permissions of the selection. For example, \f(CW\*(C`777=\*(C'\fR is equivalent to @@ -445,6 +460,16 @@ modern \s-1GUI\s0 programs. .IP "po" 14 .IX Item "po" Paste the copied/cut files, overwriting existing files. +.IP "pl, pL" 14 +.IX Item "pl, pL" +Create symlinks (absolute or relative) to the copied files +.IP "phl" 14 +.IX Item "phl" +Create hardlinks to the copied files +.IP "pht" 14 +.IX Item "pht" +Duplicate the subdirectory tree of the copied directory, then create +hardlinks for each contained file into the new directory tree. .IP "m\fIX\fR" 14 .IX Item "mX" Create a bookmark with the name \fIX\fR @@ -488,6 +513,19 @@ the cursor until you press \s-1ESC. \s0 To unselect files in the same way, use \ Search for files in the current directory. .IP ":" 14 Open the console. +.IP "!" 14 +Open the console with the content \*(L"shell \*(R" so you can quickly run commands +.IP "@" 14 +Open the console with the content \*(L"shell \f(CW%s\fR\*(R", placing the cursor before the +\&\*(L" \f(CW%s\fR\*(R" so you can quickly run commands with the current selection as the +argument. +.IP "r" 14 +.IX Item "r" +Open the console with the content \*(L"open with \*(R" so you can decide which program +to use to open the current file selection. +.IP "cd" 14 +.IX Item "cd" +Open the console with the content \*(L"cd \*(R" .IP "Alt\-\fIN\fR" 14 .IX Item "Alt-N" Open a tab. N has to be a number from 0 to 9. If the tab doesn't exist yet, it @@ -501,6 +539,11 @@ Go to the next or previous tab. You can also use \s-1TAB\s0 and \s-1SHIFT+TAB\s0 .IP "gc, ^W" 14 .IX Item "gc, ^W" Close the current tab. The last tab cannot be closed this way. +.IP "M" 14 +.IX Item "M" +A key chain that allows you to quickly change the line mode of all the files of +the current directory. For a more permanent solution, use the command +\&\*(L"default_linemode\*(R" in your rc.conf. .SS "READLINE-LIKE \s-1BINDINGS IN THE CONSOLE\s0" .IX Subsection "READLINE-LIKE BINDINGS IN THE CONSOLE" .IP "^B, ^F" 14 @@ -631,6 +674,11 @@ this pattern will hide all files that start with a dot or end with a tilde. .Vb 1 \& set hidden_filter ^\e.|~$ .Ve +.IP "idle_delay [integer]" 4 +.IX Item "idle_delay [integer]" +The delay that ranger idly waits for user input, in milliseconds, with a +resolution of 100ms. Lower delay reduces lag between directory updates but +increases \s-1CPU\s0 load. .IP "max_console_history_size [integer, none]" 4 .IX Item "max_console_history_size [integer, none]" How many console commands should be kept in history? \*(L"none\*(R" will disable the @@ -638,6 +686,11 @@ limit. .IP "max_history_size [integer, none]" 4 .IX Item "max_history_size [integer, none]" How many directory changes should be kept in history? +.IP "metadata_deep_search [bool]" 4 +.IX Item "metadata_deep_search [bool]" +When the metadata manager module looks for metadata, should it only look for a +\&\*(L".metadata.json\*(R" file in the current directory, or do a deep search and check +all directories above the current one as well? .IP "mouse_enabled [bool] <zm>" 4 .IX Item "mouse_enabled [bool] <zm>" Enable mouse input? @@ -694,10 +747,10 @@ Sort directories first? .IP "sort_reverse [bool] <or>" 4 .IX Item "sort_reverse [bool] <or>" Reverse the order of files? -.IP "sort [string] <oa>, <ob>, <oc>, <om>, <on>, <ot>, <os>" 4 -.IX Item "sort [string] <oa>, <ob>, <oc>, <om>, <on>, <ot>, <os>" +.IP "sort [string] <oa>, <ob>, <oc>, <om>, <on>, <ot>, <os>, <oz>" 4 +.IX Item "sort [string] <oa>, <ob>, <oc>, <om>, <on>, <ot>, <os>, <oz>" Which sorting mechanism should be used? Choose one of \fBatime\fR, \fBbasename\fR, -\&\fBctime\fR, \fBmtime\fR, \fBnatural\fR, \fBtype\fR, \fBsize\fR +\&\fBctime\fR, \fBmtime\fR, \fBnatural\fR, \fBtype\fR, \fBsize\fR, \fBrandom\fR .Sp Note: You can reverse the order by typing an uppercase second letter in the key combination, e.g. \*(L"oN\*(R" to sort from Z to A. @@ -755,23 +808,30 @@ ranger. For your convenience, this is a list of the \*(L"public\*(R" commands i \& copypmap key newkey [newkey2...] \& copytmap key newkey [newkey2...] \& cunmap keys... +\& default_linemode [path=regexp | tag=tags] linemodename \& delete \& edit [filename] \& eval [\-q] python_code \& filter [string] +\& filter_inode_type [dfl] \& find pattern +\& flat level \& grep pattern +\& linemode linemodename \& load_copy_buffer \& map key command \& mark pattern \& mark_tag [tags] +\& meta key value \& mkdir dirname \& open_with [application] [flags] [mode] \& pmap key command +\& prompt_metadata [key1 [key2 [...]]] \& punmap keys... \& quit \& quit! \& relink newpath +\& rename_append \& rename newname \& save_copy_buffer \& scout [\-FLAGS] pattern @@ -855,6 +915,20 @@ See \f(CW\*(C`copymap\*(C'\fR .IP "cunmap [\fIkeys...\fR]" 2 .IX Item "cunmap [keys...]" Removes key mappings of the console. Works like the \f(CW\*(C`unmap\*(C'\fR command. +.IP "default_linemode [\fIpath=regexp\fR | \fItag=tags\fR] \fIlinemodename\fR" 2 +.IX Item "default_linemode [path=regexp | tag=tags] linemodename" +Sets the default linemode. See \fIlinemode\fR command. +.Sp +Examples: +.Sp +Set the global default linemode to \*(L"permissions\*(R": + :default_linemode permissions +.Sp +Set the default linemode to \*(L"permissions\*(R" for all files tagged with \*(L"p\*(R" or \*(L"P\*(R": + :default_linemode tag=pP permissions +.Sp +Set the default linemode for all files in ~/books/ to \*(L"metatitle\*(R": + :default_linemode path=/home/.*?/books/.* metatitle .IP "delete" 2 .IX Item "delete" Destroy all files in the selection with a roundhouse kick. ranger will ask for @@ -879,6 +953,12 @@ Displays only the files which contain the \fIstring\fR in their basename. Runni this command without any parameter will reset the fitler. .Sp This command is based on the \fIscout\fR command and supports all of its options. +.IP "filter_inode_type [dfl]" 2 +.IX Item "filter_inode_type [dfl]" +Displays only the files of specified inode type. To display only directories, +use the 'd' parameter. To display only files, use the 'f' parameter. To display +only links, use the 'l' parameter. Parameters can be combined. To remove this +filter, use no parameter. .IP "find \fIpattern\fR" 2 .IX Item "find pattern" Search files in the current directory that contain the given (case-insensitive) @@ -886,9 +966,25 @@ string in their name as you type. Once there is an unambiguous result, it will be run immediately. (Or entered, if it's a directory.) .Sp This command is based on the \fIscout\fR command and supports all of its options. +.IP "flat level" 2 +.IX Item "flat level" +Flattens the directory view up to the specified level. Level \-1 means infinite +level. Level 0 means standard view without flattened directory view. Level +values \-2 and less are invalid. .IP "grep \fIpattern\fR" 2 .IX Item "grep pattern" Looks for a string in all marked files or directories. +.IP "linemode \fIlinemodename\fR" 2 +.IX Item "linemode linemodename" +Sets the linemode of all files in the current directory. The linemode may be: +.Sp +.Vb 5 +\& "filename": display each line as "<basename>...<size>" +\& "permissions": display each line as "<permissions> <owner> <group> <basename>" +\& "metatitle": display metadata from .metadata.json files if +\& available, fall back to the "filename" linemode if no +\& metadata was found. See :meta command. +.Ve .IP "load_copy_buffer" 2 .IX Item "load_copy_buffer" Load the copy buffer from \fI~/.config/ranger/copy_buffer\fR. This can be used to @@ -912,6 +1008,17 @@ This command is based on the \fIscout\fR command and supports all of its options .IX Item "mark_tag [tags]" Mark all tags that are tagged with either of the given tags. When leaving out the tag argument, all tagged files are marked. +.IP "meta \fIkey\fR \fIvalue\fR" 2 +.IX Item "meta key value" +Set the metadata of the currently highlighted file. Example: +.Sp +.Vb 2 +\& :meta title The Hitchhiker\*(Aqs Guide to the Galaxy +\& :meta year 1979 +.Ve +.Sp +This metadata can be displayed by, for example, using the \*(L"metatitle\*(R" line mode +by typing Mt. .IP "mkdir \fIdirname\fR" 2 .IX Item "mkdir dirname" Creates a directory with the name \fIdirname\fR. @@ -928,6 +1035,10 @@ Note that if you specify an application, the mode is ignored. .IP "pmap \fIkey\fR \fIcommand\fR" 2 .IX Item "pmap key command" Binds keys for the pager. Works like the \f(CW\*(C`map\*(C'\fR command. +.IP "prompt_metadata [\fIkeys ...\fR]" 2 +.IX Item "prompt_metadata [keys ...]" +Prompt the user to input metadata with the \f(CW\*(C`meta\*(C'\fR command for multiple keys in +a row. .IP "punmap [\fIkeys ...\fR]" 2 .IX Item "punmap [keys ...]" Removes key mappings of the pager. Works like the \f(CW\*(C`unmap\*(C'\fR command. @@ -942,6 +1053,10 @@ it by typing `` or '' the next time you start ranger. .IX Item "relink newpath" Change the link destination of the current symlink file to <newpath>. First <tab> will load the original link. +.IP "rename_append" 2 +.IX Item "rename_append" +Opens the console with \*(L":rename <current file>\*(R" with the cursor automatically +placed before the file extension .IP "rename \fInewname\fR" 2 .IX Item "rename newname" Rename the current file. If a file with that name already exists, the renaming @@ -1163,6 +1278,8 @@ provided along with the source code. .IX Item "The project page: <http://ranger.nongnu.org/>" .IP "The mailing list: <http://savannah.nongnu.org/mail/?group=ranger>" 4 .IX Item "The mailing list: <http://savannah.nongnu.org/mail/?group=ranger>" +.IP "\s-1IRC\s0 channel: #ranger on freenode.net" 4 +.IX Item "IRC channel: #ranger on freenode.net" .PD .PP ranger is maintained with the git version control system. To fetch a fresh @@ -1176,7 +1293,7 @@ copy, run: \&\fIrifle\fR\|(1) .SH "BUGS" .IX Header "BUGS" -Report bugs here: <http://savannah.nongnu.org/bugs/?group=ranger> +Report bugs here: <https://github.com/hut/ranger/issues> .PP Please include as much relevant information as possible. For the most diagnostic output, run ranger like this: \f(CW\*(C`PYTHONOPTIMIZE= ranger \-\-debug\*(C'\fR diff --git a/doc/ranger.pod b/doc/ranger.pod index 7dc50d32..67297d18 100644 --- a/doc/ranger.pod +++ b/doc/ranger.pod @@ -7,7 +7,7 @@ ranger - visual file manager =head1 SYNOPSIS -B<ranger> [B<--version>] [B<--help>] [B<--debug>] [B<--clean>] +B<ranger> [B<--version>] [B<--help>] [B<--debug>] [B<--clean>] [B<--confdir>=I<directory>] [B<--copy-config>=I<which>] [B<--choosefile>=I<target>] [B<--choosefiles>=I<target>] [B<--choosedir>=I<target>] [B<--selectfile>=I<filepath>] @@ -33,7 +33,7 @@ commands and I<3?> for settings. The F<README> contains install instructions. -The file F<doc/HACKING> contains guidelines for code modification. +The file F<HACKING.md> contains guidelines for code modification. The directory F<doc/configs> contains configuration files. They are usually installed to F</usr/lib/python*/site-packages/ranger/config> and can be @@ -134,7 +134,7 @@ efficiently. =head2 TAGS Tags are single characters which are displayed left of a filename. You can use -tags however you want. Press "t" to toggle tags and "T" to remove any tags of +tags however you want. Press "t" to toggle tags and "ut" to remove any tags of the selection. The default tag is an Asterisk ("*"), but you can use any tag by typing I<"<tagnameE<gt>>. @@ -317,6 +317,10 @@ Move to the top Move to the bottom +=item [, ] + +Move up and down in the parent directory. + =item ^R Reload everything @@ -327,7 +331,7 @@ Redraw the screen =item i -Display the current file in a bigger window. +Inspect the current file in a bigger window. =item E @@ -341,6 +345,22 @@ Open a shell in the current directory Opens this man page +=item W + +Opens the log window where you can review messages that pop up at the bottom. + +=item w + +Opens the task window where you can view and modify background processes that +currently run in ranger. In there, you can type "dd" to abort a process and +"J" or "K" to change the priority of a process. Only one process is run at a +time. + +=item ^C + +Stop the currently running background process that ranger has started, like +copying files, loading directories or file previews. + =item <octal>=, +<who><what>, -<who><what> Change the permissions of the selection. For example, C<777=> is equivalent to @@ -363,6 +383,19 @@ modern GUI programs. Paste the copied/cut files, overwriting existing files. +=item pl, pL + +Create symlinks (absolute or relative) to the copied files + +=item phl + +Create hardlinks to the copied files + +=item pht + +Duplicate the subdirectory tree of the copied directory, then create +hardlinks for each contained file into the new directory tree. + =item mI<X> Create a bookmark with the name I<X> @@ -421,6 +454,25 @@ Search for files in the current directory. Open the console. +=item ! + +Open the console with the content "shell " so you can quickly run commands + +=item @ + +Open the console with the content "shell %s", placing the cursor before the +" %s" so you can quickly run commands with the current selection as the +argument. + +=item r + +Open the console with the content "open with " so you can decide which program +to use to open the current file selection. + +=item cd + +Open the console with the content "cd " + =item Alt-I<N> Open a tab. N has to be a number from 0 to 9. If the tab doesn't exist yet, it @@ -438,6 +490,12 @@ Go to the next or previous tab. You can also use TAB and SHIFT+TAB instead. Close the current tab. The last tab cannot be closed this way. +=item M + +A key chain that allows you to quickly change the line mode of all the files of +the current directory. For a more permanent solution, use the command +"default_linemode" in your rc.conf. + =back =head2 READLINE-LIKE BINDINGS IN THE CONSOLE @@ -603,6 +661,12 @@ this pattern will hide all files that start with a dot or end with a tilde. set hidden_filter ^\.|~$ +=item idle_delay [integer] + +The delay that ranger idly waits for user input, in milliseconds, with a +resolution of 100ms. Lower delay reduces lag between directory updates but +increases CPU load. + =item max_console_history_size [integer, none] How many console commands should be kept in history? "none" will disable the @@ -612,6 +676,12 @@ limit. How many directory changes should be kept in history? +=item metadata_deep_search [bool] + +When the metadata manager module looks for metadata, should it only look for a +".metadata.json" file in the current directory, or do a deep search and check +all directories above the current one as well? + =item mouse_enabled [bool] <zm> Enable mouse input? @@ -684,10 +754,10 @@ Sort directories first? Reverse the order of files? -=item sort [string] <oa>, <ob>, <oc>, <om>, <on>, <ot>, <os> +=item sort [string] <oa>, <ob>, <oc>, <om>, <on>, <ot>, <os>, <oz> Which sorting mechanism should be used? Choose one of B<atime>, B<basename>, -B<ctime>, B<mtime>, B<natural>, B<type>, B<size> +B<ctime>, B<mtime>, B<natural>, B<type>, B<size>, B<random> Note: You can reverse the order by typing an uppercase second letter in the key combination, e.g. "oN" to sort from Z to A. @@ -723,7 +793,7 @@ Gather and display data about version control systems. Supported vcs: git, hg. =item vcs_backend_git, vcs_backend_hg, vcs_backend_bzr [string] Sets the state for the version control backend. The possible values are: - + disabled don't display any information. local display only local state. enabled display both, local and remote state. May be slow for hg and bzr. @@ -755,23 +825,30 @@ ranger. For your convenience, this is a list of the "public" commands including copypmap key newkey [newkey2...] copytmap key newkey [newkey2...] cunmap keys... + default_linemode [path=regexp | tag=tags] linemodename delete edit [filename] eval [-q] python_code filter [string] + filter_inode_type [dfl] find pattern + flat level grep pattern + linemode linemodename load_copy_buffer map key command mark pattern mark_tag [tags] + meta key value mkdir dirname open_with [application] [flags] [mode] pmap key command + prompt_metadata [key1 [key2 [...]]] punmap keys... quit quit! relink newpath + rename_append rename newname save_copy_buffer scout [-FLAGS] pattern @@ -869,6 +946,21 @@ See C<copymap> Removes key mappings of the console. Works like the C<unmap> command. +=item default_linemode [I<path=regexp> | I<tag=tags>] I<linemodename> + +Sets the default linemode. See I<linemode> command. + +Examples: + +Set the global default linemode to "permissions": + :default_linemode permissions + +Set the default linemode to "permissions" for all files tagged with "p" or "P": + :default_linemode tag=pP permissions + +Set the default linemode for all files in ~/books/ to "metatitle": + :default_linemode path=/home/.*?/books/.* metatitle + =item delete Destroy all files in the selection with a roundhouse kick. ranger will ask for @@ -897,6 +989,13 @@ this command without any parameter will reset the fitler. This command is based on the I<scout> command and supports all of its options. +=item filter_inode_type [dfl] + +Displays only the files of specified inode type. To display only directories, +use the 'd' parameter. To display only files, use the 'f' parameter. To display +only links, use the 'l' parameter. Parameters can be combined. To remove this +filter, use no parameter. + =item find I<pattern> Search files in the current directory that contain the given (case-insensitive) @@ -905,10 +1004,26 @@ be run immediately. (Or entered, if it's a directory.) This command is based on the I<scout> command and supports all of its options. +=item flat level + +Flattens the directory view up to the specified level. Level -1 means infinite +level. Level 0 means standard view without flattened directory view. Level +values -2 and less are invalid. + =item grep I<pattern> Looks for a string in all marked files or directories. +=item linemode I<linemodename> + +Sets the linemode of all files in the current directory. The linemode may be: + + "filename": display each line as "<basename>...<size>" + "permissions": display each line as "<permissions> <owner> <group> <basename>" + "metatitle": display metadata from .metadata.json files if + available, fall back to the "filename" linemode if no + metadata was found. See :meta command. + =item load_copy_buffer Load the copy buffer from F<~/.config/ranger/copy_buffer>. This can be used to @@ -936,6 +1051,16 @@ This command is based on the I<scout> command and supports all of its options. Mark all tags that are tagged with either of the given tags. When leaving out the tag argument, all tagged files are marked. +=item meta I<key> I<value> + +Set the metadata of the currently highlighted file. Example: + + :meta title The Hitchhiker's Guide to the Galaxy + :meta year 1979 + +This metadata can be displayed by, for example, using the "metatitle" line mode +by typing Mt. + =item mkdir I<dirname> Creates a directory with the name I<dirname>. @@ -955,6 +1080,11 @@ Note that if you specify an application, the mode is ignored. Binds keys for the pager. Works like the C<map> command. +=item prompt_metadata [I<keys ...>] + +Prompt the user to input metadata with the C<meta> command for multiple keys in +a row. + =item punmap [I<keys ...>] Removes key mappings of the pager. Works like the C<unmap> command. @@ -973,6 +1103,11 @@ it by typing `` or '' the next time you start ranger. Change the link destination of the current symlink file to <newpath>. First <tab> will load the original link. +=item rename_append + +Opens the console with ":rename <current file>" with the cursor automatically +placed before the file extension + =item rename I<newname> Rename the current file. If a file with that name already exists, the renaming @@ -1259,6 +1394,8 @@ GNU General Public License 3 or (at your option) any later version. =item The mailing list: L<http://savannah.nongnu.org/mail/?group=ranger> +=item IRC channel: #ranger on freenode.net + =back ranger is maintained with the git version control system. To fetch a fresh @@ -1278,7 +1415,7 @@ rifle(1) =head1 BUGS -Report bugs here: L<http://savannah.nongnu.org/bugs/?group=ranger> +Report bugs here: L<https://github.com/hut/ranger/issues> Please include as much relevant information as possible. For the most diagnostic output, run ranger like this: C<PYTHONOPTIMIZE= ranger --debug> diff --git a/doc/rifle.1 b/doc/rifle.1 index df63d118..999d56d6 100644 --- a/doc/rifle.1 +++ b/doc/rifle.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) +.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== @@ -133,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "RIFLE 1" -.TH RIFLE 1 "rifle-1.6.1" "04/11/2014" "rifle manual" +.TH RIFLE 1 "rifle-1.6.1" "08/26/2014" "rifle manual" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/doc/screenshot.png b/doc/screenshot.png new file mode 100644 index 00000000..42f13bcf --- /dev/null +++ b/doc/screenshot.png Binary files differdiff --git a/doc/tools/convert_papermode_to_metadata.py b/doc/tools/convert_papermode_to_metadata.py new file mode 100755 index 00000000..a1d6372d --- /dev/null +++ b/doc/tools/convert_papermode_to_metadata.py @@ -0,0 +1,69 @@ +#!/bin/python +""" +usage: ./convert_papermode_to_metadata.py + +This script converts the .paperinfo CSV file in the current directory to an +equivalent .metadata.json file. + +ranger used to store metadata in .paperinfo files, but that format was rather +limited, so .metadata.json files were introduced. +""" + +import csv +import json +import os +import sys + +if sys.version < '3.': + getuserinput = raw_input +else: + getuserinput = input + +FIELDS = ["name", "year", "title", "authors", "url"] + +def replace(source, target): + if not os.path.exists(source): + print("Source file `%s' doesn't exist, skipping." % source) + return + + # Ask for user confirmation if the target file already exists + if os.path.exists(target): + sys.stdout.write("Warning: target file `%s' exists! Overwrite? [y/N]") + userinput = getuserinput() + if not (userinput.startswith("y") or userinput.startswith("Y")): + print("Skipping file `%s'" % source) + return + + result = dict() + + # Read the input file and convert it to a dictionary + with open(".paperinfo", "r") as infile: + reader = csv.reader(infile, skipinitialspace=True) + for lineno, row in enumerate(reader): + if len(row) != len(FIELDS): + print("skipping invalid row `%s' on line %d" % (row, lineno)) + continue + name = row[0] + entry = {} + + # Filling up the resulting entry dict + for i, column in enumerate(row[1:]): + if column: + entry[FIELDS[i + 1]] = column + + # Adding the dict if it isn't empty + if entry: + result[name] = entry + + # Write the obtained dictionary into the target file + if result: + with open(".metadata.json", "w") as outfile: + json.dump(result, outfile, indent=2) + else: + print("Skipping writing `%s' due to a lack of data" % target) + +if __name__ == "__main__": + if set(['--help', '-h']) & set(sys.argv[1:]): + print(__doc__.strip()) + else: + replace(".paperinfo", ".metadata.json") |