Provided by: cdargs_1.35-11.1_amd64 bug

NAME

       cdargs - bookmarks and browser for cd shell built-in

SYNOPSIS

       cdargs [OPTIONS]
       function cv () {
           cdargs "$1" && cd "`cat "$HOME/.cdargsresult"`" ;
       }
       cv [Needle]

DESCRIPTION

       With  cdargs  you  can  jump to various places throughout the file-system that are defined
       using a plain text, line oriented bookmarks file.

       You can create bookmarks  by  editing  your  bookmarks  file  "$HOME/.cdargs"  using  your
       favorite  editor, by using the "--add" option to cdargs or by using the built-in mechanism
       that will be described later.

       While you are in cdargs you can use various commands to  navigate  through  your  list  of
       bookmarks  and  through  the  file-system.  These  are  described  below  in  the  section
       "COMMANDS". The most commonly used and most obvious commands  are  the  up/down  keys  for
       navigation, "ENTER" for selection of a path and "q" for quit.

       To  be able to actually use this program together with the shell built-in "cd" command you
       must use a little trick by defining a shell function. Of course the  syntax  for  this  is
       different between the csh-like shells (like tcsh) and the sh-like shells (like bash).

       For sh-like shells:
       function cv () {
           cdargs "$1" && cd "`cat "$HOME/.cdargsresult"`" ;
       }

       For csh-like shells:
       alias cv 'cdargs \!* && cd `cat $HOME/.cdargsresult`'

       Now you only have to put the cdargs binary somewhere into your path.

       Of  course  you can create functions and/or aliases for different purposes. You might want
       to add a pwd call to echo your current directories or put --nowrap in  your  functions  to
       enable a different scrolling behavior. See section SHELL FUNCTIONS below.

       Since  version  1.19  cdargs  brings  a  collection of bash functions (and since 1.20 tcsh
       aliases, too) with it. You only have to source this in your ~/.profile  or  ~/.bashrc  (or
       ~/.tcsh) and you get nice kinds of magic prepared (completion...). Please read the cdargs-
       bash.sh or cdargs-tcsh.csh respectively for the documentation of these functions.

COMMAND-LINE OPTIONS

       You can call cdargs with a few options, but otherwise you probably won't call it  directly
       but via the function you defined.

       -h or --help
              display usage information and exit.

       -v or --version
              output version information and exit.

       -a or --add=[:desc:]path
              add path to the bookmarks list using the optional desc as description string.

       -f or --file=FILE
              uses the given FILE as bookmarks file

       -u or --user=USER
              read the default bookmarks file of USER. Won't modify that file.

       -o or --output=FILE
              use  FILE  as  the result-file (who knows what The World might make of this feature
              that I can't imagine...)

       -b or --browse
              start cdargs in BROWSE mode in the current directory.

       -r or --noresolve
              Don't exit with a result when the Needle matches a description  exactly  (which  is
              some every-day-magic) but show a list (even if it contains just one entry).

       -c or --cwd
              Make  the  current  working directory the current entry on startup if it appears on
              the list.

       --nowrap
              Don't wrap the cursor around when hitting the end of the list.

       Needle The Needle performs some magic which I hope improves the usage of cdargs.

              The Needle is examined in the following order and the  first  thing  that  fits  is
              taken.

              If Needle is a one-digit integer the appropriate entry is preselected.

              Otherwise  if  Needle  is  a  string  each  entry of the list is checked whether it
              contains Needle.

              Then Needle has two functions:
              If it just matches a substring of either path or description that option is  placed
              in the list.

              If  it  exactly  matches a description string this is the result (that means cdargs
              closes the curses window, exits and the changing of directories takes place).

              If it doesn't match a line, that line won't be displayed.

              And to make things even more complicated you can affect this behavior by using  the
              "--noresolve"  option.  This  option is used when you think you give a Needle which
              matches descriptions exactly but you don't want it to be resolved if it does.  This
              option  is internally turned on when you delete an entry (otherwise the deletion of
              entries until only one entry is left would lead to resolving) or when the bookmarks
              file contains only one entry.

              Finally,  if the filtered list (but not the bookmarks file) contains only one entry
              it is selected and the program exits successfully, unless you chose --noresolve.

              I can only hope that you understand this nested if babble...

              Please note, that the existence of a Needle disables the saving of the list at  the
              end of the program.

COMMANDS

       When you are in cdargs you have two modes and several commands at your hands.

       The  two  modes  are  LIST  (when  your  bookmark  list is displayed) and BROWSE (when you
       navigate through the file-system).

       The navigation keys are mostly available in Emacs and vi style for all maniacs out there.

       Common Keys

       <UP>/<DOWN> or k/j or C-n/C-p
              move selection up/down and scroll.

       <ENTER>
              select current entry.

       <TAB>  toggle modes: LIST or BROWSE.

       <HOME>/<END> or C-a/C-e
              goto first/last entry in list.

       c      add current directory to list.

       C      add current directory to list but ask the user for a description

       <PgUp>/<PgDown> or C-v
              Scroll the list in 10-line-steps.  This will never wraparound and  does  not  honor
              the nowrap-option

       e, v   edit the list in $EDITOR.

       H, ?   show the help-screen.

       ~, /   browse home/root directory.

       q      quit - saving the list.

       C-c, C-g, C-[
              abort - don't save the list.

       Keys in BROWSE mode

       <LEFT>, h, C-b
              descent into current directory.

       <RIGHT>, l, C-f
              up one directory.

       [num]  make [num] the current highlighted entry

       a      add current entry to list.

       A      add  current  entry  to list but ask the user for a description, just like with 'c'
              and 'C'.

       .      toggle display of hidden files.

       Keys in LIST mode

       [num]  select and resolve entry [num] if displayed.

       <LEFT>, h, C-b
              descent into the current entry.

       <RIGHT>, l, C-f
              up one directory from current dir.

       d or C-d
              delete current entry from list.

       s or t swap (transpose) two entries of the list.

       M or m move an entry up or down in the list and set the  current  position  afterwards  so
              that repeated keystrokes keep moving the same entry up and down.

SHELL FUNCTIONS

       In  addition to the shell function mentioned above you might wish to add other commands to
       your function. One example is to echo the directory you changed to:

       function cv () {
           cdargs "$1" && cd "`cat "$HOME/.cdargsresult"`"
                       && pwd;
       }

       Or you can remove the file in which cdargs reports it's result:

       function cv () {
           cdargs "$1" && cd "`cat "$HOME/.cdargsresult"`"
                       && rm -f "$HOME/.cdargsresult";
       }

       Since version 1.19 cdargs comes with a file of preset  functions  for  bash:  see  cdargs-
       bash.sh  in  the  distribution.  From  now on you only have to source that file if you are
       using a sh-like shell.  Then you can use the shell completion to switch  directories  even
       faster by typing

       cv [TAB]

       Since  version  1.20  cdargs comes with a file of rudimentary aliases (and completion) for
       the tcsh.
       Any volunteers for porting all the bash functionality to tcsh are welcome.

DISPLAY

       The cdargs window has one line at the bottom for the display of  messages  like  when  you
       added to your list or when you hit an unknown key.

       The  second  line from the bottom is a status line which shows the current directory and a
       one letter code for the current operation mode:

       B      for BROWSE

       L      for LIST

       The largest part of the display is used to show you either the list of your  bookmarks  or
       the  contents  of  the  current  directory. On the left side you'll probably find a number
       which you can use for a slightly quicker jumping compared to using  the  cursor  movement.
       These  numbers  can  be  moved  as described above. Next comes the short description of an
       entry in brackets. This is convient when you have quite long paths in your  bookmarks  and
       most  of  them  start  with  the same base (e.g.  /home/user). Finally there is the actual
       absolute path you'll be  warping  to  when  finishing.  Obviously  the  current  entry  is
       highlighted.

       If  the  path is preced by a "!" it points to an invalid directory. A bookmark pointing to
       the current working directory is  displayed  in  bold  font  (if  the  terminal  emulation
       understands that attribute).

FILES

       /usr/bin/cdargs the cdargs executable.

       $HOME/.cdargs
              personal bookmarks file.

       $HOME/.cdargsresult
              temporary file for passing results to shell.

       /usr/share/doc/cdargs/examples/cdargs-bash.sh
              example collection of bash functions.

       /usr/share/doc/cdargs/examples/cdargs-tcsh.csh
              example collection of tcsh functions.

       /usr/share/emacs/site-lisp/cdargs.el
              (X)Emacs front-end to personal bookmarks file

REPORTING BUGS

       Report bugs to <mail@skamphausen.de>.

AUTHOR

       cdargs  was  written  by  Stefan  Kamphausen  with  add-ons by Claus Brunzema.  Many user-
       interface improvements came from Dan Allen.

SEE ALSO

       The current version of cdargs is located at

              http://www.skamphausen.de/software/cdargs

       You might want to visit that site. Other than that pressing the 'H' key in cdargs fires up
       a help screen.

COPYRIGHT

       Copyright © 2001-2003 Stefan Kamphausen

       cdargs  is  free software; you can redistribute it and/or modify it under the terms of the
       GNU General Public License as published by the Free Software Foundation; either version  2
       of the License, or (at your option) any later version.

       This  program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR  PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program.
       If not, see <http://www.gnu.org/licenses/>.

                                            March 2002                                  CDARGS(1)