From 1575c43aa3a2a8e6bba36d65920778ef52e7584d Mon Sep 17 00:00:00 2001 From: hut Date: Mon, 22 Jun 2009 00:19:56 +0200 Subject: new help screen, overview of bookmarks --- code/draw.rb | 55 ++++++-------- code/help.rb | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 250 insertions(+), 34 deletions(-) create mode 100644 code/help.rb (limited to 'code') 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 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: move file to place mkdir: obvious" - puti 12," mX: Bookmark dir 'X: Enter bookmarked dir" - puti 13," '': Enter last visited dir (note: ' and ` are equal)" - puti 13," ! executes command" - puti 15," To interrupt current operations: " - puti 16," To quit: q / ZZ / / (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 or / 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 like f but stay in this mode until 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 = < + To quit: Q or ZZ or or (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 : 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 or touch 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 or cw + + + + + + + key:m + R refresh the view + 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 bookmark this directory + um un-marks the specified bookmark + ' shows an overview of all bookmarks + ' 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 + / Search for a "regular expression" + f Like / but enters/runs the first non-ambiguous match + F 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 + rr Run with mode and flags . 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 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 creates directory + touch 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 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: move/rename file to + cw: same as mv + A: write "cw " to the key buffer + + + + + + + + key:o + t Toggle Option + S Change Sorting + E Edit file + s Enter Shell + ! Executes 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 + -- cgit 1.4.1-2-gfad0