Allow tigrc commands to span multiple lines
[tig.git] / doc / tigrc.5.adoc
blobcfc8e6709134af240b91596c9b40d28a1dd07f56
1 tigrc(5)
2 ========
3 :docext: adoc
5 NAME
6 ----
7 tigrc - Tig configuration file
10 SYNOPSIS
11 --------
12 [verse]
13 _______________________________________________________________________
14 *set*   'variable' *=* 'value'
15 *bind*  'keymap' 'key' 'action'
16 *color* 'area' 'fgcolor' 'bgcolor' '[attributes]'
17 *source* 'path'
18 _______________________________________________________________________
21 DESCRIPTION
22 -----------
24 You can permanently set an option by putting it in the `~/.tigrc` file.  The
25 file consists of a series of 'commands'.  Each line of the file may contain
26 only one command.  Commands can span multiple lines if each line is
27 terminated by a backslash ('\') character. 
29 The hash mark ('#') is used as a 'comment' character. All text after the
30 comment character to the end of the line is ignored. You can use comments to
31 annotate your initialization file.
33 Git configuration
34 -----------------
36 Alternatively to using `~/.tigrc`, Tig options can be set by putting them in
37 one of the Git configuration files, which are read by Tig on startup. See
38 'git-config(1)' for which files to use. The following example show the basic
39 syntax to use for settings, bindings and colors.
41 --------------------------------------------------------------------------
42 [tig] show-rev-graph = true
43 [tig "color"] cursor = yellow red bold 
44 [tig "bind"] generic = P parent
45 --------------------------------------------------------------------------
47 In addition to tig-specific options, the following Git options are read from
48 the Git configuration:
50 'color.*'::
52         Colors for the various UI types. Can be completely disabled by setting
53         'read-git-colors'.
55 'core.abbrev'::
57         The width of the commit ID. See also 'id-width' option.
59 'core.editor'::
61         The editor command. Can be overridden by setting GIT_EDITOR.
63 'core.worktree'::
65         The path to the root of the working tree.
67 'gui.encoding'::
69         The encoding to use for displaying of file content.
71 'i18n.commitencoding'::
73         The encoding used for commits. The default is UTF-8.
75 Set command
76 -----------
78 A few selective variables can be configured via the set command. The syntax
79 is:
81 [verse]
82 *set* variables *=* value
84 Examples:
86 --------------------------------------------------------------------------
87 set commit-order = topo         # Order commits topologically
88 set read-git-colors = no        # Do not read Git's color settings.
89 set horizontal-scroll = 33%     # Scroll 33% of the view width
90 set blame-options = -C -C -C    # Blame lines from other files
92 # Wrap branch names with () and tags with <>
93 set reference-format = (branch) <tag>
95 # Configure blame view columns using command spanning multiple lines.
96 set blame-view = \
97         date:default \
98         author:abbreviated \
99         file-name:auto \
100         id:yes,color \
101         line-number:yes,interval=5 text
102 --------------------------------------------------------------------------
104 Or in the Git configuration files:
106 --------------------------------------------------------------------------
107 [tig]
108         line-graphics = no      # Disable graphics characters
109         tab-size = 8            # Number of spaces per tab
110 --------------------------------------------------------------------------
112 The type of variables is either bool, int, string, or mixed.
114 Valid bool values::
116         To set a bool variable to true use either "1", "true", or "yes".
117         Any other value will set the variable to false.
119 Valid int values::
121         A non-negative integer.
123 Valid string values::
125         A string of characters. Optionally, use either ' or " as delimiters.
127 Valid mixed values::
129         These values are composites of the above types. The valid values are
130         specified in the description.
132 Variables
133 ~~~~~~~~~
135 The following variables can be set:
137 'diff-options' (string)::
139         A space separated string of diff options to use in the diff view.
140         git-show(1) is used for formatting and always passes --patch-with-stat.
141         This option overrides any options specified in the TIG_DIFF_OPTS
142         environment variable (described in manpage:tig[1]), but is itself
143         overridden by diff flags given on the command line invocation.
145 'blame-options' (string)::
147         A space separated string of extra blame options. Can be used for
148         telling git-blame(1) how to detect the origin of lines. The value
149         is ignored when Tig is started in blame mode and given blame options
150         on the command line.
152 'reference-format' (string)::
154         A space separated string of format strings used for formatting reference
155         names. Wrap the name of the reference type with the characters you would
156         like to use for formatting, e.g. `[tag]` and `<remote>`. If no format is
157         specified for `local-tag`, the format for `tag` is used. Similarly, if no
158         format is specified for `tracked-remote` the `remote` format is used.
159         Prefix with `hide:` to not show that reference type, e.g. `hide:remote`.
160         Supported reference types are:
161          - head                 : The current HEAD.
162          - tag                  : A signed tag.
163          - local-tag            : An unsigned tag.
164          - remote               : A remote.
165          - tracked-remote       : The remote tracked by current HEAD.
166          - replace              : A replaced reference.
167          - branch               : Any other reference.
169 'line-graphics' (mixed) [ "ascii" | "default" | "utf-8" | bool]::
171         What type of character graphics for line drawing.
173 'horizontal-scroll' (mixed)::
175         Interval to scroll horizontally in each step. Can be specified either
176         as the number of columns, e.g. '5', or as a percentage of the view
177         width, e.g. '33%', where the maximum is 100%. For percentages it is
178         always ensured that at least one column is scrolled. The default is to
179         scroll '50%' of the view width.
181 'mouse-scroll' (int)::
182         Interval to scroll up or down using the mouse. The default is 3 lines.
183         Mouse support requires that ncurses itself support mouse events and that
184         you have enabled mouse support in ~/.tigrc with `set mouse = true`.
186 'read-git-colors' (bool)::
188         Whether to read Git's color settings. True by default.
190 'show-notes' (mixed) [note reference | bool]::
192         Whether to show notes for a commit. When set to a note reference the
193         reference is passed to `git show --notes=`. Notes are enabled by
194         default.
196 'show-changes' (bool)::
198         Whether to show staged and unstaged changes in the main view.
200 'vertical-split' (mixed) ["auto" | bool]::
202         Whether to split the view horizontally or vertically.
203         "auto" (which is the default) means that it will depend on the window
204         dimensions. When true vertical orientation is used, and false sets the
205         orientation to horizontal.
207 'split-view-height' (mixed)::
209         Height of the lower view in a split view. Can be specified either as
210         the number of rows, e.g. '5', or as a percentage of the view height,
211         e.g. '80%', where the maximum is 100%. It is always ensured that the
212         smaller of the views is at least four rows high. The default is a view
213         height of '66%'.
215 'status-untracked-dirs' (bool)::
217         Show untracked directories contents in the status view (analog to
218         `git ls-files --directory` option). On by default.
220 'tab-size' (int)::
222         Number of spaces per tab. The default is 8 spaces.
224 'diff-context' (int)::
226         Number of context lines to show for diffs.
228 'ignore-space' (mixed) ["no" | "all" | "some" | "at-eol" | bool]::
230     Ignore space changes in diff view. By default no space changes are ignored.
231     Changing this to "all", "some" or "at-eol" is equivalent to passing
232     "--ignore-all-space", "--ignore-space" or "--ignore-space-at-eol"
233     respectively to `git diff` or `git show`.
235 'commit-order' (mixed) [default|topo|date|author-date|reverse|<bool>]::
237         Commit ordering using the default (chronological reverse) order,
238         topological order, date order or reverse order. The default order is
239         used when the option is set to false, and topo order when set to true.
241 'ignore-case' (bool)::
243         Ignore case in searches. By default, the search is case sensitive.
245 'wrap-lines' (bool)::
247         Wrap long lines. By default, lines are not wrapped.
248         Not compatible with line numbers enabled.
250 'focus-child' (bool)::
252         Whether to focus the child view when it is opened. When disabled the
253         focus will remain in the parent view, avoiding reloads of the child
254         view when navigating the parent view. True by default.
256 'editor-line-number' (bool)::
258         Whether to pass the selected line number to the editor command. The
259         line number is passed as `+<line-number>` in front of the file name.
260         Example: `vim +10 tig.c`
262 'mouse' (bool)::
263         Whether to enable mouse support. Off by default since it makes selecting
264         text from the terminal less intuitive. When enabled hold down Shift (or
265         Option on Mac) to select text. Mouse support requires that ncurses
266         itself support mouse events.
268 View settings
269 ~~~~~~~~~~~~~
271 The view settings, e.g. `blame-view`, can be used to configure the order and
272 settings for the different columns of a view. Each view option expects a space
273 separated list of column specifications. Column specifications first give the
274 column type, and can optionally be followed by a colon (`:`) and a list of
275 column settings, e.g. `author:full,width=20`. The first setting value is always
276 the 'display' setting. When no 'display' setting value is given, 'yes' is
277 assumed. For 'display' settings taking an enumerated value this will
278 automatically resolve to the default enum value. For example, `file-name` will
279 automatically have its 'display' setting resolve to 'auto'.
281 The following list shows which the available view options and what column types
282 they support:
284 blob-view, diff-view, log-view, pager-view, stage-view:: line-number, text
285 blame-view:: author, date, file-name, id, line-number, text
286 grep-view:: file-name, line-number, text
287 main-view:: author, date, commit-title, id, line-number
288 refs-view:: author, date, commit-title, id, line-number, ref
289 stash-view:: author, date, commit-title, id, line-number
290 status-view:: file-name, line-number, status
291 tree-view:: author, date, id, file-name, file-size, line-number, mode
293 Supported column types and their respective settings:
295 author::
297         - 'display' (mixed) [full|abbreviated|email|email-user|<bool>]: How to
298           display author names. If set to "abbreviated" author initials will be
299           shown.
300         - 'width' (int): Width of the column. When set to 5 or below, the author
301           name will be abbreviated to the author's initials.  When set to zero,
302           the width is automatically sized to fit the content.
304 commit-title::
305         - 'graph' (bool): Whether to show revision graph in the main view on
306           start-up. See also the 'line-graphics' options.
307         - 'refs' (bool): Whether to show references (branches, tags, and
308           remotes) in the main view. Can be toggled.
309         - 'overflow' (bool or int): Whether to highlight text in commit titles
310           exceeding a given width. When set to a boolean, it enables or disables
311           the highlighting using the default width of 50 character. When set to
312           an int, the assigned value is used as the maximum character width.
314 date::
315         - 'display' (mixed) [relative|short|default|local|<bool>]: How to
316           display dates. If set to "relative" a relative date will be used, e.g.
317           "2 minutes ago". If set to "short" no time information is shown.  If
318           set to "local", localtime(3) is used.
319         - 'width' (int): Width of the column. When set to zero, the width is
320           automatically sized to fit the content.
322 file-name::
323         - 'display' (mixed) [auto|always|<bool>]: When to display file names.
324           If set to "auto" file names are shown only when needed, e.g. when
325           running: tig blame -C <file>.
326         - 'width' (int): Width of the column. When set to zero, the width is
327           automatically sized to fit the content.
329 file-size::
330         - 'display' (mixed) [default|units|<bool>]: How to display file sizes.
331           When set to "units", sizes are shown using binary prefixes, e.g. 12524
332           bytes is shown as "12.2K".
333         - 'width' (int): Width of the filename column. When set to zero, the
334           width is automatically sized to fit the content.
336 id::
337         - 'display' (bool): Whether to show commit IDs in the main view.
338         - 'width' (int) : Width of the commit ID. When unset Tig will use the
339           value of 'core.abbrev' if found. See git-config(1) on how to set
340           'core.abbrev'. When set to zero the width is automatically sized to
341           fit the content of reflog (e.g.  `ref/stash@{4}`) IDs and otherwise
342           default to 7.
344 line-number::
345         - 'display' (bool): Whether to show line numbers.
346         - 'interval' (int): Interval between line numbers.
347         - 'width' (int): Width of the column. When set to zero, the width is
348           automatically sized to fit the content.
350 mode::
351         - 'display' (bool): Whether to show file modes.
352         - 'width' (int): Width of the column. When set to zero, the width is
353           automatically sized to fit the content.
355 ref::
356         - 'display' (bool): Whether to show the reference name.
357         - 'width' (int): Width of the column. When set to zero, the width is
358           automatically sized to fit the content.
360 status::
361         - 'display' (mixed) [no|short|long|<bool>]: How to display the status
362           label.
363         - 'width' (int): Width of the column. When set to zero, the width is
364           automatically sized to fit the content.
366 text::
367         - 'commit-title-overflow' (bool or int): Whether to highlight commit
368           titles exceeding a given width in the diff view. When set to a
369           boolean, it enables or disables the highlighting using the default
370           width of 50 character. When set to an int, the assigned value is used
371           as the maximum character width.
373 Examples:
374 --------------------------------------------------------------------------
375 # Enable both ID and line numbers in the blame view
376 set blame-view = date:default author:full file-name:auto id:yes,color line-number:yes,interval=5 text
378 # Change grep view to be similar to `git grep` format
379 set grep-view = file-name:yes line-number:yes,interval=1 text
381 # Show file sizes as units
382 set tree-view = line-number:no,interval=5 mode author:full file-size:units date:default id:no file-name
384 # Show line numbers for every 10th line in the pager view
385 set pager-view = line-number:yes,interval=10 text
386 --------------------------------------------------------------------------
388 Note that all column options can be toggled. For 'display' options, use the
389 option name as the prefix followed by a dash and the column name. E.g.
390 `:toggle author-display` will toggle the 'display' option in the 'author'
391 column. For all other options use the column name followed by a dash and
392 then the option name as the suffix. E.g. `:toggle commit-title-graph`
393 will toggle the 'graph' option in the 'commit-title' column.
395 Bind command
396 ------------
398 Using bind commands, keys can be mapped to an action when pressed in a given
399 key map. The syntax is:
401 [verse]
402 *bind* 'keymap' 'key' 'action'
404 Examples:
406 --------------------------------------------------------------------------
407 # Add keybinding to quickly jump to the next diff chunk in the stage view
408 bind stage Enter :/^@@
410 # Disable the default mapping for running git-gc
411 bind generic G none
413 # User-defined external command to amend the last commit
414 bind status + !git commit --amend
416 # User-defined internal command that reloads ~/.tigrc
417 bind generic S :source ~/.tigrc
419 # UTF8-encoded characters can be used as key values.
420 bind generic Ã¸ @sh -c "printf '%s' %(commit) | pbcopy"
421 --------------------------------------------------------------------------
423 Or in the Git configuration files:
425 --------------------------------------------------------------------------
426 [tig "bind"]
427         # 'unbind' the default quit key binding
428         main = Q none
429         # Cherry-pick current commit onto current branch
430         generic = C !git cherry-pick %(commit)
431 --------------------------------------------------------------------------
433 Keys are mapped by first searching the keybindings for the current view, then
434 the keybindings for the *generic* keymap, and last the default keybindings.
435 Thus, the view keybindings override the generic keybindings which override the
436 built-in keybindings.
440 Keymaps::
442 Valid keymaps are: *main*, *diff*, *log*, *help*, *pager*, *status*, *stage*,
443 *tree*, *blob*, *blame*, *refs*, *stash*, *grep* and *generic*. Use *generic*
444 to set key mapping in all keymaps.
446 Key values::
448 Key values should never be quoted. Use either an ASCII or UTF8-encoded character
449 or one of the following symbolic key names. Symbolic key names are case
450 insensitive. Use *Hash* to bind to the `#` key, since the hash mark is used as a
451 comment character.
453 *Enter*, *Space*, *Backspace*, *Tab*, *Escape*, *Left*, *Right*, *Up*, *Down*,
454 *Insert*, *Delete*, *Hash*, *Home*, *End*, *PageUp*, *PageDown*, *F1*, *F2*, *F3*,
455 *F4*, *F5*, *F6*, *F7*, *F8*, *F9*, *F10*, *F11*, *F12*.
457 To add a key mapping that uses the `Ctrl` key, use a `^` prefix in your mapping.
458 Similarly, use `^[` to map to keys prefixed by the `Escape` key. Examples:
460 --------------------------------------------------------------------------
461 bind main ^f  scroll-page-down
462 bind main ^[o options
463 --------------------------------------------------------------------------
465 Note that due to the way ncurses encodes `Ctrl` key mappings, `Ctrl-m` and
466 `Ctrl-i` cannot be bound as they conflict with 'Enter' and 'Tab' respectively.
467 Furthermore, ncurses does not allow to distinguish between `Ctrl-f` and
468 `Ctrl-F`. Finally, `Ctrl-z` is automatically used for process control and will
469 suspend Tig and open a subshell (use `fg` to reenter Tig).
471 Actions::
473 Actions are either specified as user-defined commands (external or internal) or
474 using action names as described in the following sections.
478 External user-defined command
479 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
481 These actions start with one or more of the following option flags followed by
482 the command that should be executed.
484 [frame="none",grid="none",cols="25<m,75<"]
485 |=============================================================================
486 |!                      |Run the command in the foreground with output shown.
487 |@                      |Run the command in the background with no output.
488 |?                      |Prompt the user before executing the command.
489 |<                      |Exit Tig after executing the command.
490 |=============================================================================
492 Unless otherwise specified, commands are run in the foreground with their
493 console output shown (as if '!' was specified). When multiple command options
494 are specified their behavior are combined, e.g. "?<git commit" will prompt the
495 user whether to execute the command and will exit Tig after completion.
497 Browsing state variables
498 ^^^^^^^^^^^^^^^^^^^^^^^^
500 User-defined commands can optionally refer to Tig's internal state using the
501 following variable names, which are substituted before commands are run:
503 [frame="none",grid="none",cols="25<m,75<"]
504 |=============================================================================
505 |%(head)                |The currently viewed 'head' ID. Defaults to HEAD
506 |%(commit)              |The currently selected commit ID.
507 |%(blob)                |The currently selected blob ID.
508 |%(branch)              |The currently selected branch name.
509 |%(remote)              |The currently selected remote name. For remote
510                          branches %(branch) will contain the branch name.
511 |%(tag)                 |The currently selected tag name.
512 |%(stash)               |The currently selected stash name.
513 |%(directory)           |The current directory path in the tree view or
514                          "." if undefined.
515 |%(file)                |The currently selected file.
516 |%(ref)                 |The reference given to blame or HEAD if undefined.
517 |%(revargs)             |The revision arguments passed on the command line.
518 |%(fileargs)            |The file arguments passed on the command line.
519 |%(cmdlineargs)         |All other options passed on the command line.
520 |%(diffargs)            |The diff options from 'diff-options' or 'TIG_DIFF_OPTS'
521 |%(prompt)              |Prompt for the argument value. Optionally specify a
522                          custom prompt using `"%(prompt Enter branch name: )"`
523 |=============================================================================
525 Examples:
527 --------------------------------------------------------------------------
528 # Save save the current commit as a patch file when the user selects a
529 # commit in the main view and presses 'S'.
530 bind main S !git format-patch -1 %(commit)
532 # Create and checkout a new branch; specify custom prompt
533 bind main B ?git checkout -b "%(prompt Enter new branch name: )"
534 --------------------------------------------------------------------------
536 Advanced shell-like commands
537 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
539 If your command requires use of dynamic features, such as subshells,
540 expansion of environment variables and process control, this can be achieved by
541 using a shell command:
543 .Configure a binding to copy the current commit ID to the clipboard.
544 --------------------------------------------------------------------------
545 bind generic I @sh -c "echo -n %(commit) | xclip -selection c"
546 --------------------------------------------------------------------------
548 Or by using a combination of Git aliases and Tig external commands. The
549 following example entries can be put in either the .gitconfig or .git/config
550 file:
552 .Git configuration which binds Tig keys to Git command aliases.
553 --------------------------------------------------------------------------
554 [alias]
555         gitk-bg = !"gitk HEAD --not $(git rev-parse --remotes) &"
556         publish = !"for i in origin public; do git push $i; done"
557 [tig "bind"]
558         # @-prefix means that the console output will not be shown.
559         generic = V !@git gitk-bg
560         generic = > !git publish
561 --------------------------------------------------------------------------
563 Internal user-defined commands
564 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
566 Actions beginning with a ':' will be run and interpreted as internal commands
567 and act similar to commands run via Tig's prompt. Valid internal commands are
568 configuration file options (as described in this document) and pager view
569 commands. Examples:
571 --------------------------------------------------------------------------
572 # Reload ~/.tigrc when 'S' is pressed
573 bind generic S :source .tigrc
575 # Change diff view to show all commit changes regardless of file limitations
576 bind diff F :set diff-options = --full-diff
578 # Show the output of git-reflog(1) in the pager view
579 bind generic W :!git reflog
581 # Search for previous diff (c)hunk and next diff header
582 bind stage 2 :?^@@
583 bind stage D :/^diff --(git|cc)
585 bind main I :toggle show-id                     # Show/hide the ID column
586 bind diff D :toggle diff-options --minimal      # Use minimal diff algorithm
587 bind diff [ :toggle diff-context -3             # Decrese context (-U arg)
588 bind diff ] :toggle diff-context +3             # Increase context
589 bind generic V :toggle split-view-height -10%   # Decrease split height
590 --------------------------------------------------------------------------
592 Similar to external commands, pager view commands can contain variable names
593 that will be substituted before the command is run.
595 Action names
596 ~~~~~~~~~~~~
598 Valid action names are described below. Note, all action names are
599 case-insensitive, and you may use '-', '_', and '.' interchangeably, e.g.
600 "view-main", "View.Main", and "VIEW_MAIN" are the same.
602 ifndef::DOC_GEN_ACTIONS[]
603 View switching
604 ^^^^^^^^^^^^^^
606 [frame="none",grid="none",cols="25<m,75<"]
607 |=============================================================================
608 |view-main               |Show main view
609 |view-diff               |Show diff view
610 |view-log                |Show log view
611 |view-tree               |Show tree view
612 |view-blob               |Show blob view
613 |view-blame              |Show blame view
614 |view-refs               |Show refs view
615 |view-status             |Show status view
616 |view-stage              |Show stage view
617 |view-stash              |Show stash view
618 |view-grep               |Show grep view
619 |view-pager              |Show pager view
620 |view-help               |Show help view
621 |=============================================================================
623 View manipulation
624 ^^^^^^^^^^^^^^^^^
626 [frame="none",grid="none",cols="25<m,75<"]
627 |=============================================================================
628 |enter                   |Enter and open selected line
629 |back                    |Go back to the previous view state
630 |next                    |Move to next
631 |previous                |Move to previous
632 |parent                  |Move to parent
633 |view-next               |Move focus to the next view
634 |refresh                 |Reload and refresh view
635 |maximize                |Maximize the current view
636 |view-close              |Close the current view
637 |quit                    |Close all views and quit
638 |=============================================================================
640 View specific actions
641 ^^^^^^^^^^^^^^^^^^^^^
643 [frame="none",grid="none",cols="25<m,75<"]
644 |=============================================================================
645 |status-update           |Stage/unstage chunk or file changes
646 |status-revert           |Revert chunk or file changes
647 |status-merge            |Merge file using external tool
648 |stage-update-line       |Stage/unstage single line
649 |stage-split-chunk       |Split current diff chunk
650 |=============================================================================
652 Cursor navigation
653 ^^^^^^^^^^^^^^^^^
655 [frame="none",grid="none",cols="25<m,75<"]
656 |=============================================================================
657 |move-up                 |Move cursor one line up
658 |move-down               |Move cursor one line down
659 |move-page-down          |Move cursor one page down
660 |move-page-up            |Move cursor one page up
661 |move-first-line         |Move cursor to first line
662 |move-last-line          |Move cursor to last line
663 |=============================================================================
665 Scrolling
666 ^^^^^^^^^
668 [frame="none",grid="none",cols="25<m,75<"]
669 |=============================================================================
670 |scroll-line-up          |Scroll one line up
671 |scroll-line-down        |Scroll one line down
672 |scroll-page-up          |Scroll one page up
673 |scroll-page-down        |Scroll one page down
674 |scroll-first-col        |Scroll to the first line columns
675 |scroll-left             |Scroll two columns left
676 |scroll-right            |Scroll two columns right
677 |=============================================================================
679 Searching
680 ^^^^^^^^^
682 [frame="none",grid="none",cols="25<m,75<"]
683 |=============================================================================
684 |search                  |Search the view
685 |search-back             |Search backwards in the view
686 |find-next               |Find next search match
687 |find-prev               |Find previous search match
688 |=============================================================================
690 Option manipulation
691 ^^^^^^^^^^^^^^^^^^^
693 In addition to the actions below, options can also be toggled with the
694 `:toggle` prompt command.
696 [frame="none",grid="none",cols="25<m,75<"]
697 |=============================================================================
698 |options                 |Open the options menu
699 |=============================================================================
701 Misc
702 ^^^^
704 [frame="none",grid="none",cols="25<m,75<"]
705 |=============================================================================
706 |edit                    |Open in editor
707 |prompt                  |Open the prompt
708 |screen-redraw           |Redraw the screen
709 |stop-loading            |Stop all loading views
710 |show-version            |Show version information
711 |none                    |Do nothing
712 |=============================================================================
713 endif::DOC_GEN_ACTIONS[]
715 Color command
716 -------------
718 Color commands control highlighting and the user interface styles. If your
719 terminal supports color, these commands can be used to assign foreground and
720 background combinations to certain areas. Optionally, an attribute can be
721 given as the last parameter. The syntax is:
723 [verse]
724 *color* 'area' 'fgcolor' 'bgcolor' '[attributes]'
726 Examples:
728 ------------------------------------------------------------------------------
729 # Override the default terminal colors to white on black.
730 color default           white   black
731 # Diff colors
732 color diff-header       yellow  default
733 color diff-index        blue    default
734 color diff-chunk        magenta default
735 color "Reported-by:"    green   default
736 # View specific color
737 color tree.date         black   cyan    bold
738 --------------------------------------------------------------------------
740 Or in the Git configuration files:
742 --------------------------------------------------------------------------
743 [tig "color"]
744         # A strange looking cursor line
745         cursor          = red   default underline
746         # UI colors
747         title-blur      = white blue
748         title-focus     = white blue    bold
749 # View specific color
750 [tig "color.tree"]
751         date            = cyan  default bold
752 ------------------------------------------------------------------------------
754 Area names::
756         Can be either a built-in area name or a custom quoted string. The
757         latter allows custom color rules to be added for lines matching a
758         quoted string.
759         Valid built-in area names are described below. Note, all names are
760         case-insensitive, and you may use '-', and '_' interchangeably,
761         e.g. "Diff-Header" and "DIFF_HEADER" are the same.
762         View specific colors can be defined by prefixing the view name to
763         the area name, e.g. "stage.diff-chunk" and "diff.diff-chunk".
765 Color names::
767         Valid colors include: *white*, *black*, *green*, *magenta*, *blue*,
768         *cyan*, *yellow*, *red*, *default*. Use *default* to refer to the
769         default terminal colors, for example, to keep the background
770         transparent when you are using a terminal with a transparent
771         background.
773 Colors can also be specified using the keywords *color0*, *color1*, ...,
774 *colorN-1* (where *N* is the number of colors supported by your terminal).
775 This is useful when you remap the colors for your display or want to enable
776 colors supported by 88-color and 256-color terminals. Note that the 'color'
777 prefix is optional. If you prefer, you can specify colors directly by their
778 numbers *0*, *1*, ..., *N-1* instead, just like in the configuration file of
779 Git.
781 Attribute names::
783         Valid attributes include: *normal*, *blink*, *bold*, *dim*, *reverse*,
784         *standout*, and *underline*. Note, not all attributes may be supported
785         by the terminal.
787 UI colors
788 ~~~~~~~~~
790 The colors and attributes to be used for the text that is not highlighted or
791 that specify the use of the default terminal colors can be controlled by
792 setting the *default* color option.
794 .General
795 [frame="none",grid="none",cols="25<m,75<"]
796 |=============================================================================
797 |default                |Override default terminal colors (see above).
798 |cursor                 |The cursor line.
799 |status                 |The status window showing info messages.
800 |title-focus            |The title window for the current view.
801 |title-blur             |The title window of any backgrounded view.
802 |delimiter              |Delimiter shown for truncated lines.
803 |header                 |The view header lines. Use 'status.header' to color
804                          the staged, unstaged, and untracked sections in the
805                          status view. Use 'help.header' to color the keymap
806                          sections in the help view.
807 |line-number            |Line numbers.
808 |id                     |The commit ID.
809 |date                   |The commit date.
810 |author                 |The commit author.
811 |mode                   |The file mode holding the permissions and type.
812 |overflow               |Title text overflow.
813 |directory              |The directory name.
814 |file                   |The file name.
815 |file-size              |File size.
816 |=============================================================================
818 .Main view colors
819 [frame="none",grid="none",cols="25<m,75<"]
820 |=============================================================================
821 |graph-commit           |The commit dot in the revision graph.
822 |palette-[0-6]          |7 different colors,
823 used for distinguishing branches or commits.
824 example: palette-0 = red
825 |main-commit            |The commit comment.
826 |main-head              |Label of the current branch.
827 |main-remote            |Label of a remote.
828 |main-tracked           |Label of the remote tracked by the current branch.
829 |main-tag               |Label of a signed tag.
830 |main-local-tag         |Label of a local tag.
831 |main-ref               |Label of any other reference.
832 |main-replace           |Label of replaced reference.
833 |=============================================================================
835 .Status view
836 [frame="none",grid="none",cols="25<m,75<"]
837 |=============================================================================
838 |stat-none              |Empty status label.
839 |stat-staged            |Status flag of staged files.
840 |stat-unstaged          |Status flag of unstaged files.
841 |stat-untracked         |Status flag of untracked files.
842 |=============================================================================
844 .Help view
845 [frame="none",grid="none",cols="25<m,75<"]
846 |=============================================================================
847 |help-group             |Help group name.
848 |help-action            |Help action name.
849 |=============================================================================
851 Highlighting
852 ~~~~~~~~~~~~
856 Diff markup::
858 Options concerning diff start, chunks and lines added and deleted.
860 *diff-header*, *diff-chunk*, *diff-add*, *diff-add2*, *diff-del*,
861 *diff-del2*
863 Enhanced Git diff markup::
865 Extra diff information emitted by the Git diff machinery, such as mode
866 changes, rename detection, and similarity.
868 *diff-oldmode*, *diff-newmode*, *diff-copy-from*, *diff-copy-to*,
869 *diff-similarity*, *diff-index*
871 Pretty print commit headers::
873 Commit diffs and the revision logs are usually formatted using pretty printed
874 headers , unless `--pretty=raw` was given. This includes lines, such as merge
875 info, commit ID, and author and committer date.
877 *pp-refs*, *pp-reflog*, *pp-reflogmsg*, *pp-merge*
879 Raw commit header::
881 Usually shown when `--pretty=raw` is given, however 'commit' is pretty much
882 omnipresent.
884 *commit*, *parent*, *tree*, *author*, *committer*
886 Commit message::
888 `Signed-off-by`, `Acked-by`, `Reviewed-by` and `Tested-by` lines are colorized.
889 Characters in the commit title exceeding a predefined width can be highlighted.
892 Tree markup::
894 Colors for information of the tree view.
896 *tree-dir*, *tree-file*
900 Source command
901 -------------
903 Source commands make it possible to read additional configuration files.
904 Sourced files are included in-place, meaning when a 'source' command is
905 encountered the file will be immediately read. Any commands later in the
906 current configuration file will take precedence. The syntax is:
908 [verse]
909 *source* 'path'
911 Examples:
913 --------------------------------------------------------------------------
914 source ~/.tig/colorscheme.tigrc
915 source ~/.tig/keybindings.tigrc
916 --------------------------------------------------------------------------
918 COPYRIGHT
919 ---------
920 Copyright (c) 2006-2014 Jonas Fonseca <jonas.fonseca@gmail.com>
922 This program is free software; you can redistribute it and/or modify
923 it under the terms of the GNU General Public License as published by
924 the Free Software Foundation; either version 2 of the License, or
925 (at your option) any later version.
927 SEE ALSO
928 --------
929 ifndef::backend-docbook[]
930 link:tig.1.{docext}[tig(1)],
931 link:manual.{docext}[the Tig manual],
932 endif::backend-docbook[]
933 ifdef::backend-docbook[]
934 manpage:tig[1],
935 manpage:tigmanual[7],
936 endif::backend-docbook[]
937 git(7), git-config(1)