# GNU Interactive Tools

## A Set of Interactive Programs

## Edition 2.9, for GIT version 4.3.20

## March 2000

# Table of Contents

- Introduction
- Distributing GNU Interactive Tools
- Using GNU Interactive Tools
  - The GIT file system browser
    - Key binding conventions
    - Command line
    - Panel modes
    - Sorting methods
    - Moving the cursor in the panel
    - Selecting files
    - Incremental searching files in a panel
    - Using the input line
      - Inserting Text
      - Moving Point
      - Deleting and killing text
      - Case conversion of words.
      - Reusing recent input line arguments
      - Commands to set the mark
      - Reinserting recently killed text
      - Selecting files matching patterns
    - File operations
      - Copying Files
      - Moving Files
      - Creating Files
      - Deleting Files
      - Linking Files
      - Renaming Files
      - Splitting files into smaller parts
      - Packing files into the minimum number of bins
      - Changing a file's mode, owner and group
      - Editing Files
      - Viewing Files
      - Compressing Files
      - Encoding Files
      - Encrypting Files
      - Comparing Files
      - Spell Checking Files
      - Printing Files
      - Wiping Files
      - Searching Files
      - Managing tar based archive files
      - Installing and Uninstalling RPM packages
      - File Types
      - Accessing MSDOS Files
      - A different action for each file type
    - Directory operations
      - Creating directories
      - Copying directories
      - Deleting directories
      - Moving directories
      - Renaming directories
      - Comparing Directories
      - Summarize directory usage
      - Changing directories
      - Directory History
      - Hot Keys
    - Compiling programs
    - Sending/receiving ascii/binary mail
    - Starting a sub-shell
    - Using grep and recursive grep
    - Locking your console
    - Refreshing the screen contents
    - Reseting your terminal
    - Mounting/unmounting file systems
    - Getting some useful system information
    - How to look at the environment variables
    - Viewing/killing processes
    - Synchronizing the file systems
    - Reading the documentation
    - Exiting GNU Interactive Tools
  - The GIT process viewer/killer
  - The GIT ASCII/HEX file viewer
  - The GIT key sequences display utility
  - The GIT wipe file utility
  - The GIT mount utility
  - The GIT per file type action script
  - Unified archive unpacking
  - The GIT recursive grep script
- Customizing GNU Interactive Tools
  - Environment Variables
  - Configuration Files
    - Writing key sequences
    - The global setup section
    - git Sections
      - git Setup
      - Using git on colors displays
      - Using git on monochrome displays
      - Defining keys
      - The key-sequence field
      - The command-name field
      - The formatted-command field
      - The %s format specifier
      - The %f format specifier
      - The %d format specifier
      - The %l format specifier
      - The %t format specifier
      - The %z format specifier
      - The %a format specifier
      - The %m format specifier
      - The %g format specifier
      - The %o format specifier
      - The %p format specifier
      - The %b format specifier
      - The %i format specifier
      - The %? format specifier
      - The new-dir field
      - The save-screen field
      - The pause field
      - The hide field
    - Setting up colors for different file types
    - gitps Sections
      - gitps Setup
      - Using gitps on color displays
      - Using gitps on monochrome displays
      - Defining keys
    - gitview Sections
      - gitview Setup
      - Using gitview on color displays
      - Using gitview on monochrome displays
      - Defining keys
- GNU Interactive Tools limitations
- GNU Interactive Tools bugs
- Key Index
- Command Index
- Variable Index
- Concept Index

# Introduction

`GIT` is a set of interactive tools. It contains an extensible file system browser, an ascii/hex file viewer, a process viewer/killer and some other related utilities and shell scripts. It can be used to increase the speed and efficiency of most of the daily tasks such as copying and moving files and directories, invoking editors, compressing and uncompressing files, creating and expanding archives, compiling programs, sending mail, etc. It looks nice, has colors (if the standard ANSI color sequences are supported) and is user-friendly.

`GIT` runs on a wide variety of `UNIX` systems because it uses the `GNU Autoconf` package to get system specific information. Please refer to the PLATFORMS file included in the standard distribution for a detailed list of systems on which `GIT` has been tested.

One of the main advantages of `GIT` is its flexibility. It is not limited to a given set of commands. The configuration file can be easily enhanced, allowing the user to add new commands or file operations, depending on its needs or preferences.

`GIT` also provides a shell like command prompt, just to make sure that the entire power of the `UNIX` shell commands is still there.

# Distributing GNU Interactive Tools

`GIT` is "free software"; this means that everyone is free to use it and free to redistribute it on certain conditions. `GIT` is not in the public domain; it is copyrighted and there are restrictions on its distribution, but these restrictions are designed to permit everything that a good cooperating citizen would want to do. What is not allowed is to try to prevent others from further sharing any version of `GIT` that they might get from you. The precise conditions are found in the GNU General Public License that comes with `GIT` and also appears following this section.

The easiest way to get a copy of `GIT` is from someone else who has it. You need not ask for our permission to do so, or tell any one else; just copy it. If you have access to the Internet, you can get the latest distribution version of `GIT` from host ``ftp.gnu.org'` using anonymous login. See the file `/pub/gnu/GETTING.GNU.SOFTWARE' on that host to find out about your options for copying and which files to use.

You may also receive `GNU Interactive Tools` when you buy a computer. Computer manufacturers are free to distribute copies on the same terms that apply to everyone else. These terms require them to give you the full sources, including whatever changes they may have made, and to permit you to redistribute the GNU Interactive Tools received from them under the usual terms of the General Public License. In other words, the program must be free for you when you get it, not just free for the manufacturer.

# Using GNU Interactive Tools

The `GIT` package contains three interactive programs and a few additional utilities. Here there is a description of each of them.

## The GIT file system browser

`git` is a file system browser with some shell like features designed to make your work much easier and much efficient. It displays one or two panels, each one containing a file system directory. You can browse the directory tree with the usual cursor keys, pressing `ENTER` when you want to enter or leave a directory and `TAB` when you want to change the panels.

Under the two panels there is a shell like input line which you can use to type normal shell commands. The input line can handle an unlimited number of characters and keeps a history of typed commands (using the GNU history library).

Under the input line there is a status bar. You can see there the status of the currently executed command, the warnings and errors and you will be prompted if a decision has to be taken.

### Key binding conventions

`git` now follows a new, easy to remember, scheme to bind commands on keys. This is only a convention, if you define new key bindings you may, or may not follow it.

All the file commands start with `^C`. This prefix can be followed by some modifiers, in order to affect the default behavior of the given command. These modifiers are `b` and `r`.

`b` - this modifier specifies that the command will run in background:

    	^CM = CHMOD; chmod %s{New mode of %i: ,%m} %i;;;;y

defines a command that changes the current selected files mode in foreground, while

    	^CbM = B-CHMOD; chmod %s{New mode of %i: ,%m} %i&;;;;y

defines a background command that does the same thing.

`r` - this modifier specifies that the command will be run recursively:

    	^CrM = R-CHMOD; chmod -R %s{New mode of %i: ,} %i;;;;y

defines a command that recursively changes the mode of the selected entries.

The `b` and `r` modifiers can be combined, the resulting command running recursively and in background:

    	^CbrM = B-R-CHMOD; chmod -R %s{New mode of %i: ,} %i&;;;;y

You should also note that for some commands (like `gzip`) there is no need for a non-recursive version. Running `gzip` recursively on files is harmless. If there is a directory between these files, `gzip` will recursively compress that directory, so you can use the same key binding for recursively and non-recursively compressing. In fact, it is a matter of selecting files or directories.

Unfortunately, we can't run `chmod` recursively trying to change the mode of all the files in a directory to 0644 because that directory might contain subdirectories and removing the execution permission from them is a bad idea. So, in this case, we need separate commands.

### Command line

This is a brief description of the command line arguments.

`-h` print this help message `-v` print the version number `-i` print the installation directory `-c` use ANSI colors `-b` don't use ANSI colors `-l` don't use the last screen character `-p` output final path at exit

The `-p` option can be used to make git force bash (assuming that you're using it as your shell) chdir to the last directory git was in before quitting. In order to do this, you need to invoke git using this function (put it into your .profile):

    function g
    {
        git -p $ 3> /tmp/git.p.$$

        if test -s /tmp/git.p.$$; then
    	if test -d "`cat /tmp/git.p.$$`"; then
    	    cd "`cat /tmp/git.p.$$`"
    	else
    	    cd
    	fi
        fi

        rm -f /tmp/git.p.$$
    }

This will not work if you suspend git. Nothing bad will happen, just the chdir will not be performed.

### Panel modes

`git` has three major modes of displaying the panels. In the first (default) mode, two panels are displayed, each one using half of the screen. In the second mode, only one panel uses the entire screen. In the third mode, only the status bar and the input line are displayed, both panels being hidden.

Briefly, a panel can use the entire screen or just half of it. Even when a panel is hidden, it still exists.

Users can switch between these three major modes as needed:

`^X 0`

    Enlarges the other panel to use the entire screen.  It also changes the
    minor mode to `Enable all'.  The current panel will become
    invisible (`enlarge-other-panel').

`^X 1`

    Enlarges the current panel to use the entire screen.  It also changes
    the minor mode to `Enable all'.  The other panel will become
    invisible (`enlarge-panel').

`^X 2`

    Switches back to the two panel mode (`two-panel-mode').

`^O`, `ESC o`

    Switches to the tty mode (no panels on the screen) (`tty-mode').

Basically a panel displays the files and directories in a directory. You can optionally specify some additional information about each entry (file, directory, ...) to be displayed (a minor mode).

When using the full screen mode, all the minor modes here can be used. In half screen mode, the ``panel-enable-all'` mode is not available.

These are the panel minor modes:

`ESC d o`

    Display the entry owner and group (`panel-enable-owner-group').

`ESC d d`

    Display the entry date and time (`panel-enable-date-time').

`ESC d s`

    Display the entry size (`panel-enable-size').

`ESC d m`

    Display the entry mode (`panel-enable-mode').

`ESC d f`

    Display the entry full name (`panel-enable-full-name').

`ESC d a`

    Display the entire information about file (`panel-enable-all').
    This mode is only available if the panel has been enlarged to use the
    entire screen with `enlarge-panel' or `enlarge-other-panel'
    (`panel-enable-all').

There is also another way to change the panel minor modes:

`^]`, `^[]`

    Switches to the next panel minor mode (`panel-enable-next-mode').

### Sorting methods

Entries in a panel can be sorted in different ways. These are the available options:

`ESC s n`

    Display the panel entries sorted by their names
    (`panel-sort-by-name').

`ESC s e`

    Display the panel entries sorted by their extensions
    (`panel-sort-by-extension').

`ESC s s`

    Display the panel entries sorted by their sizes
    (`panel-sort-by-size').

`ESC s d`

    Display the panel entries sorted by their `last modified' stamps
    (`panel-sort-by-date').

`ESC s m`

    Display the panel entries sorted by their modes
    (`panel-sort-by-mode').

`ESC s o i`

    Display the panel entries sorted by their owner ids
    (`panel-sort-by-owner-id').

`ESC s g i`

    Display the panel entries sorted by their group ids
    (`panel-sort-by-group-id').

`ESC s o n`

    Display the panel entries sorted by their owner names
    (`panel-sort-by-owner-name').

`ESC s g n`

    Display the panel entries sorted by their group names
    (`panel-sort-by-group-name').

There is also another way to change the sort method:

`ESC s u`

    Switch to the next panel sort method (`panel-sort-next-method').

### Moving the cursor in the panel

Moving the cursor in the panel is very easy. If your keyboard has arrows, use them. If the arrow keys don't work (it might be due to a badly configured TERM environment variable), you can use the Emacs commands bindings as well.

`UP`, `^P`

    Move the cursor vertically up one entry (`previous-line').

`DOWN`, `^N`

    Move the cursor vertically down one entry (`next-line').

`HOME`, `ESC <`

    Move the cursor on the first entry in the panel
    (`beginning-of-panel').

`END`, `ESC >`

    Move the cursor on the last entry in the panel (`end-of-panel').

`PGUP`, `ESC v`

    Move the cursor vertically down one page (`scroll-down').

`PGDOWN`, `^V`

    Move the cursor vertically down one page (`scroll-up').

`ESC g`

    Scroll the panel entries to the left (`horizontal-scroll-left').

`ESC j`

    Scroll the panel entries to the right (`horizontal-scroll-right').

`^X P`

    In order to optimize the screen output, you can modify the scroll step
    (`set-scroll-step').  This is the number of lines to try scrolling
    a panel when the cursor moves out.  The `StartupScrollStep'
    specifies the initial scroll step, but using `set-scroll-step' you
    can dynamically change it.

`TAB`, `^I`, `^X o`

    Move the cursor in the other panel (`other-panel').

`^X P`

    Switch the two panels.  This command works even when git is not
    in the `two panels' mode (`switch-panels').

### Selecting files

`INS`, `^T`, `^X \`, `^\`

    Toggle the `selected' flag of the current entry
    (`select-entry').

`^C s`

    Select (marks) all the files matching at least one pattern from a space
    separated list of shell patterns.  Spaces and \s are allowed in the
    patterns but they have to be escaped with a \.  The user will be
    prompted for a pattern to match against
    (`select-files-matching-pattern').

`^C u`

    Unselect (unmarks) all the files matching at least one pattern from a
    space separated list of shell patterns.  Spaces and \s are allowed in
    the patterns but they have to be escaped with a \.  The user will be
    prompted for a pattern to match against
    (`unselect-files-matching-pattern').

`ESC +`

    Select (marks) all the files having the same extension as the current
    file.  If the current file name doesn't have an extension or starts with
    a dot, no files are selected (`select-extension').

`ESC -`

    Unselect (unmarks) all the files having the same extension as the
    current file.  If the current file name doesn't have an extension or
    starts with a dot, no files are unselected (`unselect-extension').

See section Selecting files matching patterns, for additional ways of selecting and unselecting files.

### Incremental searching files in a panel

Users sometime need to search a file in a panel, especially when the panel contains a big number of entries. For that reason `git` provides an incremental search feature. Using forward and backward incremental search, files can be very easy located. Wrapped incremental search is also provided.

`^S`, `^Xs`

    Incremental search forward a file name in the current panel
    (`isearch-forward').  Pressing ^S or ^Xs again will
    force git to go to the next entry that matches the current
    isearched string.  When the end of the panel is reached, the isearch is
    restarted from its beginning.

`^R`, `^Xr`

    Incremental search backward a file name in the current panel
    (`isearch-backward').  Pressing ^R or ^Xr again will
    force git to go to the next entry that matches the current
    isearched string.  When the beginning of the panel is reached, the
    isearch is restarted from its end.

### Using the input line

The input line is one of the main methods used by `git` to interact with the user. All the answers the user should give in order to perform some operation and all the shell like commands are built using it. So here is a description of all the basic editing operations that the ``input line'` provides. They are very much inspired from `Emacs`, so `Emacs` users should have no problem using them.

#### Inserting Text

Typing characters is the most usual way of inserting text into the input line. Key sequences starting with printable ascii characters are not allowed in `git` so typing `a` for example results in inserting `a` at the current point position. Of course, there are some other ways of inserting text into the command line and here there is a description of most of them.

`ESC RET`

    Copy the current entry name into the input line at the current point
    position (`entry-to-input-line').

`ESC ESC RET`

    Copy the other panel path into the input line at the current point
    position (`other-path-to-input-line').

`^X ^I`

    Copy the names of all the selected entries into the input line at the
    current point position (`selected-entries-to-input-line').

#### Moving Point

`^B`, `LEFT`

    Move the point backward one character (`backward-char').

`^F`, `RIGHT`

    Move the point forward one character (`forward-char').

`ESC b`

    Move the point one word backward (`backward-word').

`ESC f`

    Move the point one word forward (`forward-word').

`^A`

    Move the cursor at the beginning of the input line (`beginning-of-line').

`^E`

    Move the cursor at the end of the input line (`end-of-line').

#### Deleting and killing text

`DEL`, `^D`

    Delete the character under the cursor (`delete-char').

`^H`, `BKSPC`

    Delete the character before the cursor (`backward-delete-char').

`ESC BKSPC`

    Delete backward one word (`backward-kill-word').

`ESC d`

    Delete forward one word (`kill-word').

`ESC k`

    Delete the entire line (`kill-line').

`^U`

    Delete all the characters between the beginning of the input line and
    the point (`kill-to-beginning-of-line').

`^K`

    Delete all the characters between the point and the end of the input
    line (`kill-to-end-of-line').

`ESC SPC`

    Delete all the spaces around the point, leaving only one space
    (`just-one-space').

`ESC \`

    Delete all the spaces around the point
    (`delete-horizontal-space').

`^W`

    Save the region between the point and the mark into the kill "ring" and
    then kills it (`kill-region').  Note that there is no real
    kill-ring here.  The so-called kill-ring has only one entry.

`ESC w`

    Save the region between the point and the mark without killing it
    (`kill-ring-save').

#### Case conversion of words.

`ESC l`

    Convert the following word to lower case, moving over.
    (`downcase-word').

`ESC u`

    Convert the following word to upper case, moving over.
    (`upcase-word').

`ESC c`

    Capitalize the following word, moving over.
    (`capitalize-word').

#### Reusing recent input line arguments

A separate history is kept for both built-in and user-defined commands. If you call a command that you have used before, you can re-edit a previously entered string in order to minimize the amount of characters needed to be typed for the new one. There is no limit on the number of strings that can be kept in the history.

`ESC p`

    Walk backward through the history of previously entered strings
    (`previous-history-element').

`ESC n`

    Walk forward through the history of previously entered strings
    (`next-history-element').

#### Commands to set the mark

`^SPC`

    Set the mark at the current point position (`set-mark').

`^X ^X`

    Exchange the current point position with the mark one
    (`exchange-point-and-mark').

#### Reinserting recently killed text

`^Y`

    Reinsert a previously killed text at the current point position
    (`yank').

#### Selecting files matching patterns

If the very first character in the input line is a `+', what comes after it is considered a (space separated) list of shell patterns, and all the files that match at least one pattern from that list will be marked as selected. An empty list of shell patterns (i.e. the `+' by itself) will cause all the files to be selected.

If the very first character in the input line is a `-', the space separated list of shell patterns that follows is used to unselect files. An empty list of shell patterns (i.e. the `-' by itself) will cause all the selected files to be unselected.

Finally, if the first and only character in the input line is a `*', then all the selected files will become unselected, and all the unselected files will become selected.

### File operations

#### Copying Files

`F5`, `ESC 5`, `^C C`

    Copy the currently selected entries to the user supplied path
    (`copy').

`^C b C`

    Copy the currently selected entries to the user supplied path.  The
    operation is performed in background (`B-COPY').

#### Moving Files

`F6`, `ESC 6`, `^C T`

    Move the currently selected entries to the user supplied path
    (`move').

`^C b T`

    Move the currently selected entries to the user supplied path.  The
    operation is performed in background (`B-MOVE').

#### Creating Files

The easiest way to create a new file is to start an editor passing the file name as an argument. Most editors will try to create the file if the file doesn't exist. See section Editing Files, for more information.

#### Deleting Files

`F8`, `ESC 8`, `^C D`

    Delete the currently selected entries (`delete').

`^C b D`

    Delete the currently selected entries.  The operation is performed in
    background (`B-DELETE').

#### Linking Files

`^C H`

    Create a hard link from the current files to a user supplied file
    name (`LINK').

`^C b H`

    Create a hard link from the current files to a user supplied file name
    (`B-LINK').  The action is performed in background.

`^C S`

    Create a symbolic link from the current files to a user supplied file
    name (`SYMLINK').

`^C b S`

    Create a symbolic link from the current files to a user supplied file
    name (`B-SYMLINK').  The action is performed in background.

#### Renaming Files

`^C R`

    Rename the current file or directory with the user supplied name
    (`RENAME').

`^C b R`

    Rename the current file or directory with the user supplied name.  The
    operation is performed in background (`B-RENAME').

`^C n d`

    Change the name of all the selected entries to lowercase.
    (`name-downcase').

`^C n u`

    Change the name of all the selected entries to uppercase.
    (`name-upcase').

#### Splitting files into smaller parts

`^C /`

    Split the current file into several smaller files of a given size and
    named based on a given prefix (`SPLIT').

`^C b /`

    Split the current file into several smaller files of a given size and
    named based on a given prefix.  The operation is performed in background
    (`B-SPLIT').

#### Packing files into the minimum number of bins

`^C ~`

    Pack the files into the smallest number of bins.  This is an
    approximation - the problem is NP-complete and no known algorithm can
    guarantee a solution better than `(11/9) * OPTIMAL + 4'.

    To make things even worst, it is generally difficult to figure out the
    file system block size for the target bin.  Asking the user is not a
    good idea either.  `git' currently assumes a file system block size
    of 1Kb.  Moreover, for large file, there is no portable way to predict
    how many blocks the file system implementation will require for indirect
    blocks, directories, etc.  So keep in mind that this is only an
    aproximation.

    Bin packing can be useful when you want to put a bunch of files on
    floppies or zip disks and you want to optimize things a little bit
    (`bin-packing').

    `git' assumes that you want to pack all the files in the current
    directory - if there is any selected file in that directory it will be
    unselected first.  Then `git' will ask for a bin size, and select
    the files that should go in the first bin.  You are supposed to place
    those files in the first bin (e.g. a tar archive), remove them from the
    current directory, then run `bin-packing' again, to obtain the list
    of the files that should go into the second bin, etc.

#### Changing a file's mode, owner and group

`^C M`

    Change the mode of the currently selected entries (`CHMOD').

`^C b M`

    Change the mode of the currently selected entries.  The operation is
    performed in background (`B-CHMOD').

`^C r M`

    Recursively change the modes of the selected entries if one of them is a
    directory (`R-CHMOD').

`^C b r M`

    Recursively change the modes of the selected entries if one of them is a
    directory.  The operation is performed in background (`B-R-CHMOD').

`^C O`

    Change the owner of the currently selected entries (`CHOWN').

`^C b O`

    Change the owner of the currently selected entries.  The operation is
    performed in background (`B-CHOWN').

`^C r O`

    Recursively change the owners of the selected entries if one of them is
    a directory (`R-CHOWN').

`^C b r O`

    Recursively change the owners of the selected entries if one of them is
    a directory.  The operation is performed in background
    (`B-R-CHOWN').

`^C G`

    Change the group of the currently selected entries (`CHGRP').

`^C b G`

    Change the group of the currently selected entries.  The operation is
    performed in background (`B-CHGRP').

`^C r G`

    Recursively change the groups of the selected entries if one of them is
    a directory (`R-CHGRP').

`^C b r G`

    Recursively change the groups of the selected entries if one of them is
    a directory.  The operation is performed in background
    (`B-R-CHGRP').

#### Editing Files

`F4`, `ESC 4`

    Call the default editor with the current file name as an argument
    (`EDIT').

`^X e`

    Call the default editor with the selected entry names as arguments
    (`MULTIPLE-EDIT').

`^X ^F`

    Create a new file by calling the default editor with the user supplied
    file name as an argument (`FILE-CREATE').

`^X 4 a`

    Call the default editor in order to edit the `ChangeLog' file
    (`CHANGE-LOG').

The default editor can be specified using the EDITOR or GIT_EDITOR environment variables. See section Environment Variables, for more information.

#### Viewing Files

`F3`, `ESC 3`

    Call the default viewer (gitview) with the current file name as
    argument (`VIEW').

`^X v`

    Call the default pager (more) with the currently selected entry
    names as arguments (`MULTIPLE-VIEW').

#### Compressing Files

`^C z`

    Compress the currently selected entries with gzip
    (`COMPRESS').

`^C b z`

    Compress the currently selected entries with gzip.  The operation
    is performed in background (`B-COMPRESS').

`^C Z`

    Uncompress the currently selected entries with gunzip
    (`UNCOMPRESS').

`^C b Z`

    Uncompress the currently selected entries with gunzip.  The
    operation is performed in background (`B-UNCOMPRESS').

`^C f Z`

    Uncompress the currently selected entries with gunzip
    (`F-UNCOMPRESS').  Force uncompression of links.

`^C b f Z`

    Uncompress the currently selected entries with gunzip.  Force
    uncompression of links.  The operation is performed in background
    (`BF-UNCOMPRESS').

`^C .`

    Compress the currently selected entries with bzip2
    (`BZIP2-COMPRESS').

`^C b .`

    Compress the currently selected entries with bzip2.  The
    operation is performed in background (`B-BZIP2-COMPRESS').

`^C o`

    Uncompress the currently selected entries with bunzip2
    (`BZIP2-UNCOMPRESS').

`^C b o`

    Uncompress the currently selected entries with bunzip2.  The
    operation is performed in background (`B-BZIP2-UNCOMPRESS').

#### Encoding Files

`^C e`

    Encode the currently selected file (`UUENCODE').

`^C b e`

    Encode the currently selected file.  The operation is performed in
    background (`B-UUENCODE').

`^C E`

    Decode the currently selected file (`UUDECODE').

`^C b E`

    Decode the currently selected file.  The operation is performed in
    background (`B-UUDECODE').

`^C k`

    Encode the currently selected file using mpack (`MIME-PACK').

`^C b k`

    Encode the currently selected file using mpack.  The operation is
    performed in background (`B-MIME-PACK').

`^C K`

    Decode the currently selected file using munpack (`MIME-UNPACK').

`^C b K`

    Decode the currently selected file using munpack.  The operation is
    performed in background (`B-MIME-UNPACK').

#### Encrypting Files

`^C p`

    Encrypt (using pgp) the current file (`ENCRYPT').

`^C P`

    Decrypt (using pgp) the current file (`DECRYPT').

#### Comparing Files

`^C =`

    Compare (using diff) the current ASCII file with the other
    panel's current file (`DIFF').  If both entries are directories, a
    recursive diff is performed.

`^C ESC =`

    Compare (using diff) the current ASCII file with its latest
    backup.  The latest backup is the file having the same name and a '~' at
    the end (`LAST-BACKUP-DIFF').

`^C B`

    Compare the current file with the other panel current file.  A binary
    comparison is performed (`compare').

#### Spell Checking Files

`^X I`

    Run the ispell command with the current file name as an
    argument.

#### Printing Files

`^C j`

    Print the selected files via lpr to the user specified printer or
    to the default one if no lpr options are given (`PRINT-JOB').

`^C J`

    Print the list of active printing jobs via lpq.  The default
    printer is queried if no lpq options are given
    (`PRINT-JOB-LIST').

#### Wiping Files

`^C W`

    Call gitwipe to wipe the selected files.  Asks for confirmation
    before actually wiping them in order to avoid errors (`WIPE').

See section The GIT wipe file utility, for more information.

#### Searching Files

`ESC %`

    Searche files on the file system, starting from the current directory
    (`FIND').

`ESC &`

    Use 'locate' to search files on the file system, starting from the
    current directory (`LOCATE').

`^X w`

    Locate the binary, source, and manual page files for a command
    (`WHEREIS').

`^X W`

    Locate a command; display its pathname or alias (`WHICH').

#### Managing tar based archive files

`^C a`

    Create a tar archive containing all the currently selected
    entries (`TAR').

`^C b a`

    Create a tar archive containing all the currently selected
    entries.  The operation is performed in background (`B-TAR').

`^C x`

    Create a compressed tar archive containing the current entry,
    provided it is a directory (`TAR-COMPRESS').

`^C b x`

    Create a compressed tar archive containing the current entry,
    provided it is directory.  The operation is performed in background
    (`B-TAR-COMPRESS').

`^C -`

    Create a bzip2 compressed tar archive containing the current
    entry, provided it is a directory (`TAR-BZIP2').

`^C b -`

    Create a bzip2 compressed tar archive containing the current
    entry, provided it is a directory.  The operation is performed in
    background (`B-TAR-BZIP2').

`^C X`

    Expand the selected archives into the current directory.  The utility
    used is selected based on the extension of the file
    (`GENERIC-UNPACK').

`^C b X`

    Expand the selected archives into the current directory.  The utility
    used is based on the extension of the file.  The operation is performed
    in background (`B-GENERIC-UNPACK').

`^C V`

    Expand the selected archives into an user supplied current directory.
    The utility used is selected based on the extension of the file
    (`GENERIC-UNPACK-INTO').

`^C b V`

    Expand the selected archives into an user supplied directory.  The
    utility used is based on the extension of the file.  The operation is
    performed in background (`B-GENERIC-UNPACK-INTO').

#### Installing and Uninstalling RPM packages

Red Hat Linux Distributions use a very powerful package manager called `rpm`. It is used whenever you need to install/remove/upgrade/etc a software package. The packages used by `rpm` use the extension ``.rpm'`. `git` provides default key bindings for some of the basic operations `rpm` can perform on packages: install, uninstall, upgrade and query.

`^C I`

    Install the rpm package pointed by the cursor
    (`RPM-INSTALL').

`^C b I`

    Install the rpm package pointed by the cursor
    (`B-RPM-INSTALL').  The operation is performed in background.

`^C i`

    Uninstall the rpm package pointed by the cursor
    (`RPM-UNINSTALL').

`^C b i`

    Uninstall the rpm package pointed by the cursor
    (`B-RPM-UNINSTALL').  The operation is performed in background.

`^C N`

    Upgrade the rpm package pointed by the cursor
    (`RPM-UPGRADE').

`^C b N`

    Upgrade the rpm package pointed by the cursor
    (`B-RPM-UPGRADE').  The operation is performed in background.

`^C q`

    Query the rpm package manager (`RPM-QUERY').  The default
    options used are `-qil'.  See the rpm manual page for
    more details on using rpm.

#### File Types

`^C t`

    Print the type of a file using the file utility
    (`FILE-TYPE').

#### Accessing MSDOS Files

`^C m d`, `^C m ^D`

    Change the current MSDOS directory to a given directory
    (`MTOOLS-CHDIR').

`^C m P`

    Put the currently selected files on a MSDOS floppy
    (`MTOOLS-PUT').

`^C b m P`

    Put the currently selected files on a MSDOS floppy
    (`B-MTOOLS-PUT').  The operation is performed in background.

`^C m G`

    Get some files from a MSDOS floppy and put them in a given
    directory (`MTOOLS-GET').

`^C b m G`

    Get some files from a MSDOS floppy and put them in a given
    directory (`B-MTOOLS-GET').  The operation is performed in
    background.

`^C m D`

    Delete files from a MSDOS floppy (`MTOOLS-DELETE').

`^C b m D`

    Delete files from a MSDOS floppy (`B-MTOOLS-DELETE').  The
    operation is performed in background.

`^C m L`

    List files and directories on a MSDOS floppy (`MTOOLS-DIR').

`^C m F`

    Format a MSDOS floppy (`MTOOLS-FORMAT').

`^C b m F`

    Format a MSDOS floppy (`B-MTOOLS-FORMAT').  The operation is
    performed in background.

`^C m M`

    Create a directory on a MSDOS floppy (`MTOOLS-MKDIR').

`^C b m M`

    Create a directory on a MSDOS floppy (`B-MTOOLS-MKDIR').
    The operation is performed in background.

`^C m K`

    Remove a directory from a MSDOS floppy (`MTOOLS-RMDIR').
    All the files and subdirectories in that directory are removed as well.

`^C b m K`

    Remove a directory from a MSDOS floppy (`B-MTOOLS-RMDIR').
    All the files and subdirectories in that directory are removed as well.
    The operation is performed in background.

`^C m R`

    Rename a file or directory on a MSDOS floppy
    (`MTOOLS-RENAME').

`^C b m R`

    Rename a file or directory on a MSDOS floppy
    (`B-MTOOLS-RENAME').  The operation is performed in background.

`^C m T`

    Display the contents of a file located on a MSDOS floppy
    (`MTOOLS-TYPE').

#### A different action for each file type

Many files on `UNIX` systems have one or more extensions specifying their types. For example, a file that ends in ``.c'` is a file containing a `C` program, while a file ending in ``.tar.gz'` is a `tar` archive compressed with the `gzip` utility. Having a default action for each file type, binded on the same key, seems to be a good idea because you can use that key to obtain type specific information about a file or to process it in some type specific way much easier. The `GIT` package contains a script called `gitaction` that is used to detect the current file type and perform a type specific action. See section The GIT per file type action script, for more information.

`F2`, `ESC 2`, `^X a`

    Perform an action on the current file, depending on its type
    (`FILE-ACTION').

### Directory operations

#### Creating directories

`F7`, `ESC 7`, `^X M`

    Create a new subdirectory in the current directory with the user
    supplied name (`make-directory').

#### Copying directories

`F5 (for directories)`, `ESC 5 (for directories)`, `^C C (for directories)`

    Copy the currently selected entries to the user supplied path
    (`copy').

`^C b C (for directories)`

    Copy the currently selected entries to the user supplied path.  The
    operation is performed in background (`B-COPY').

#### Deleting directories

`F8 (for subdirectories)`, `ESC 8 (for directories)`, `^C D (for subdirectories)`

    Delete the currently selected entries (`delete').

`^C b D (for directories)`

    Delete the currently selected entries.  The operation is performed in
    background (`B-DELETE').

#### Moving directories

`F6 (for directories)`, `ESC 6 (for directories)`, `^C T (for directories)`

    Move the currently selected entries to the user supplied path
    (`move').

`^C b T (for directories)`

    Move the currently selected entries to the user supplied path.  The
    operation is performed in background (`B-MOVE').

#### Renaming directories

`^C R (for directories)`

    Rename the current file or directory with the user supplied name
    (`RENAME').

`^C b R (for directories)`

    Rename the current file or directory with the user supplied name.  The
    operation is performed in background (`B-RENAME').

#### Comparing Directories

`^C c q`

    Quickly compare the files in the left panel with the files in the right
    one.  Only the file names, sizes and time stamps are considered in the
    comparison.

`^C c t`

    Compare the files in the left panel with the files in the right one.
    The contents of each file in the current panel will be compared against
    the contents of its couterpart (if any) from the other panel.

`^C f d`

    Recursively compare (using diff -r -q) the current directory with
    the other panel's current directory (`FAST-DIFF').  Print on
    standard output the names of the files that differ.

`^C d`

    Compare (using diff) the current directory with the other panel
    current directory.  For successful operation, both panels should contain
    the same directory (`DIR-DIFF').

`^C b d`

    Compare (using diff) the current directory with the other panel
    current directory.  For successful operation, both panels should contain
    the same directory.  The operation is performed in background
    (`DIR-DIFF').

#### Summarize directory usage

`^C U`

    Display the output of the du -s command on the status line
    (`DIRECTORY-USAGE').

#### Changing directories

`^X d`, `^X ^D`

    Change the current working directory.  The user is asked for a new
    directory name and the new directory is added to the directory history
    (`change-directory').

See section Directory History, for more information.

`ESC a c`

    Change the current directory of the current panel to the directory of
    the other panel (`adapt-current-directory').

`ESC a o`

    Change the current directory of the other panel to the directory of the
    current panel (`adapt-other-directory').

#### Directory History

Users usually work on a limited set of subdirectories. Providing a fast method of switching between a number of intensively used directories is a good idea and `git` has a set of builtin commands for doing it.

Usually new directories are added to the directory history when the ``change-directory'` built-in command is used. `git` also adds the current directory to the history list when started, when the directory history is reseted and when a command having a non empty ``new-dir'` field successfully completes its execution. See section The new-dir field, for more information.

`^X ^N`

    Go to the next directory in the history (`next-directory').

`^X ^P`

    Go to the previous directory in the history
    (`previous-directory').

`^X ^R`

    Reset the entire directory history.  As explained above, the current
    directory becomes the only directory in the history
    (`reset-directory-history').

#### Hot Keys

`git` provides default key bindings for switching to a number of important directories as "/", "..", "$HOME", etc.

`ESC /`

    Go to the `/' directory (`ROOT-DIR').

`ESC .`

    Go to the `..' directory (`up-one-dir').

`ESC h`

    Go to the `~' ($HOME) directory (`HOME-DIR').

`ESC i`

    Go to the `/usr/include' directory (`INCLUDE-DIR').

`ESC ESC 1`

    Go to the `/mnt/fd0' directory (`FIRST-FLOPPY-DIR').

`ESC ESC 2`

    Go to the `/mnt/fd1' directory (`SECOND-FLOPPY-DIR').

### Compiling programs

`F9`, `ESC 9`, `^X m`

    Run the make command in the current directory.  Use -k as the
    default option (`MAKE').

`^X b m`

    Run the make command in background in the current directory
    (`B-MAKE').

See section The GIT per file type action script, for more information.

### Sending/receiving ascii/binary mail

`^C 2 a`

    Send the current current ascii file by mail to an user supplied email
    address (`ASCII-MAIL').

`^C b 2 a`

    The same as `ASCII-MAIL', the only difference being that the
    command runs in background (`B-ASCII-MAIL').

`^C 2 b`

    Send the current current binary file by mail to an user supplied list of
    email addresses.  The file is uuencoded first (`BINARY-MAIL').

`^C b 2 b`

    The same as `BINARY-MAIL', the only difference being that the
    command runs in background (`B-BINARY-MAIL').

`^C 2 m`

    Send the current current binary file by mail to an user supplied list of
    email addresses.  The file is encoded with mpack first
    (`MIME-MAIL').

`^C b 2 m`

    The same as `MIME-MAIL', the only difference being that the command
    runs in background (`B-MIME-MAIL').

`ESC x r m`

    Run the emacs -f rmail command.  This will start the Emacs's
    `rmail' function so that you can read your mail (`READ-MAIL').

### Starting a sub-shell

`^X z`

    Call a sub-shell as specified by the $GIT_SHELL environment
    variable (`SUB-SHELL').

See section Environment Variables, for more information.

### Using grep and recursive grep

`^X g`

    Search using grep all the selected files for a given pattern
    (`GREP').

`^X g`

    Search recursively using gitrgrep all the user specified files
    and directories for a given pattern (`RECURSIVE-GREP').

See section The GIT recursive grep script, for more information.

### Locking your console

Having a lock feature might be a good idea and, since not all the `UNIX` systems provide one, `git` tries to get around the problem ...

`^X p`

    Prompt the user for a password and locks the console until the same
    password is reinserted (`lock').

### Refreshing the screen contents

Sometimes your screen needs to be refreshed. Just think about what happens when somebody wants to talk with you and the talk daemon writes something like this

    Message from Talk_Daemon@galei.cs.vu.nl at 12:15 ...
    talk: connection requested by andrei@galei.cs.vu.nl.
    talk: respond with:  talk andrei@galei.cs.vu.nl

on your screen. And sometimes you might also want to re-read the current directories. `git` provides a built-in command for refreshing the screen contents.

`^L`

    Re-read the directories contents and refresh the screen (`refresh').

### Reseting your terminal

`^X ^L`

    Call reset in order to reset the terminal to its default
    settings (`TTY-RESET').

### Mounting/unmounting file systems

People dealing with lots of files usually need to save/restore/copy files from/to other file systems. In order to be more efficient, `git` provides a set of key bindings for mounting and unmounting file systems. See section The GIT mount utility, for more information.

The default key bindings set has been designed to work under `Linux`, but it can be easily changed for other `UNIX` systems with different device names. Reading the configuration file ``.gitrc.common'` should be enough. See section Hot Keys, for more information.

As a convention, the ``/mnt'` directory is used to store an empty subdirectory for each mountable file system. Each file system is actually mounted in its counterpart ``/mnt'` subdirectory. Try to follow this convention since the `gitmount` script is heavily based on it. See section Customizing GNU Interactive Tools, for more information.

`ESC m a`

    Call mount(1) in order to mount the first floppy
    (`/dev/fd0') in the `/mnt/fd0' directory (`MOUNT-A').

`ESC m b`

    Call mount(1) in order to mount the second floppy
    (`/dev/fd1') in the `/mnt/fd1' directory (`MOUNT-B').

`ESC m c`

    Call mount(1) in order to mount the cdrom
    (`/dev/cdrom') in the `/mnt/cdrom' directory (`MOUNT-CDROM').

`ESC m f`

    Call mount(1) in order to mount the first floppy
    (`/dev/fd0') in the `/mnt/floppy' directory (`MOUNT-FLOPPY').

`ESC m z`

    Call mount(1) in order to mount the zip drive
    (`/dev/zip') in the `/mnt/zip' directory (`MOUNT-ZIP').

`ESC m j`

    Call mount(1) in order to mount the jaz drive
    (`/dev/jaz') in the `/mnt/jaz' directory (`MOUNT-JAZ').

`ESC m t`

    Call mount(1) in order to mount the file systems corresponding to
    the selected subdirectories.  For example, if you are in the `/mnt'
    directory and the `cdrom' and `zip' subdirectories are
    selected, the cdrom and the zip disk will be mounted (`MOUNT-THESE').

`ESC r a`

    Call umount(1) in order to remove (unmount) the first floppy
    (`/dev/fd0') (`UMOUNT-A').

`ESC r b`

    Call umount(1) in order to remove (unmount) the second floppy
    (`/dev/fd1') (`UMOUNT-B').

`ESC r c`

    Call umount(1) in order to remove (unmount) the cdrom
    (`/dev/cdrom') (`UMOUNT-CDROM').

findex UMOUNT-CDROM

`ESC r f`

    Call umount(1) in order to remove (unmount) the first floppy
    (`/dev/fd0') (`UMOUNT-FLOPPY').

`ESC r z`

    Call umount(1) in order to remove (unmount) the zip drive
    (`/dev/zip') (`UMOUNT-ZIP').

`ESC r j`

    Call umount(1) in order to remove (unmount) the jaz drive
    (`/dev/jaz') (`UMOUNT-JAZ').

`ESC r t`

    Call umount(1) in order to remove (unmount) the file systems
    mounted into the selected subdirectories.  For example, if the current
    directory is `/mnt' and the `cdrom' and `zip'
    subdirectories are selected, the cdrom and the zip disk will be
    unmounted (`UMOUNT-THESE').

### Getting some useful system information

`^X T`

    Call date(1) in order to display the current time/date
    (`DATE').

`ESC S f`

    Call finger(1) in order to display information about local and
    remote users  (`FINGER').

`ESC S m`

    Call mount(1) in order to display a list of the currently
    mounted file systems (`MOUNTED-FILE-SYSTEMS').

`ESC S q`

    Call quota(1) in order to display a user file system disk quota
    and quota (`QUOTA').

`ESC S s`

    Call df(1) in order to get the status of the currently mounted
    file systems (`DISK-FREE-SPACE').

`ESC S u`

    Call users(1) in order to get the name of the currently logged in
    users (`USERS').

`ESC S v`

    Call $GIT_VMSTAT(1) in order to get the current virtual memory
    status.  This is very system dependent, Linux uses free,
    other systems use vmstat, so the $GIT_VMSTAT variable is
    used to deal with this (`VIRTUAL-MEMORY-STATUS').

See section Environment Variables, for more information.

`ESC S w`

    Call who(1) in order to find out who is on the system
    (`WHO').

### How to look at the environment variables

`^X E`

    Call env(1) in order to display the current environment
    (`ENV').

`^X H`

    Call xhost(1) in order to add/remove hosts names to the list
    allowed to make connection to the X server (`XHOST').

### Viewing/killing processes

There are at least two kinds of `ps`(1) utilities. One that accepts (more or less) combinations of the 'a', 'u', and 'x' flags and another that accepts combinations of 'e', 'f' and 'l' flags. Since is quite difficult to test which one works fine on a given `UNIX` system, `git` provides key bindings for both of them. Anyway, if your `ps`(1) fails to accept the predefined combinations, please take a look in its manual and then modify the ``.gitrc.TERM'` file as needed.

Since the number of possible combinations of flags in the `ps` command line is quite big and *very* system dependent, there is no real reason to display them all here. We are only interested in giving you a starting point in your search through the ``.gitrc.TERM'` file.

Note also that you can display a list of processes using `ps`(1) or browse through a list of them (killing as needed) using `gitps`. As a convention, we have used the same key sequence for a given set of `ps`(1) flags for both `ps`(1) and `gitps`, the only difference being that `ps`(1) keys end in an uppercase letter. See section The GIT process viewer/killer, for more information.

Under Linux it is possible to see a tree of processes using `pstree`(1).

Here there are the default key bindings for the 'e', 'f' and 'l' `ps`(1) flags combinations:

`ESC P b`, `ESC P c`, `ESC P e`

    Call gitps or ps(1) in order to browse through or display
    a list of currently running processes (`GITPS', `PS').

... and the default key bindings for the 'a', 'u' and 'x' `ps`(1) flags combinations:

`ESC P a`, `ESC P l`, `ESC P u` `ESC P x`, `ESC P y`

    Call gitps or ps(1) in order to browse through or display
    a list of currently running processes (`GITPS', `PS').

`ESC P T`

    Call pstree(1) in order to displat the tree of currently running
    processes (`PSTREE').

`^X k`

    Call kill(1) in order to kill a user specified process with a
    given signal (`KILL').

### Synchronizing the file systems

`^X S`

    Call sync(1) in order to synchronize all the file systems
    (`SYNC').

### Reading the documentation

`^X q`

    Read a manual page.  The user is prompted for its name (`MAN').

`F1`, `ESC 1`, `^X i`

    Read an info documentation.  The user is prompted for the documentation
    name (`INFO').

`^X h`

    Read the html documentation using the viewer specified in
    GIT_BROWSER, or with lynx if GIT_BROWSER is not set
    (`HTML').

### Exiting GNU Interactive Tools

`F10`, `ESC 0`, `^X ^C`, `^X c`

    Exit GNU Interactive Tools (`exit').

## The GIT process viewer/killer

`gitps` is an interactive process viewer/killer. It calls internally the `ps`(1) utility. This is a brief description of the command line arguments.

`-h` print this help message `-v` print the version number `-i` print the installation directory `-c` use ANSI colors `-b` don't use ANSI colors `-l` don't use the last screen character `-p` pass the remaining arguments to ps(1)

Running `gitps` it is self explanatory. Use the `arrows`, `PageUp`, `PageDown`, `Home`, `End`, `^N`, `^P`, `^V`, `ESC v`, `Space` and `Backspace` to move in the list, `^L` to refresh it, `Enter` to change the default signal and `F10`, `q` or `^X ^C` to leave.

You can change these keys, just read the GITPS-Setup, GITPS-Color, GITPS-Monochrome and GITPS-Keys sections in the configuration files ``.gitrc.TERM'`.

## The GIT ASCII/HEX file viewer

`gitview` is an ASCII/HEX file viewer. Use the `arrows`, `PageUp`, `PageDown`, `Home`, `End`, `^N`, `^P`, `^V`, `ESC v`, `Space` and `Backspace` to move in the file, `^L` to refresh the screen and `F10`, `q` or `^X ^C` to leave.

You can change these keys, just read the GITVIEW-Setup, GITVIEW-Color, GITVIEW-Monochrome and GITVIEW-Keys sections in the configuration files ``.gitrc.TERM'`.

Here is a brief description of the command line arguments:

`-h` print this help message `-v` print the version number `-i` print the installation directory `-c` use ANSI colors `-b` don't use ANSI colors `-l` don't use the last screen character

## The GIT key sequences display utility

`gitkeys` is a program that displays the key sequence sent by the pressed key. This is the key sequence received by `GIT` tools, so this program is useful when setting up the ``.gitrc.TERM'` configuration files.

## The GIT wipe file utility

`gitwipe` is an utility for wiping files. It overwrites the file contents with a random sequence of numbers and then calls ``sync'`().

Note that `gitwipe` does *not* remove the wiped file since (under `Linux` at least) the ``sync'`() system call might return before actually writing the new file contents to disk. Removing the file might be dangerous because some file systems can detect that the blocks in the removed wiped file are no longer used and never write them back to disk in order to improve performance. It is up to you to remove the file(s) at a later moment.

## The GIT mount utility

`gitmount` is a script that allows you to mount a list of block devices (specified in the command line), without specifying the file system type. With a command like `gitmount fd0 cdrom' the first floppy will be mounted in ``/mnt/fd0'` and the cdrom will be mounted in ``/mnt/cdrom'`. Make sure your ``/etc/fstab'` settings are correct.

You don't need to know the file system type anymore. If you want to use `gitmount` with the block device ``/dev/xxx'` then the directory ``/mnt/xxx'` is created if it doesn't exist. `gitmount` will attempt to create the necessary directories, but root permissions might be required.

## The GIT per file type action script

`gitaction` is a script that executes a different action for each file type specified. It is called by the `git` program when pressing `F2`, `ESC 2` or `^Xa`.

The first parameter is the current directory name and the second one is the file name to be matched against the default patterns. The matching is done using the shell 'case' statement.

If you press `F2`, `ESC 2` or `^Xa` on a ``*.c'` file, `git` will compile it, if you press `F2`, `ESC 2` or `^Xa` on a ``*.tar.gz'` file, `git` will list the tar archive contents, if you press the same keys on a ``*.gz'` file, `git` will display its uncompressed contents on the screen, etc ...

If you want to find out what the default action for each file type is (or if you want to modify it), just read/modify the `gitaction` script. If no pattern is found, the file is displayed using `more`.

If you press `F2`, `ESC 2` or `^Xa` on a ``*.gif'` file or ``*.jpg'` file and you have the `zgv` utility installed, you will be able to see it. If you want to change the gif/jpeg viewer, all you need to do is to change its name in the `gitaction` script.

Also, you can add a `.gitaction` shell script in your home directory and/or in any other directory. Before trying to match a file name, `gitaction` will attempt to execute `./.gitaction`. If that one fails to match the file name against its patterns, it backs up to `$HOME/.gitaction`. When this one fails too the patterns in `gitaction` are tried. For an example of how to write .gitaction scripts take a look at the `.gitaction` shell script provided as part of the distribution and installed in the ``$(prefix)/bin'` directory.

## Unified archive unpacking

`gitunpack` is a shell script that accepts a directory and a set of archives as its command line parameters, and then attempts to unpack those archives in the given directory, selecting the utility used to unpack the archives based on the archive extensions.

## The GIT recursive grep script

`gitrgrep` is a very small script that calls `grep` recursively. It accepts `grep` like options / parameters, the only difference being that file specifications should be quoted:

    	gitrgrep main '*.c'

    or

    	gitrgrep errno '*.c *.h'

`gitregrep` and `gitrfgrep` are recursive versions of the egrep and fgrep programs.

# Customizing GNU Interactive Tools

## Environment Variables

The configuration files use shell environment variables to call the shell, editor, mail reader, html viewer, compress and virtual memory status utility. That means that if you set GIT_SHELL, GIT_EDITOR, GIT_RMAIL, GIT_BROWSER, or GIT_VMSTAT to some value, that value will be used instead of the default one. The defaults are:

    	GIT_SHELL='/bin/sh'
    	GIT_EDITOR='vi'
    	GIT_RMAIL='emacs -f rmail'
    	GIT_PAGER='more'
    	GIT_VMSTAT='free'
    	GIT_BROWSER='lynx'

If SHELL is defined, GIT_SHELL will be set to that value. If EDITOR is defined, GIT_EDITOR will be set to that value. If you want to change the default settings, put something like this into your ``.profile'`:

    	export GIT_SHELL='/usr/local/bin/bash'
    	export GIT_EDITOR='emacs'
    	export GIT_RMAIL='elm'
    	export GIT_PAGER='less'
    	export GIT_VMSTAT='vmstat'
    	export GIT_BROWSER='netscape'

## Configuration Files

There is one configuration file per terminal type in `GIT`. The configuration file(s) reside in the user's home directory or (the default versions) in the directory ``$(prefix)/lib'` (usually ``/usr/local/lib'`).

Their generic name is ``.gitrc.TERM'`. `GIT` allows each terminal type to have its own configuration file (TERM is the value of the TERM environment variable (e.g ``vt102'`); for the `Linux` console the configuration file is ``.gitrc.console'`).

Since most of the key bindings are common to all the terminal types, a configuration file called ``.gitrc.common'` is parsed before parsing the normal ``.gitrc.TERM'` configuration file, the later one defining only those keys that are terminal specific. However, if a key binding is redefined in the ``.gitrc.TERM'` file, that binding will be used.

If the `GIT` package have been compiled without passing the ``--enable-terminfo'` option to the `configure` script and your system has a huge ``termcap'` database (``/etc/termcap'`), you can copy the termcap definition(s) of your terminal(s) in a file called, lets say ``.termcap'` and put it in your home directory. After that, set your TERMCAP environment variable to point to it. You should add something like this to your ``.profile'`:

    TERMCAP=`/home/mike/.termcap'

The interactive programs in the `GIT` package can run without such a file, but on systems with huge ``termcap'` databases, copying the definitions of the most used terminals in a local ``.termcap'` file will lead to a faster start.

The ``.gitrc.TERM'` it is first time searched in the home directory then, if not found, in the directory ``$(prefix)/lib'` (usually ``/usr/local/lib'`). The configuration file is structured on sections, each section containing variables in the following format:

    	`variable-name' = `first-field';`second-field'; ...

After the ``variable-name'` at least one space or tab is required. All characters after a ``#'` are ignored and if you comment a section name, the whole section is ignored.

Section names are enclosed in rectangular brackets (``['` and ``]'`). Note that this manual don't include them while refering to section names.

The `GIT` package contains three major programs: `git`, `gitps` and `gitview`. Each one has its own sections in the configuration files. There is also a global setup section called ``Setup'` that is used by all these programs.

### Writing key sequences

`GIT` contains three interactive programs. Their names are: `git` (this is the file system browser), `gitps` (this is the process viewer/killer and `gitview` (this is the ASCII/HEX file viewer). Each one of these programs has its own set of key bindings.

The convention used in describing key bindings are very simple. Here there are some examples that will help you to understand them. The corresponding `Emacs` conventions will help you even more.

`^A` means keeping the Ctrl key down and pressing the `a` key (`C-a`).

The `ESC` character is represented as `^[` so that you can use the meta character (`M-` ) where available (or the `ESC` key):

`^[a` corresponds to `M-a` (pressing the `ESC` key and then `a`).

The `^` character is represented as `^^`.

The `backspace` character is represented as `^_`.

The `Ctrl-SPACE` character (`C-SPC`) is represented as `^$`.

The space (`SPC`) character is represented as `^@`.

Note that the key bindings notation described here is only used in the configuration files. For the sake of readability this manual uses `ESC` for the `ESC` key, `SPC` for the `SPACE` key and `RET` for the `RETURN` (`ENTER`) key.

### The global setup section

In this section the variables have only one field.

``AnsiColors'`

This variable should be set to ``ON'` if the terminal supports standard ``ANSI'` color sequences. Otherwise it should be ``OFF'`. If ``AnsiColors'` is ``ON'`, ``GITxxx-Color'` sections will be used in the configuration files ``.gitrc.TERM'`. Otherwise, `GIT` interactive programs will use the ``GITxxx-Monochrome'` sections.

``UseLastScreenChar'`

This variable is used for terminals that can't write on the last character of the screen without scrolling the entire screen. If your terminal has no problem writing there (`Linux` console, vt100, vt102, xterm, ...) set it to ``ON'`. Otherwise (hpterm), it should be ``OFF'`.

``StartupScrollStep'`

This variable specifies the scroll step initial value for both panels.

### git Sections

#### git Setup

In this section the variables have only one field.

``StartupFileDisplayMode'`

This variable specifies the file specific information displayed at startup. It can be any of ``OwnerGroup'`, ``DateTime'`, ``Size'`, ``Mode'` or ``FullName'`. Its value initially affects both panels but it can be changed separately afterward.

``StartupFileSortMethod'`

This variable specifies the startup sort method. It can be any of ``Name'`, ``Extension'`, ``Size'`, ``Date'`, ``Mode'`, ``OwnerId'`, ``GroupId'`, ``OwnerName'` or ``GroupName'`. Its value initially affects both panels but it can be changed separately afterward.

``ConfirmOnExit'`

If this variable is ``ON'`, the user is prompted for confirmation at exit.

``HistoryFile'`

This variable specifies the history file name. The default value is ``~/.githistory'`.

``InfoDisplay'`

If this variable is ``OFF'`, auxiliary file informations are not displayed. This can be useful if you are using a very slow terminal.

``LeadingDotMatch'`

If this variable is ``OFF'` when matching files for select-files-matching-pattern / unselect-files-matching-pattern then the leading '.' in the file name is matched only explicitly.

``TypeSensitivity'`

If this variable is ``OFF'`, colors are not used when displaying files. Normally, the information in the ``GIT-FTI'` section is used to display files with different colors, depending on their types. Note that ``TypeSensitivity'` is automatically set to ``OFF'` when ``AnsiColors'` is ``OFF'`. See section Setting up colors for different file types, for mor information.

``NormalModeHelp'` ``CommandLineModeHelp'`

These variables describe the status bar contents for each `git` mode when no errors occurred. `git` can display on the status bar a help string and/or some system information (system type, hostname, machine type and the current date) using escape characters:

    	\s      ->      the system type
    	\h      ->      the host name
    	\m      ->      the machine type
    	\d      ->      the current date

See section Panel modes, for more information.

#### Using git on colors displays

In this sections the variables have only one field.

These section allows you to customize the colors of `git`. Reading the ``.gitrc.TERM'` configuration file is self explanatory.

#### Using git on monochrome displays

In this sections the variables have only one field.

These section allows you to customize the appearance of `git` on monochrome displays. Reading the ``.gitrc.TERM'` configuration file is self explanatory.

#### Defining keys

These section describes the actions `git` takes when a specified key is pressed. A variable can have up to 6 fields separated by ';'. Each line in this section looks like:

    `key-sequence' = `command-name';`formatted-command';`new-dir';
    	       `save-screen';`pause';`hide'

Note that you can't continue the variable fields description on the next line.

#### The key-sequence field

``key-sequence'` is the key sequence associated with the given command. You can use any key sequence that doesn't start with an ascii character (0x20 to 0x7e).

Symbolic key names (`F0`, `F1`, `F2`, ... `F10`, `UP`, `DOWN`, `RIGHT`, `LEFT`, `INS`, `DEL`, `HOME`, `END`, `PGUP` and `PGDOWN`) can be used instead of the key sequence. If some keys don't have a ``termcap'`/ ``terminfo'` description (like the `F11`/`F12` keys on the `Linux` console) you can specify the key sequence in the usual way.

#### The command-name field

``command-name'` is a command generic name. Even if it is not always used, the ``command-name'` must be present (if a command is associated with a ``key-sequence'`). If it is not, no action will be taken when pressing ``key-sequence'`.

There are two types of commands in `git`: built-in commands and user defined commands. If the ``command-name'` section contains a built-in command specification, the other fields are ignored.

Note that by convention built-in command names contain only lower case letters while user defined command names contain only upper case letters.

#### The formatted-command field

- ``formatted-command'` is a shell command which can contain some scanf like format specifiers. They are used to get the current entry name, owner, group, mode, etc.

Note that using uppercase ``format specifiers'` you will be able to access the other panel path, file and directory names, etc.

These are the available ``format specifiers'`:

#### The %s format specifier

The format of %s is: %s{question,default_answer}.

When `git` encounters a %s in the ``formatted-command'` it asks the user the question ``question'` whose default answer is ``default_answer'` and replaces the ``%s{ , }'` with the user's answer. Both ``question'` and ``default_answer'` can contain any other ``format specifiers'` except %s.

Note that there should be no spaces between %s and '{'.

#### The %f format specifier

`git` will replace %f with the current directory entry name only if it is a file (not a directory).

#### The %d format specifier

`git` will replace %d with the current directory entry name only if it is a directory (not a file).

#### The %l format specifier

`git` will replace %l with the current directory entry name only if it is a symbolic link with no target.

#### The %t format specifier

`git` will replace %t with the current directory entry name only if it is a named pipe.

#### The %z format specifier

`git` will replace %z with the current directory entry name only if it is a socket.

#### The %a format specifier

`git` will always replace %a with the current directory entry name.

#### The %m format specifier

`git` will always replace %m with the current file mode.

#### The %g format specifier

`git` will always replace %g with the current file group.

#### The %o format specifier

`git` will always replace %o with the current file owner.

#### The %p format specifier

`git` will always replace %p with the current panel path.

#### The %b format specifier

`git` will always replace %b with the current panel directory name.

#### The %i format specifier

`git` will always replace %i with all the current panel selected entry names.

#### The %? format specifier

The format of %? is: %?{confirmation}.

`git` uses this format specifier only to ask for confirmation before expanding / executing the current command. The ``confirmation'` string is displayed and, if the user doesn't confirm, the command is aborted. Otherwise, %?{confirmation} expands to a null string and the command is expanded / executed normally.

#### The new-dir field

If the ``formatted-command'` successfully exits (exit code = 0) or it has no body and this field is present then ``new-dir'` will become the current panel directory.

The character '~' used at the beginning of the ``new-dir'` field is replaced by the user's home directory.

#### The save-screen field

This field is a character (usually 'y' or 'n') that tells `git` to save ('y') or not to save ('n') the terminal's screen after executing the ``formatted-command'`. Saving the screen is not necessary while editing or viewing a file because the information left after the editor or the viewer exits is not important. Saving the screen means that that screen will be restored before the execution of the next command. Currently this field is used only if you are working as a super user under `Linux` on a virtual console. Its default value is 'y'.

#### The pause field

Users may wish to read some commands's results before repainting the panels. If this field is present git will wait for a key to be pressed before restoring the panels. Its default value is 'n'.

#### The hide field

Some commands that don't displaying any useful information if successfully complete their execution: `mount`, `chmod`, `chown`, `chgrp`, `sync` ... and, if an error occurs, a line or two are sent to stderr. If this option is 'y', the stdout and stderr will be redirected to some files (``git.1.pid'` and ``git.2.pid'`, where pid is `git`'s pid) and only if the command's exit code is not 0, the ``git.2.pid'` file will be displayed, line by line, onto the status bar. This way the panels will not be deleted and then repainted and the command appears to be built-in. ``git.1.pid'` and ``git.2.pid'` are created in the temporary directory specified in the `TMPDIR` environment variable (or "/tmp" if `TMPDIR` is not defined). The default value of the `hide` field is 'n'.

### Setting up colors for different file types

This sections contains entries of the form:

    `pattern' = `foreground'; `background'; `brightness'

where ``pattern'` is a file name matching pattern, ``foreground'`, ``background'` and ``brightness'` are the color specification to be used when a file whose name match the given ``pattern'` is displayed in a panel. Colors can be turned off using the ``TypeSensitivity'` variable in the ``GIT-Setup'` seection.

### gitps Sections

#### gitps Setup

In this section the variables have only one field.

``Help'`

This variable describe `gitps`'s status bar contents.

#### Using gitps on color displays

In this sections the variables have only one field.

These section allows you to customize the colors of `gitps`. Reading the ``.gitrc.TERM'` configuration file is self explanatory.

#### Using gitps on monochrome displays

In this sections the variables have only one field.

These section allows you to customize the appearance of `gitps` on monochrome displays. Reading the ``.gitrc.TERM'` configuration file is self explanatory.

#### Defining keys

### gitview Sections

#### gitview Setup

In this section the variables have only one field.

``Help'`

This variable describe `gitps`'s status bar contents.

#### Using gitview on color displays

In this sections the variables have only one field.

These section allows you to customize the colors of `gitview`. Reading the ``.gitrc.TERM'` configuration file is self explanatory.

#### Using gitview on monochrome displays

In this sections the variables have only one field.

These section allows you to customize the appearance of `gitview` on monochrome displays. Reading the ``.gitrc.TERM'` configuration file is self explanatory.

#### Defining keys

# GNU Interactive Tools limitations

Background commands (& terminated)can be specified in the configuration file but their result (stdout and stderr redirection), will be overwritten by the result of newer commands and, if an error occurs, it will not be seen.

When `git` is compiled for `Linux`, the default built-in color descriptions are for color monitors, so you can't (decently) run `git` on a b/w monitor without the ``.gitrc.TERM'` file correctly configured. ``.gitrc.TERM'` should be configured with ``AnsiColors'` = OFF.

Job support is implemented only in `git`.

Due to the fact that the ';' character is used as a field separator in the configuration files, you can't write something like that in the ``.gitrc.TERM'` files:

^AAA = SHOW-USERS-AND-GROUPS; more /etc/passwd; more /etc/group

because 'more /etc/group' will be considered as a directory to switch to. You must write a small script instead:

#! /bin/sh

more /etc/passwd more /etc/group

Supposing the script name is `show_ug`, the ``.gitrc.TERM'` line will look like this:

^AAA = SHOW-USERS-AND-GROUPS; show_ug

There is no support for appearance modes on magic-cookie terminals.

# GNU Interactive Tools bugs

Any questions, comments, or bug reports, should be emailed to ``Tudor Hulubei <tudor@cs.unh.edu>'`. Please include the version number.

# Key Index

Jump to: ^ - d - e - f - h - i - p - t - u

## ^

- ^[]
- ^]
- ^A
- ^B, LEFT
- ^C -
- ^C .
- ^C /
- ^C 2 a
- ^C 2 b
- ^C 2 m
- ^C =
- ^C a
- ^C B
- ^C b -
- ^C b .
- ^C b /
- ^C b 2 a
- ^C b 2 b
- ^C b 2 m
- ^C b a
- ^C b C
- ^C b C (for directories)
- ^C b D
- ^C b d
- ^C b D (for directories)
- ^C b E
- ^C b e
- ^C b f Z
- ^C b G
- ^C b H
- ^C b i
- ^C b I
- ^C b k
- ^C b K
- ^C b M
- ^C b m D
- ^C b m F
- ^C b m G
- ^C b m K
- ^C b m M
- ^C b m P
- ^C b m R
- ^C b N
- ^C b O
- ^C b o
- ^C b R
- ^C b R (for directories)
- ^C b r G
- ^C b r M
- ^C b r O
- ^C b S
- ^C b T
- ^C b T (for directories)
- ^C b V
- ^C b x
- ^C b X
- ^C b Z
- ^C b z
- ^C C (for directories)
- ^C c q
- ^C c t
- ^C d
- ^C D (for directories)
- ^C E
- ^C e
- ^C ESC =
- ^C f d
- ^C f Z
- ^C G
- ^C H
- ^C I
- ^C i
- ^C J
- ^C j
- ^C k
- ^C K
- ^C M
- ^C m D
- ^C m d, ^C m ^D
- ^C m F
- ^C m G
- ^C m K
- ^C m L
- ^C m M
- ^C m P
- ^C m R
- ^C m T
- ^C N
- ^C n d
- ^C n u
- ^C o
- ^C O
- ^C p
- ^C P
- ^C q
- ^C R
- ^C R (for directories)
- ^C r G
- ^C r M
- ^C r O
- ^C s
- ^C S
- ^C t
- ^C T (for directories)
- ^C U
- ^C u
- ^C V
- ^C W
- ^C X
- ^C x
- ^C z
- ^C Z
- ^C ~
- ^E
- ^F, RIGHT
- ^H, BKSPC
- ^K
- ^L
- ^O, ESC o
- ^R, ^Xr
- ^S, ^Xs
- ^SPC
- ^U
- ^W
- ^X 0
- ^X 1
- ^X 2
- ^X 4 a
- ^X ^F
- ^X ^I
- ^X ^L
- ^X ^P
- ^X ^R
- ^X ^X
- ^X b m
- ^X d, ^X ^D
- ^X E
- ^X e
- ^X G
- ^X g
- ^X h
- ^X H
- ^X I
- ^X k
- ^X N
- ^X P
- ^X p
- ^X q
- ^X S
- ^X T
- ^X v
- ^X w
- ^X W
- ^X z
- ^Y

## d

- DEL, ^D
- DOWN, ^N

## e

- END, ESC >
- ESC %
- ESC &
- ESC +
- ESC -
- ESC .
- ESC /
- ESC 5 (for directories)
- ESC 6 (for directories)
- ESC 8 (for directories)
- ESC \
- ESC a c
- ESC a o
- ESC b
- ESC BKSPC
- ESC c
- ESC d
- ESC d a
- ESC d d
- ESC d f
- ESC d m
- ESC d o
- ESC d s
- ESC ESC 1
- ESC ESC 2
- ESC ESC RET
- ESC f
- ESC g
- ESC h
- ESC i
- ESC j
- ESC k
- ESC l
- ESC m a
- ESC m b
- ESC m c
- ESC m f
- ESC m j
- ESC m t
- ESC m z
- ESC n
- ESC p
- ESC P a, ESC P l, ESC P u
- ESC P b, ESC P c, ESC P e
- ESC P T
- ESC P x, ESC P y
- ESC r a
- ESC r b
- ESC r c
- ESC r f
- ESC r j
- ESC r t
- ESC r z
- ESC RET
- ESC s d
- ESC s e
- ESC S f
- ESC s g i
- ESC s g n
- ESC s m
- ESC S m
- ESC s n
- ESC s o i
- ESC s o n
- ESC S q
- ESC s s
- ESC S s
- ESC s u
- ESC S u
- ESC S v
- ESC S w
- ESC SPC
- ESC u
- ESC w
- ESC x r m

## f

- F1, ESC 1, ^X i
- F10, ESC 0, ^X ^C, ^X c
- F2, ESC 2, ^X a
- F3, ESC 3
- F4, ESC 4
- F5 (for directories)
- F5, ESC 5, ^C C
- F6 (for directories)
- F6, ESC 6, ^C T
- F7, ESC 7, ^X M
- F8 (for directories)
- F8, ESC 8, ^C D
- F9, ESC 9, ^X m

## h

- HOME, ESC <

## i

- INS, ^T, ^X \, ^\

## p

- PGDOWN, ^V
- PGUP, ESC v

## t

- TAB, ^I, ^X o

## u

- UP, ^P

# Command Index

Jump to: a - b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y

## a

- adapt-current-directory
- Adapt-other-directory
- ASCII-MAIL

## b

- B-ASCII-MAIL
- B-BINARY-MAIL
- B-BZIP2-COMPRESS
- B-BZIP2-UNCOMPRESS
- B-CHGRP
- B-CHMOD
- B-CHOWN
- B-COMPRESS
- B-COPY
- B-COPY (for directories)
- B-DELETE
- B-DELETE (for directories)
- B-DIRR-DIFF
- B-GENERIC-UNPACK
- B-GENERIC-UNPACK-INTO
- B-LINK
- B-MAKE
- B-MIME-MAIL
- B-MIME-PACK
- B-MIME-UNPACK
- B-MOVE
- B-MOVE (for directories)
- B-MTOOLS-DELETE
- B-MTOOLS-FORMAT
- B-MTOOLS-GET
- B-MTOOLS-MKDIR
- B-MTOOLS-PUT
- B-MTOOLS-RENAME
- B-MTOOLS-RMDIR
- B-R-CHGRP
- B-R-CHMOD
- B-R-CHOWN
- B-RENAME
- B-RENAME (for directories)
- B-RPM-INSTALL
- B-RPM-UNINSTALL
- B-RPM-UPGRADE
- B-SPLIT
- B-SYMLINK
- B-TAR
- B-TAR-BZIP2
- B-TAR-COMPRESS
- B-UNCOMPRESS
- B-UUDECODE
- B-UUENCODE
- backward-char
- backward-delete-char
- backward-kill-word
- backward-word
- beginning-of-line
- beginning-of-panel
- BF-UNCOMPRESS
- bin-packing
- BINARY-MAIL
- BZIP2-COMPRESS
- BZIP2-UNCOMPRESS

## c

- capitalize-word
- change-directory
- CHANGE-LOG
- CHGRP
- CHMOD
- CHOWN
- compare
- COMPRESS
- copy
- copy (for directories)

## d

- DATE
- DECRYPT
- delete
- delete (for directories)
- delete-char
- delete-horizontal-space
- DIFF
- DIRECTORY-USAGE
- DIRR-DIFF
- DISK-FREE-SPACE
- downcase-word

## e

- EDIT
- ENCRYPT
- end-of-line
- end-of-panel
- enlarge-other-panel
- enlarge-panel
- entry-to-input-line
- ENV
- exchange-point-and-mark
- exit

## f

- F-UNCOMPRESS
- FAST-DIFF
- FILE-ACTION
- FILE-CREATE
- FILE-TYPE
- FIND
- FINGER
- FIRST-FLOPPY-DIR
- forward-char
- forward-word

## g

- GENERIC-UNPACK
- GENERIC-UNPACK-INTO
- GITPS, PS, GITPS, PS
- GREP

## h

- HOME-DIR
- horizontal-scroll-left
- horizontal-scroll-right
- HTML

## i

- INCLUDE-DIR
- INFO
- isearch-backward
- isearch-forward
- ISPELL

## j

- just-one-space

## k

- KILL
- kill-line
- kill-region
- kill-ring-save
- kill-to-beginning-of-line
- kill-to-end-of-line
- kill-word

## l

- LAST-BACKUP-DIFF
- LINK
- LOCATE
- lock

## m

- MAKE
- make-directory
- MAN
- MIME-MAIL
- MOUNT-A
- MOUNT-B
- MOUNT-CDROM
- MOUNT-FLOPPY
- MOUNT-JAZ
- MOUNT-THESE
- MOUNT-ZIP
- MOUNTED-FILE-SYSTEMS
- move
- move (for directories)
- MPACK
- MTOOLS-CHDIR
- MTOOLS-DELETE
- MTOOLS-DIR
- MTOOLS-FORMAT
- MTOOLS-GET
- MTOOLS-MKDIR
- MTOOLS-PUT
- MTOOLS-RENAME
- MTOOLS-RMDIR
- MTOOLS-TYPE
- MULTIPLE-EDIT
- MULTIPLE-VIEW
- MUNPACK

## n

- name-downcase
- name-upcase
- next-directory
- next-history-element
- next-line

## o

- other-panel
- other-path-to-input-line

## p

- panel-enable-all
- panel-enable-date-time
- panel-enable-full-name
- panel-enable-mode
- panel-enable-next-mode
- panel-enable-owner-group
- panel-enable-size
- panel-sort-by-date
- panel-sort-by-extension
- panel-sort-by-group-id
- panel-sort-by-group-name
- panel-sort-by-mode
- panel-sort-by-name
- panel-sort-by-owner-id
- panel-sort-by-owner-name
- panel-sort-by-size
- panel-sort-next-method
- previous-directory
- previous-history-element
- previous-line
- PRINT-JOB
- PRINT-JOB-LIST
- PSTREE

## q

- quick-compare-panels
- QUOTA

## r

- R-CHGRP
- R-CHMOD
- R-CHOWN
- READ-MAIL
- RECURSIVE-GREP
- refresh
- RENAME
- RENAME (for directories)
- reset-directory-history
- ROOT-DIR
- RPM-INSTALL
- RPM-QUERY
- RPM-UNINSTALL
- RPM-UPGRADE

## s

- scroll-down
- scroll-up
- SECOND-FLOPPY-DIR
- select-entry
- select-extension
- select-files-matching-pattern
- selected-entries-to-input-line
- set-mark
- set-scroll-step
- SPLIT
- SUB-SHELL
- switch-panels
- SYMLINK
- SYNC

## t

- TAR
- TAR-BZIP2
- TAR-COMPRESS
- thoroughly-compare-panels
- tty-mode
- TTY-RESET
- two-panel-mode

## u

- UMOUNT-A
- UMOUNT-B
- UMOUNT-FLOPPY
- UMOUNT-JAZ
- UMOUNT-THESE
- UMOUNT-ZIP
- UNCOMPRESS
- unselect-extension
- unselect-files-matching-pattern
- up-one-dir
- upcase-word
- USERS
- UUDECODE
- UUENCODE

## v

- VIEW
- VIRTUAL-MEMORY-STATUS

## w

- WHEREIS
- WHICH
- WHO
- WIPE

## x

- XHOST

## y

- yank

# Variable Index

Jump to: a - c - e - g - h - i - l - n - s - t - u

## a

- AnsiColors

## c

- CommandLineModeHelp
- ConfirmOnExit

## e

- EDITOR

## g

- GIT_BROWSER
- GIT_EDITOR
- GIT_RMAIL
- GIT_SHELL
- GIT_VMSTAT

## h

- HistoryFile

## i

- InfoDisplay

## l

- LeadingDotMatch

## n

- NormalModeHelp

## s

- SHELL
- StartupFileDisplayMode
- StartupFileSortMethod
- StartupScrollStep

## t

- TERM
- TypeSensitivity

## u

- UseLastScreenChar

# Concept Index

Jump to: a - b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y

## a

- Adapt directory
- Adding and removing hosts
- Archive

## b

- Background directory copy
- Background directory delete
- Background directory diff
- Background directory move
- Background directory rename
- Background file copy
- Background file delete
- Background file move
- Background file rename
- Background file split
- Background make
- Backward char
- Backward delete char
- Backward kill word
- Backward word
- bash
- Beginning of line
- Beginning of panel
- Binary comparison
- Binary files by mail
- Browsing through the process list, Browsing through the process list
- bzip2

## c

- Capitalize word, Capitalize word
- Change the current panel directory
- Change the other panel directory
- Changing directory
- Changing the current directory
- Changing the directory
- Changing the file's group
- Changing the file's mode
- Changing the file's owner
- Changing the group in background
- Changing the group recursively
- Changing the group recursively in background
- Changing the inode's group
- Changing the inode's mode
- Changing the inode's owner
- Changing the mode in background
- Changing the mode recursively
- Changing the mode recursively in background
- Changing the owner in background
- Changing the owner recursively
- Changing the owner recursively in background
- chdir
- chgrp
- chmod
- chown
- Comparing directories quickly
- Comparing directories thoroughly
- Comparing panels quickly
- Comparing panels thoroughly
- Compile
- Compiling programs
- compress, compress
- Compressing directories, Compressing directories
- Compressing directories in background, Compressing directories in background
- Compressing files, Compressing files
- Compressing files in background, Compressing files in background
- Console lock
- Convert to lower case
- Convert to upper case
- Copy entry name to input line.
- Copying directories
- Copying directories in background
- Copying files
- Copying files in background
- Create directory
- Create file
- Creating a directory
- Creating bzip2 compressed tar archives
- Creating bzip2 compressed tar archives in background
- Creating compressed tar archives
- Creating compressed tar archives in background
- Creating tar archives
- Creating tar archives in background
- csh
- Current disk quota
- Cursor backward
- Cursor backward one word
- Cursor down one entry
- Cursor down one page
- Cursor end
- Cursor forward
- Cursor forward one word
- Cursor home
- Cursor to BOL
- Cursor to EOL
- Cursor to the other panel
- Cursor up one entry
- Cursor up one page

## d

- date
- Date and time
- Date, time
- Decoding files, Decoding files
- Decoding files in background, Decoding files in background
- Decompressing directories, Decompressing directories
- Decompressing directories in background, Decompressing directories in background
- Decompressing directories/links
- Decompressing directories/links in background
- Decompressing files, Decompressing files
- Decompressing files in background, Decompressing files in background
- Decompressing files/links
- Decompressing files/links in background
- Decrypting the current file
- Delete char
- Delete horizontal space
- Delete line
- Delete spaces
- Delete word backward
- Delete word forward
- Deleting directories
- Deleting directories in background
- Deleting files
- Deleting files in background
- diff
- Differences between ascii files
- Differences between directories
- Differences between file and backup
- Differences between two directories
- Directory copy
- Directory delete
- Directory diff, Directory diff
- Directory history reset
- Directory mode
- Directory move
- Directory rename
- Directory size
- Directory usage
- Disk free space
- Downcase file names
- Downcase word
- du

## e

- Editing a file
- Editing multiple files
- Editing the ChangeLog
- Emacs rmail
- Enable all
- Enable next mode
- Encoding files, Encoding files
- Encoding files in background, Encoding files in background
- Encrypting the current file
- End of line
- End of panel
- Enlarge other panel
- Enlarge panel
- Entire screen
- env
- Exchange point and mark
- Exiting
- Extracting files from archives, Extracting files from archives

## f

- File action
- File copy
- File create
- File delete
- File edit
- File mode
- File move
- File or directory mode
- File or directory size
- File rename
- File search, File search
- File size
- File split
- File system status
- File view
- File wipe
- find
- finger
- First entry
- Forward char
- Forward word
- Free disk space
- Full directory info
- Full directory name
- Full file info
- Full file name
- Full file or directory name
- Full info
- Full name

## g

- git
- gitaction
- gitkeys
- gitmount
- gitps
- gitregrep
- gitrfgrep
- gitrgrep
- gitunpack
- gitview
- gitwipe
- Go to ..
- Go to /
- Go to the $HOME directory
- Go to the /usr/include directory
- Go to the first floppy mount point
- Go to the home directory
- Go to the include directory
- Go to the other panel
- Go to the parent directory
- Go to the root directory
- Go to the second floppy mount point
- Go to the ~ directory
- Go up one directory
- grep
- Group and owner
- Group, owner
- gunzip, gunzip, gunzip
- gzip

## h

- Half screen
- Hard links to files
- Hot Keys

## i

- Incremental search backward
- Incremental search forward
- Isearch backward
- Isearch forward
- ispell

## j

- Just one space

## k

- Kill line
- Kill region
- Kill ring save
- Kill to beginning of line
- Kill to end of line
- kill word
- Killing processes

## l

- Last backup diff
- Last entry
- Linking files in background
- locate
- Locating files
- Locking the console
- Logged in users
- Looking at the environment
- lpr, lpr

## m

- Major modes
- make
- Make directory, Make directory
- Making a directory
- Mark entry
- Mime encoded files by mail
- Minor modes
- mount
- Mounted file systems list
- Mounting subdirectories
- Mounting the cdrom
- Mounting the first floppy, Mounting the first floppy
- Mounting the floppy, Mounting the floppy
- Mounting the jaz drive
- Mounting the second floppy
- Mounting the zip drive
- Mounting these file systems
- Moving directories
- Moving directories in background
- Moving files
- Moving files in background
- mpack
- Multiple edit
- munpack

## n

- Next directory history entry
- Next history element
- Next sort method
- No panels mode

## o

- One panel, One panel
- Other panel path to input line
- Owner and group
- Owner, group

## p

- Pack files into bins
- Previous directory history entry
- Previous history element
- printing, printing
- Printining files, Printining files
- Program search

## q

- Quota

## r

- Re-reading directories.
- Reading mail
- Reading the html documentation
- Reading the info documentation
- Reading the manual pages
- Recursive grep
- Refreshing the screen.
- regexp
- Renaming directories
- Renaming directories in background
- Renaming files
- Renaming files in background
- Reset the directory history
- Reseting the terminal

## s

- Save and delete region
- Save into the kill ring
- Scroll left
- Scroll right
- Scroll step
- Searching binaries
- Searching files, Searching files
- Searching patterns in files
- Searching programs
- Searching regular expressions
- Select entry
- Selected entries to input line
- Selects files matching extension
- Selects files matching pattern
- Sending ascii mail
- Sending ascii mail in background
- Sending binary mail
- Sending binary mail in background
- Sending files by mail
- Sending mail
- Sending mime mail
- Sending mime mail in background
- Sending text by mail
- Set mark
- Set the mark
- sh
- Shell
- Sorted by date
- Sorted by extension
- Sorted by group id
- Sorted by group name
- Sorted by mode
- Sorted by name
- Sorted by owner id
- Sorted by owner name
- Sorted by size
- Sorting
- Sorting by date
- Sorting by extension
- Sorting by group id
- Sorting by group name
- Sorting by mode
- Sorting by name
- Sorting by owner id
- Sorting by owner name
- Sorting by size
- Spell checking
- Splitting files
- Splitting files in background
- Swapping
- Switch panels
- Symbolic links to files
- sync
- Synchronizing file systems
- System users

## t

- Tar archive
- tcsh
- Terminal reset
- Time and date
- Time, date
- Toggle flag
- Toggle panels
- tty mode
- Two panel mode
- Two panels
- Type specific file action

## u

- umount, umount
- Uncompressing directories, Uncompressing directories
- Uncompressing directories in background, Uncompressing directories in background
- Uncompressing directories/links
- Uncompressing directories/links in background
- Uncompressing files, Uncompressing files
- Uncompressing files in background, Uncompressing files in background
- Uncompressing files/links
- Uncompressing files/links in background
- Unmark entry
- Unmounting subdirectories
- Unmounting the cdrom
- Unmounting the first floppy, Unmounting the first floppy
- Unmounting the floppy, Unmounting the floppy
- Unmounting the jaz drive
- Unmounting the second floppy
- Unmounting the zip drive
- Unmounting these file systems
- Unselects files matching extension
- Unselects files matching pattern
- Upcase file names
- Upcase word
- uudecode
- uuencode

## v

- Viewing files
- Viewing multiple files
- Viewing processes, Viewing processes
- Viewing the process tree
- Virtual memory status

## w

- whereis
- which
- who
- Wiping files
- Wrapped incremental search
- Wrapped isearch
- Wrapped search

## x

- xhost

## y

- Yanking, reinserting

This document was generated on 12 March 2000 using texi2html 1.56k.