diff options
author | hut <hut@lavabit.com> | 2009-06-22 00:19:56 +0200 |
---|---|---|
committer | hut <hut@lavabit.com> | 2009-06-22 00:19:56 +0200 |
commit | 1575c43aa3a2a8e6bba36d65920778ef52e7584d (patch) | |
tree | d0446886adb103d036455693353b0561a4c94707 | |
parent | 04ff0a7f1716e3cc8d2a5be347543bed5fda7e3a (diff) | |
download | ranger-1575c43aa3a2a8e6bba36d65920778ef52e7584d.tar.gz |
new help screen, overview of bookmarks
-rw-r--r-- | TODO | 1 | ||||
-rw-r--r-- | code/draw.rb | 55 | ||||
-rw-r--r-- | code/help.rb | 229 |
3 files changed, 250 insertions, 35 deletions
diff --git a/TODO b/TODO index 5d521fbb..b24deadc 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,3 @@ -an overview of all bookmarked directories fix bars!! a key that moves through the files in a certian order, like creation-time, newest first. if the directory content changes, eg files are deleted, delete those files from selection as well. diff --git a/code/draw.rb b/code/draw.rb index 45c654a8..5a6380e7 100644 --- a/code/draw.rb +++ b/code/draw.rb @@ -179,42 +179,29 @@ module Fm if @buffer =~ /^block/ screensaver - elsif @buffer == '?' + elsif @buffer =~ /^\?/ cleari - puti 0, " - - - Help - - -" - puti 2, " h/j/k/l: Movement J/K: fast Movement" - puti 3, " H: Descend directory with respect to symlinks" - puti 4, " L: Wait for <Enter> after execution of a program" - puti 6, " t: Toggle Option S: Change Sorting" - puti 7, " E: Edit file s: Enter Shell" - puti 8, " rmdir: Remove whole dir dD: Delete file or empty dir" - puti 9, " dd: Move file to ~/.trash and memorize it's new path" - puti 10," yy: Memorize path p: Copy memorized file here" - puti 11," mv<place>: move file to place mkdir<name>: obvious" - puti 12," mX: Bookmark dir 'X: Enter bookmarked dir" - puti 13," '': Enter last visited dir (note: ' and ` are equal)" - puti 13," !<command> executes command" - puti 15," To interrupt current operations: <Ctrl-C>" - puti 16," To quit: q / ZZ / <Ctrl-D> / <Ctrl-C><Ctrl-C> (twice in a row)" - puti 18," Press one of those keys for more information: g f" - elsif @buffer == '?f' - cleari - puti 0, " - - - Help - - -" - puti 2, " f<regexp> or /<regexp> searches for pattern and presses l" - puti 3, " when a matching file is found." - puti 4, " Pressing L in this mode is like pressing l outside" - puti 6, " F<regexp> like f but stay in this mode until <esc> is pressed" - elsif @buffer == '?g' + puti 0, " - - - Help - - -" + if text = HELP[@buffer[1..-1]] + i = 2 + text.each_line do |l| + break if i == lines + puti(i, l) + i += 1 + end + end + elsif @buffer =~ /^o|`|'$/ cleari - puti 0, " - - - Help - - -" - puti 2, " gg: go to top" - puti 3, " G: go to bottom" - puti 4, " g0: go to /" - puti 5, " gu: go to /usr/" - puti 6, " gm: go to /media/" - puti 7, " ge: go to /etc/" - puti 8, " gh: go to ~/" - puti 9, " gt: go to ~/.trash/" + i = 0 + case @buffer + when 'o'; puti 0, " move files to:" + when '`', "'"; puti 0, " go to:" + end + for key,val in @memory + next if key == "'" + break if key == lines + puti i+=1, 2, "#{key} => #{val}" + end else @pwd.recheck_stuff() cf = currentfile diff --git a/code/help.rb b/code/help.rb new file mode 100644 index 00000000..77d93e1d --- /dev/null +++ b/code/help.rb @@ -0,0 +1,229 @@ +module Fm + def self.get_help() + helptext = <<END + + + + + key: + Press a key to view the topic: + ? quick summary + m basic movement and control + g quickly switching directories + f filtering and searching + l running files in different ways + c creating, deleting, moving, copying + o more commands that don't fit elsewhere + + To interrupt current operations: <Ctrl-C> + To quit: Q or ZZ or <Ctrl-D> or <Ctrl-C><Ctrl-C> (quickly twice in a row) + + + And always take care of which keys you press. This tool not only + makes it easy to access files but also to destroy them. + + + + + + key:? + Movement: h,j,k,l or arrow-keys + Run file or enter dir: l or RIGHT or ENTER + Move 1 directory back: h or LEFT or BACKSPACE + + R: Refresh the view <Ctrl-R>: Reload everything + Space: Mark a file. v: Reverse markings. V: Clear markings + Bookmark directories with mX and re-enter them with 'X + + To search, type / or f followed by the text + If you use f, the first non-ambiguous match will be entered/run + + mkdir<name> or touch<name> to create dirs or files + + move file to ~/.trash: dd + delete file forever: dfd + delete whole dir forever: delete + + copy file: cp or yy + cut file: cut + paste file: p + move/rename: mv<name> or cw<name> + + + + + + + key:m + R refresh the view + <Ctrl-R> completely reloads the file memory + + k or UP move 1 item up + j or DOWN move 1 item down + K move half the screen up + J move half the screen down + PAGE UP move the whole screen up + PAGE DOWN move the whole screen down + HOME or gg move to the top + END or G move to the bottom + + h or LEFT or BACKSPACE move one directory back + l or RIGHT or ENTER enter the directory or run the file. + H like h, but if if pwd is on a symlink, + you get to the original location + + + + + + key:g + m<key> bookmark this directory + um<key> un-marks the specified bookmark + ' shows an overview of all bookmarks + '<key> re-enter bookmarked directory. + TAB equivalent to '' + + the quote ', backquote ` and the command "go" do the same + + g0 go to / + gu go to /usr/ + gm go to /media/ + gn go to /mnt/ + ge go to /etc/ + gs go to /srv/ + gh go to ~/ + gt go to ~/.trash/ + + all of this commands, and also quitting the program, will save + the old directory at ` so you can re-enter it by typing `` or '' or TAB + + + + + + + key:f + /<expr> Search for a "regular expression" + f<expr> Like / but enters/runs the first non-ambiguous match + F<expr> Shows only files which match the regular expression. + n or N goes to the next or previous match. + if you search for nothing, n goes to the newest file. + + What is a regular expression: + A very flexible way of defining patterns in text. By writing + Special characters, you can specify what to search: + . matches any character + \\d matches any digit + \\w matches any letter (ascii) + \\s matches any whitespace + | either the preceding or next expression may match + {m,n} at least m and at most n repetitions of the preceding + * zero or more repetitions of the preceding + + one or more repetitions of the preceding + ? at most one repetition of the preceding + ^ or $ the beginning or the end of the string + + More at: http://www.ruby-doc.org/docs/UsersGuide/rg/regexp.html + + If you're just searching or a simple string, it's usually enough to write + it down. To escape the special characters, precede them with a \\ + + + + + + + + key:l + Space: Mark a file. v: Reverse markings V: Clear markings + + l or RIGHT Enter the directory or run the file in mode 0, flag "a" + L Run in a different way: mode 1, no flags + r<n><f>r Run with mode <n> and flags <f>. example: r3adr + Default mode: 0, default flags: no flags at all + + What are flags: + Letters that specify details on how ranger should run the program. + Capital letters reverse the function. use as many flags as you want. + + a Run the selection rather than just the highlighted file + t Run in a detached terminal (implies d) + d or e Run as a detached process inside the current terminal + w Wait for a <enter> after execution of the programm + + What are modes: + A number from 0 to infinity that specifies what shell command should + be executed, since most file types have different ways to be run. + + You can set up the commands for each type in the file ranger/data/apps.rb + + + + + + + + key:c + the word "selection" means + if you marked something: all marked items and NOT the highlighted item + otherwise: the selected item. + + mkdir<name> creates directory + touch<name> creates file + + yy or cp Memorize selection + cut like cp, but move instead of copy if "p" is pressed + p Copy memorized files here. + o<key> Copy selection to the bookmarked dir (see ?g) + + use deleteing commands with caution! + dd: Move selection to ~/.trash and memorize it's new path + (so it can be pasted with p) + dfd: Deletes the selection or empty directory + delete: Remove whole selection with all contents + + mv<name>: move/rename file to <name> + cw<name>: same as mv + A: write "cw <name of current file>" to the key buffer + + + + + + + + key:o + t Toggle Option + S Change Sorting + E Edit file + s Enter Shell + !<command> Executes command + !!<command> Executes command and waits for enter-press afterwards + term Runs a detached terminal in the current directory + block Blocks the program, until you write: stop + - or = decreases or increases audio volume (alsa) + + + + + + + + + +END + hash = {} + current = nil + helptext.gsub("\t", " ").each_line do |l| + if l =~ /^\s*key:(.*)$/ + current = hash[$1] = "" + elsif current + current << l + end + end + return hash + end + + HELP = get_help +end + |