Code

get_author_initials: various fixes
[tig.git] / tigrc.5.txt
index 46656499b89c64788f072ac422eaec77d1254519..1464492c17fc4ca293f09811c7e387ea99b1ad04 100644 (file)
@@ -3,17 +3,15 @@ tigrc(5)
 
 NAME
 ----
-tigrc - tig user configuration file
+tigrc - tig configuration file
 
 
 SYNOPSIS
 --------
 [verse]
-.............................................................................
 *set*   'variable' *=* 'value'
 *bind*  'keymap' 'key' 'action'
 *color* 'area' 'fgcolor' 'bgcolor' '[attributes]'
-.............................................................................
 
 
 DESCRIPTION
@@ -27,6 +25,9 @@ The hash mark ('#') is used as a 'comment' character. All text after the
 comment character to the end of the line is ignored. You can use comments to
 annotate your initialization file.
 
+Alternatively, options can be set by putting them in one of the git
+configuration files, which are read by tig on startup. See 'git-config(1)' for
+which files to use.
 
 Set command
 -----------
@@ -35,26 +36,33 @@ A few selective variables can be configured via the set command. The syntax
 is:
 
 [verse]
-..............................................................................
 *set* variables *=* value
-..............................................................................
 
 Examples:
 
 --------------------------------------------------------------------------
-set show-author = yes          # Show author?
-set show-date = yes            # Show commit date?
+set show-author = abbreviated  # Show abbreviated author names.
+set show-date = relative       # Show relative commit date.
 set show-rev-graph = yes       # Show revision graph?
 set show-refs = yes            # Show references?
 set show-line-numbers = no     # Show line numbers?
-set author-width = 10          # Set width of the author column
-set line-graphics = no         # Disable graphics characters
 set line-number-interval = 5   # Interval between line numbers
-set tab-size = 8               # Number of spaces per tab
-set encoding = "UTF-8"         # Commit encoding
+set commit-encoding = "UTF-8"  # Commit encoding
+set horizontal-scroll = 33%    # Scroll 33% of the view width
+set blame-options = -C -C -C   # Blame lines from other files
 --------------------------------------------------------------------------
 
-The type of variables are either bool, int, and string.
+Or in the git configuration files:
+
+--------------------------------------------------------------------------
+[tig]
+       show-date = yes         # Show commit date?
+       author-width = 10       # Set width of the author column
+       line-graphics = no      # Disable graphics characters
+       tab-size = 8            # Number of spaces per tab
+--------------------------------------------------------------------------
+
+The type of variables are either bool, int, string, or mixed.
 
 Valid bool values::
 
@@ -69,27 +77,36 @@ Valid string values::
 
        A string of characters. Optionally, use either ' or " as delimiters.
 
+Valid mixed values::
+
+       These values are composites of the above types. The valid values are
+       specified in the description.
+
 Variables
 ~~~~~~~~~
 
 The following variables can be set:
 
-'show-author' (bool)::
-'show-date' (bool)::
-'show-rev-graph' (bool)::
-'show-refs' (bool)::
+'author-width' (int)::
 
-       Whether to show author, date, revision graph, and references
-       (branches, tags, and remotes) in the main view on start-up. Can all be
-       toggled.
+       Width of the author column. When set to 5 or below, the author name
+       will be abbreviated to the author's initials.
 
-'author-width' (int)::
+'blame-options' (string)::
+
+       A space separated string of extra blame options. Can be used for
+       telling git-blame(1) how to detect the origin of lines. The value
+       is ignored when tig is started in blame mode and given blame options
+       on the command line.
 
-       Width of the author column.
+'commit-encoding' (string)::
+
+       The encoding used for commits. The default is UTF-8. Note this option
+       is shadowed by the "i18n.commitencoding" option in `.git/config`.
 
-'line-graphics' (bool)::
+'line-graphics' (mixed) [ "ascii" | "default" | "utf-8" | bool]::
 
-       Whether to use graphic characters for line drawing.
+       What type of character graphics for line drawing.
 
 'line-number-interval' (int)::
 
@@ -97,15 +114,51 @@ The following variables can be set:
        numbering with 'n' or the `-n` command line option.  The default is to
        number every line.
 
-'tab-size' (int)::
+'horizontal-scroll' (mixed)::
 
-       Number of spaces per tab. The default is 8 spaces.
+       Interval to scroll horizontally in each step. Can be specified either
+       as the number of columns, e.g. '5', or as a percentage of the view
+       width, e.g. '33%', where the maximum is 100%. For percentages it is
+       always ensured that at least one column is scrolled. The default is to
+       scroll '50%' of the view width.
 
-'commit-encoding' (string)::
+'show-author' (mixed) ["abbreviated" | "default" | bool]::
 
-       The encoding used for commits. The default is UTF-8. Not this option
-       is shadowed by the "i18n.commitencoding" option in `.git/config`.
+       How to display author names. If set to "abbreviated" author initials
+       will be shown. Can be toggled.
 
+'show-date' (mixed) ["relative" | "short" | "default" | "local" | bool]::
+
+       Whether and how to show date. If set to "relative" a relative date will be
+       used, e.g. "2 minutes ago". If set to "short" no time information is
+       shown. If set to "local", localtime(3) is used. Can be toggled.
+
+'show-refs' (bool)::
+
+       Whether to show references (branches, tags, and remotes) in the main
+       view on start-up. Can be toggled.
+
+'show-rev-graph' (bool)::
+
+       Whether to show revision graph in the main view on start-up.
+       Can be toggled. See also line-graphics options.
+
+'split-view-height' (mixed)::
+
+       Height of the lower view in a split view. Can be specified either as
+       the number of rows, e.g. '5', or as a percentage of the view height,
+       e.g. '80%', where the maximum is 100%. It is always ensured that the
+       smaller of the views is at least four rows high. The default is a view
+       height of '66%'.
+
+'status-untracked-dirs' (bool)::
+
+       Show untracked directories contents in the status view (analog to
+       `git ls-files --directory` option. On by default.
+
+'tab-size' (int)::
+
+       Number of spaces per tab. The default is 8 spaces.
 
 Bind command
 ------------
@@ -114,9 +167,7 @@ Using bind commands keys can be mapped to an action when pressed in a given
 key map. The syntax is:
 
 [verse]
-..............................................................................
 *bind* 'keymap' 'key' 'action'
-..............................................................................
 
 Examples:
 
@@ -128,12 +179,18 @@ bind main space enter
 bind diff a previous
 bind diff d next
 bind diff b move-first-line
-# 'unbind' the default quit key binding
-bind main Q none
 # An external command to update from upstream
 bind generic F !git fetch
-# Cherry-pick current commit onto current branch
-bind generic C !git cherry-pick %(commit)
+--------------------------------------------------------------------------
+
+Or in the git configuration files:
+
+--------------------------------------------------------------------------
+[tig "bind"]
+       # 'unbind' the default quit key binding
+       main = Q none
+       # Cherry-pick current commit onto current branch
+       generic = C !git cherry-pick %(commit)
 --------------------------------------------------------------------------
 
 Keys are mapped by first searching the keybindings for the current view, then
@@ -146,7 +203,8 @@ built-in keybindings.
 Keymaps::
 
 Valid keymaps are: *main*, *diff*, *log*, *help*, *pager*, *status*, *stage*,
-and *generic*.  Use *generic* to set key mapping in all keymaps.
+*tree*, *blob*, *blame*, *branch*, and *generic*.  Use *generic* to set key
+mapping in all keymaps.
 
 Key values::
 
@@ -175,115 +233,126 @@ be available as an external command. External commands can contain variable
 names that will be substituted before the command is run. Valid variable names
 are:
 
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Browsing state variables
-------------------------------------------------------------------------------
-%(head)                        The currently viewed 'head' ID. Defaults to HEAD
-%(commit)              The currently selected commit ID.
-%(blob)                        The currently selected blob ID.
-------------------------------------------------------------------------------
+.Browsing state variables
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|%(head)               |The currently viewed 'head' ID. Defaults to HEAD
+|%(commit)             |The currently selected commit ID.
+|%(blob)               |The currently selected blob ID.
+|%(branch)             |The currently selected branch name.
+|%(directory)          |The current directory path in the tree view;
+                        empty for the root directory.
+|%(file)               |The currently selected file.
+|%(ref)                        |The reference given to blame or HEAD if undefined.
+|%(revargs)            |The revision arguments passed on the command line.
+|%(fileargs)           |The file arguments passed on the command line.
+|%(diffargs)           |The diff options passed on the command line.
+|=============================================================================
 
 As an example, the following external command will save the current commit as
-a patch file: "!git format-patch -1 %(commit)".
-
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-View switching:
-------------------------------------------------------------------------------
-view-main              Show main view
-view-diff              Show diff view
-view-log               Show log view
-view-tree              Show tree view
-view-blob              Show blob view
-view-blame             Show blame view
-view-status            Show status view
-view-stage             Show stage view
-view-pager             Show pager view
-view-help              Show help page
-------------------------------------------------------------------------------
-
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-View manipulation:
-------------------------------------------------------------------------------
-enter                  Enter current line and scroll
-next                   Move to next
-previous               Move to previous
-view-next              Move focus to next view
-refresh                        Reload and refresh view
-maximize               Maximize the current view
-view-close             Close the current view
-quit                   Close all views and quit
-------------------------------------------------------------------------------
+a patch file: "!git format-patch -1 %(commit)". If your external command
+require use of dynamic features, such as subshells, expansion of environment
+variables and process control, this can be achieved by using a combination of
+git aliases and tig external commands. The following example entries can be
+put in either the .gitconfig or .git/config file:
 
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Cursor navigation:
-------------------------------------------------------------------------------
-move-up                        Move cursor one line up
-move-down              Move cursor one line down
-move-page-down         Move cursor one page down
-move-page-up           Move cursor one page up
-move-first-line                Move cursor to first line
-move-last-line         Move cursor to last line
-------------------------------------------------------------------------------
-
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Scrolling:
-------------------------------------------------------------------------------
-scroll-line-up         Scroll one line up
-scroll-line-down       Scroll one line down
-scroll-page-eup                Scroll one page up
-scroll-page-down       Scroll one page down
-------------------------------------------------------------------------------
-
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Searching:
-------------------------------------------------------------------------------
-search                 Search the view
-search-back            Search backwards in the view
-find-next              Find next search match
-find-prev              Find previous search match
-------------------------------------------------------------------------------
+--------------------------------------------------------------------------
+[alias]
+       gitk-bg = !"gitk HEAD --not $(git rev-parse --remotes) &"
+       publish = !"for i in origin public; do git push $i; done"
+[tig "bind"]
+       generic = V !git gitk-bg
+       generic = > !git publish
+--------------------------------------------------------------------------
 
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Misc:
-------------------------------------------------------------------------------
-none                   Do nothing
-prompt                 Bring up the prompt
-screen-redraw          Redraw the screen
-screen-resize          Resize the screen
-show-version           Show version information
-stop-loading           Stop all loading views
-toggle-lineno          Toggle line numbers
-toggle-date            Toggle date display
-toggle-author          Toggle author display
-toggle-rev-graph       Toggle revision graph visualization
-toggle-refs            Toggle reference display
-status-update          Update file status
-status-merge           Resolve unmerged file
-stage-next             Find next chunk to stage
-tree-parent            Switch to parent directory in tree view
-edit                   Open in editor
-------------------------------------------------------------------------------
+.View switching
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|view-main             |Show main view
+|view-diff             |Show diff view
+|view-log              |Show log view
+|view-tree             |Show tree view
+|view-blob             |Show blob view
+|view-blame            |Show blame view
+|view-branch           |Show branch view
+|view-status           |Show status view
+|view-stage            |Show stage view
+|view-pager            |Show pager view
+|view-help             |Show help page
+|=============================================================================
+
+.View manipulation
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|enter                 |Enter current line and scroll
+|next                  |Move to next
+|previous              |Move to previous
+|parent                        |Move to parent
+|view-next             |Move focus to next view
+|refresh               |Reload and refresh view
+|maximize              |Maximize the current view
+|view-close            |Close the current view
+|quit                  |Close all views and quit
+|=============================================================================
+
+.View specific actions
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|status-update         |Update file status
+|status-merge          |Resolve unmerged file
+|stage-next            |Find next chunk to stage
+|=============================================================================
+
+.Cursor navigation
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|move-up               |Move cursor one line up
+|move-down             |Move cursor one line down
+|move-page-down                |Move cursor one page down
+|move-page-up          |Move cursor one page up
+|move-first-line       |Move cursor to first line
+|move-last-line                |Move cursor to last line
+|=============================================================================
+
+.Scrolling
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|scroll-line-up                |Scroll one line up
+|scroll-line-down      |Scroll one line down
+|scroll-page-up                |Scroll one page up
+|scroll-page-down      |Scroll one page down
+|scroll-first-col       |Scroll to the first column
+|scroll-left           |Scroll one column left
+|scroll-right          |Scroll one column right
+|=============================================================================
+
+.Searching
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|search                        |Search the view
+|search-back           |Search backwards in the view
+|find-next             |Find next search match
+|find-prev             |Find previous search match
+|=============================================================================
+
+.Misc
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|prompt                        |Bring up the prompt
+|screen-redraw         |Redraw the screen
+|screen-resize         |Resize the screen
+|show-version          |Show version information
+|stop-loading          |Stop all loading views
+|options               |Open options menu
+|toggle-lineno         |Toggle line numbers
+|toggle-date           |Toggle date display
+|toggle-author         |Toggle author display
+|toggle-rev-graph      |Toggle revision graph visualization
+|toggle-graphic                |Toggle (line) graphics mode
+|toggle-refs           |Toggle reference display
+|edit                  |Open in editor
+|none                  |Do nothing
+|=============================================================================
 
 
 Color command
@@ -295,9 +364,7 @@ background combinations to certain areas. Optionally, an attribute can be
 given as the last parameter. The syntax is:
 
 [verse]
-..............................................................................
 *color* 'area' 'fgcolor' 'bgcolor' '[attributes]'
-..............................................................................
 
 Examples:
 
@@ -308,11 +375,17 @@ color default             white   black
 color diff-header      yellow  default
 color diff-index       blue    default
 color diff-chunk       magenta default
-# A strange looking cursor line
-color cursor           red     default underline
-# UI colors
-color title-blur       white   blue
-color title-focus      white   blue    bold
+--------------------------------------------------------------------------
+
+Or in the git configuration files:
+
+--------------------------------------------------------------------------
+[tig "color"]
+       # A strange looking cursor line
+       cursor          red     default underline
+       # UI colors
+       title-blur      white   blue
+       title-focus     white   blue    bold
 ------------------------------------------------------------------------------
 
 Area names::
@@ -325,8 +398,13 @@ Color names::
 
        Valid colors include: *white*, *black*, *green*, *magenta*, *blue*,
        *cyan*, *yellow*, *red*, *default*. Use *default* to refer to the
-       default terminal colors. This is recommended for background colors
-       if you are using a terminal with a transparent background.
+       default terminal colors. This is recommended for background colors if
+       you are using a terminal with a transparent background.
++
+Colors can also be specified using the keywords color0, color1, ..., colorN-1
+(N being the number of colors supported by your terminal). This is useful when
+you remap the colors for your display or want to enable colors supported by
+256-color terminals.
 
 Attribute names::
 
@@ -341,60 +419,57 @@ The colors and attributes to be used for the text that is not highlighted or
 that specify the use of the default terminal colors can be controlled by
 setting the *default* color option.
 
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-General:
-------------------------------------------------------------------------------
-default                        Overwrite default terminal colors (see above).
-cursor                 The cursor line.
-status                 The status window showing info messages.
-title-focus            The title window for the current view.
-title-blur             The title window of any backgrounded view.
-delimiter              Delimiter shown for truncated lines.
-line-number            Line numbers.
-date                   The commit date.
-------------------------------------------------------------------------------
-
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Main view colors:
-------------------------------------------------------------------------------
-main-author            The commit author.
-main-revgraph          The revision graph.
-main-commit            The commit comment.
-main-head              Label of the current branch.
-main-remote            Label of a remote.
-main-tracked           Label of the remote tracked by the current branch.
-main-tag               Label of a signed tag.
-main-local-tag         Label of a local tag.
-main-ref               Label of any other reference.
-------------------------------------------------------------------------------
-
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Status view:
-------------------------------------------------------------------------------
-stat-head              The "On branch"-line.
-stat-section           Status section titles,
-stat-staged            Status flag of staged files.
-stat-unstaged          Status flag of unstaged files.
-stat-untracked         Status flag of untracked files.
-------------------------------------------------------------------------------
-
-ifdef::backend-xhtml11[]
-[frame="none"]
-`-----------------------`-----------------------------------------------------
-endif::backend-xhtml11[]
-Blame view:
-------------------------------------------------------------------------------
-blame-id               The commit ID.
-------------------------------------------------------------------------------
+.General
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|default               |Overwrite default terminal colors (see above).
+|cursor                        |The cursor line.
+|status                        |The status window showing info messages.
+|title-focus           |The title window for the current view.
+|title-blur            |The title window of any backgrounded view.
+|delimiter             |Delimiter shown for truncated lines.
+|line-number           |Line numbers.
+|date                  |The commit date.
+|author                        |The commit author.
+|mode                  |The file mode holding the permissions and type.
+|=============================================================================
+
+.Main view colors
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|main-revgraph         |The revision graph.
+|main-commit           |The commit comment.
+|main-head             |Label of the current branch.
+|main-remote           |Label of a remote.
+|main-tracked          |Label of the remote tracked by the current branch.
+|main-tag              |Label of a signed tag.
+|main-local-tag                |Label of a local tag.
+|main-ref              |Label of any other reference.
+|=============================================================================
+
+.Status view
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|stat-head             |The "On branch"-line.
+|stat-section          |Status section titles,
+|stat-staged           |Status flag of staged files.
+|stat-unstaged         |Status flag of unstaged files.
+|stat-untracked                |Status flag of untracked files.
+|=============================================================================
+
+.Blame view
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|blame-id              |The commit ID.
+|=============================================================================
+
+.Tree view
+[frame="none",grid="none",cols="25<m,75<"]
+|=============================================================================
+|tree-head             |The "Directory /"-line
+|tree-dir              |The directory name.
+|tree-file             |The file name.
+|=============================================================================
 
 Highlighting
 ~~~~~~~~~~~~
@@ -434,9 +509,9 @@ omnipresent.
 
 Commit message::
 
-For now only `Signed-off-by` and `Acked-by` lines are colorized.
+`Signed-off-by`, `Acked-by`, `Reviewed-by` and `Tested-by` lines are colorized.
 
-*signoff*, *acked*
+*signoff*, *acked*, *reviewed*, *tested*
 
 Tree markup::
 
@@ -448,10 +523,11 @@ Colors for information of the tree view.
 
 COPYRIGHT
 ---------
-Copyright (c) 2006-2008 Jonas Fonseca <fonseca@diku.dk>
+Copyright (c) 2006-2010 Jonas Fonseca <fonseca@diku.dk>
 
 Licensed under the terms of the GNU General Public License.
 
 SEE ALSO
 --------
-manpage:tig[1] and the http://jonas.nitro.dk/tig/manual.html[tig manual].
+manpage:tig[1], manpage:tigmanual[7], git-config(1),
+and the http://jonas.nitro.dk/tig/manual.html[tig manual].