Extend tigrc parse test to check parsed bindings via the help view
[tig.git] / tigrc
blob4ebd9c580f95cac7ed8ea72726082f951c3ae7c5
1 # Tig default configuration
3 # Please see 'man tigrc' for a complete reference.
5 # Settings
6 # --------
7 # Most of these settings can be toggleable, either via the toggle-*
8 # actions or via the option menu (bound to `o` by default).
10 # View settings
12 # Supported column types and their options:
14 #   author
15 #    - display (enum) [no|full|abbreviated|email|email-user]
16 #                                       : Show author information?
17 #   commit-title
18 #    - display (bool)                   : Show the commit title?
19 #    - graph (bool)                     : Show the commit revision graph? (main view only)
20 #    - refs (bool)                      : Show branches, tags and remotes? (main view only)
21 #    - overflow (boolint)               : Highlight overflows? Default to 50 when enabled.
23 #   date
24 #    - display (enum) [no|default|local|relative|short]
25 #                                       : Show dates?
26 #   file-name
27 #    - display (enum) [no|always|auto]  : Show file names?
29 #   file-size
30 #    - display (enum) [no|default|units]        : Show file sizes?
32 #   id
33 #    - display (bool)                   : Show commit/tree ID?
35 #   line-number
36 #    - display (bool)                   : Show line numbers?
37 #    - interval (int)                   : Interval between line numbers
39 #   mode
40 #    - display (bool)                   : Show file modes?
42 #   status
43 #    - display (enum) [no|short|long]   : Show status label?
45 #   text
46 #    - display (bool)                   : Show text?
47 #    - commit-title-overflow (boolint)  : Highlight overflow in log and diff view?
49 # All columns also support a width option to configure the max width of
50 # the column. Use zero (the default value) to auto-size the column based
51 # on the content.
53 set blame-view  = date:default author:full file-name:auto id:yes,color line-number:no,interval=5 text
54 set grep-view   = file-name:no line-number:yes,interval=1 text
55 set main-view   = line-number:no,interval=5 id:no date:default author:full commit-title:yes,graph,refs,overflow=no
56 set refs-view   = date:default author:full ref commit-title
57 set stash-view  = line-number:no,interval=5 id:no date:default author:full commit-title
58 set status-view = line-number:no,interval=5 status:short file-name
59 set tree-view   = line-number:no,interval=5 mode author:full file-size date:default id:no file-name
61 # Pager based views
62 set pager-view  = line-number:no,interval=5 text
63 set stage-view  = line-number:no,interval=5 text
64 set log-view    = line-number:no,interval=5 text
65 set blob-view   = line-number:no,interval=5 text
66 set diff-view   = line-number:no,interval=5 text:yes,commit-title-overflow=no
68 # UI display settings
69 set show-changes                = yes           # Show changes commits in the main view?
70 set wrap-lines                  = no            # Wrap long lines in pager views?
71 set tab-size                    = 8             # Number of spaces to use when expanding tabs
72 set line-graphics               = default       # Enum: ascii, default, utf-8
74 # Format reference names based on type.
75 #  - head               : The current HEAD.
76 #  - tag                : A signed tag.
77 #  - local-tag          : An unsigned tag.
78 #  - remote             : A remote.
79 #  - tracked-remote     : The remote tracked by current HEAD.
80 #  - replace            : A replaced reference.
81 #  - branch             : Any other reference.
82 # If no format is defined for `local-tag` then the one for `tag` is used.
83 # Similarly, `remote` is used if no `tracked-remote` format exists.
84 # Prefix with `hide:` to not show that reference type, e.g. `hide:remote`.
85 # Expects a space separated list of format strings.
86 set reference-format            = [branch] <tag> {remote} ~replace~
88 # Settings controlling how content is read from Git
89 set commit-order                = default       # Enum: default, topo, date, reverse (main)
90 set status-untracked-dirs       = yes           # Show files in untracked directories? (status)
91 set ignore-space                = no            # Enum: no, all, some, at-eol (diff)
92 set show-notes                  = yes           # When non-bool passed as `--show-notes=...` (diff)
93 #set diff-context               = 3             # Number of lines to show around diff changes (diff)
94 #set diff-options               = -C            # User-defined options for `tig show` (diff)
95 #set blame-options              = -C -C -C      # User-defined options for `tig blame` (blame)
97 # Misc
98 set refresh-mode                = auto          # Enum: manual, auto, after-command, periodic
99 set refresh-interval            = 10            # Interval in seconds between refreshes
100 set ignore-case                 = no            # Ignore case when searching?
101 set focus-child                 = yes           # Move focus to child view when opened?
102 set horizontal-scroll           = 50%           # Number of columns to scroll as % of width
103 set split-view-height           = 67%           # Number of lines for bottom view as % of height
104 set vertical-split              = auto          # Enum: horizontal, vertical, auto; Use auto to
105                                                 # switch to horizontal split when width allows it
106 set editor-line-number          = yes           # Automatically pass line number to editor? Used
107                                                 # for opening file at specific line e.g. from a diff
108 set mouse                       = no            # Enable mouse support?
109 set mouse-scroll                = 3             # Number of lines to scroll via the mouse
111 # User-defined commands
112 # ---------------------
113 # These commands allow to run shell commands directly from within Tig.
114 # Unless otherwise specified, commands are run in the foreground with
115 # their console output shown (as if '!' was specified). When multiple
116 # command options are specified their behavior are combined, e.g. "?<git
117 # commit" will prompt the user whether to execute the command and will
118 # exit Tig after completion.
120 #   !   Run the command in the foreground with output shown.
121 #   @   Run the command in the background with no output.
122 #   ?   Prompt the user before executing the command.
123 #   <   Exit Tig after executing the command.
125 # User-defined commands can optionally refer to Tig's internal state
126 # using the following variable names, which are substituted before
127 # commands are run:
129 #   %(head)             The current ref ID. Defaults to HEAD
130 #   %(commit)           The current commit ID.
131 #   %(blob)             The current blob ID.
132 #   %(branch)           The current branch name.
133 #   %(remote)           The current remote name.
134 #   %(tag)              The current tag name.
135 #   %(stash)            The current stash name.
136 #   %(directory)        The current directory path in the tree view; 
137 #                       empty for the root directory.
138 #   %(file)             The currently selected file.
139 #   %(ref)              The reference given to blame or HEAD if undefined.
140 #   %(revargs)          The revision arguments passed on the command line.
141 #   %(fileargs)         The file arguments passed on the command line.
142 #   %(cmdlineargs)      All other options passed on the command line.
143 #   %(diffargs)         The diff options from `diff-options` or `TIG_DIFF_OPTS`
144 #   %(prompt)           Prompt for the argument value.
146 bind main       C       ?git cherry-pick %(commit)
147 bind status     C       !git commit
148 bind stash      P       ?git stash pop %(stash)
149 bind stash      !       ?git stash drop %(stash)
150 bind refs       C       ?git checkout %(branch)
151 bind refs       !       ?git branch -D %(branch)
153 # Normal commands
154 # ---------------
156 # View switching
157 bind generic    m       view-main
158 bind generic    d       view-diff
159 bind generic    l       view-log
160 bind generic    t       view-tree
161 bind generic    f       view-blob
162 bind generic    b       view-blame
163 bind generic    r       view-refs
164 bind generic    p       view-pager
165 bind generic    h       view-help
166 bind generic    s       view-status
167 bind generic    S       view-status             # Compat binding to avoid going crazy!
168 bind generic    c       view-stage
169 bind generic    y       view-stash
170 bind generic    g       view-grep
172 # View manipulation
173 bind generic    <Enter> enter                   # Enter and open selected entry
174 bind generic    <Lt>    back                    # Go back to the previous view state
175 bind generic    <Down>  next                    # Move to next
176 bind generic    <C-N>   next
177 bind generic    <Up>    previous                # Move to previous
178 bind generic    <C-P>   previous
179 bind generic    ,       parent                  # Move to parent
180 bind generic    <Tab>   view-next               # Move focus to the next view
181 bind generic    R       refresh                 # Reload and refresh view
182 bind generic    <F5>    refresh
183 bind generic    O       maximize                # Maximize the current view
184 bind generic    q       view-close              # Close the current view
185 bind generic    Q       quit                    # Close all views and quit
187 # View specific
188 bind status     u       status-update           # Stage/unstage changes in file
189 bind status     !       status-revert           # Revert changes in file
190 bind status     M       status-merge            # Open git-mergetool(1)
191 #bind status    ???     :toggle status          # Show short or long status labels
192 bind stage      u       status-update           # Stage/unstage current diff (c)hunk
193 bind stage      1       stage-update-line       # Stage/unstage current line
194 bind stage      !       status-revert           # Revert current diff (c)hunk
195 bind stage      \       stage-split-chunk       # Split current diff (c)hunk
196 bind stage      @       :/^@@                   # Jump to next (c)hunk
197 bind stage      [       :toggle diff-context -1 # Decrease the diff context
198 bind stage      ]       :toggle diff-context +1 # Increase the diff context
199 bind diff       @       :/^@@                   # Jump to next (c)hunk
200 bind diff       [       :toggle diff-context -1
201 bind diff       ]       :toggle diff-context +1
202 bind main       G       :toggle commit-title-graph # Toggle revision graph visualization
203 bind main       F       :toggle commit-title-refs  # Toggle reference display (tags/branches)
205 # Cursor navigation
206 bind generic    k       move-up
207 bind generic    j       move-down
208 bind generic    <PgDown> move-page-down
209 bind generic    <C-D>   move-page-down
210 bind generic    <Space> move-page-down
211 bind generic    <PgUp>  move-page-up
212 bind generic    <C-U>   move-page-up
213 bind generic    -       move-page-up
214 bind generic    <Home>  move-first-line
215 bind generic    <End>   move-last-line
217 # Scrolling
218 bind generic    |       scroll-first-col
219 bind generic    <Left>  scroll-left
220 bind generic    <Right> scroll-right
221 bind generic    <Ins>   scroll-line-up
222 bind generic    <C-Y>   scroll-line-up
223 bind generic    <Del>   scroll-line-down
224 bind generic    <C-E>   scroll-line-down
225 bind generic    <SBack> scroll-page-up
226 bind generic    <SFwd>  scroll-page-down
228 # Searching
229 bind generic    /       search
230 bind generic    ?       search-back
231 bind generic    n       find-next
232 bind generic    N       find-prev
234 # Option manipulation
235 bind generic    o       options                 # Open the options menu
236 # Bindings for toggling settings
237 bind generic    I       :toggle sort-order      # Toggle ascending/descending sort order
238 bind generic    i       :toggle sort-field      # Toggle field to sort by
239 bind generic    <Hash>  :toggle line-number     # Toggle line numbers
240 bind generic    D       :toggle date            # Toggle date display
241 bind generic    A       :toggle author          # Toggle author display
242 bind generic    ~       :toggle line-graphics   # Toggle (line) graphics mode
243 bind generic    F       :toggle file-name       # Toggle file name display
244 # bind generic  ???     :toogle show-changes    # Toggle local changes display in the main view
245 bind generic    W       :toggle ignore-space    # Toggle ignoring whitespace in diffs
246 # bind generic  ?       :toggle commit-order    # Toggle commit ordering
247 bind generic    X       :toggle id              # Toggle commit ID display
248 bind generic    $       :toggle commit-title-overflow
249                                                 # Toggle highlighting of commit title overflow
250 # bind generic  ???     :toggle file-size       # Toggle file size format
251 # bind generic  ???     :toggle status          # Toggle status display
252 # bind generic  ???     :toggle status-untracked-dirs
253                                                 # Toggle display of file in untracked directories
254 # bind generic  ???     :toggle vertical-split  # Toggle vertical split
255 bind generic    %       :toggle file-filter
257 # Misc
258 bind generic    e       edit                    # Open in editor
259 bind generic    :       prompt                  # Open the prompt
260 bind generic    <C-L>   screen-redraw           # Redraw the screen
261 bind generic    z       stop-loading            # Stop all loading views
262 bind generic    v       show-version            # Show Tig version
264 # Colors
265 # ------
267 # The colors in the UI can be customized. In addition to the colors used
268 # for the UI you can also define new colors to use in the pager, blob,
269 # diff, and stage views by placing the text to match for in quotes.
271 # Prefix the name of a view to set a color only for that view, e.g.
273 #       color grep.file blue default
275 # As an example, this setting will to color Signed-off-by lines with a
276 # yellow foreground color and use the default background color.
278 #       color "    Signed-off-by"       yellow  default
280 # Note the four leading spaces in the string to match. This is because
281 # Git automatically indents commit messages by four spaces.
283 color "diff --"                 yellow  default
284 color "@@"                      magenta default
285 color "+"                       green   default
286 color " +"                      green   default
287 color "-"                       red     default
288 color " -"                      red     default
289 color "index "                  blue    default
290 color "old file mode "          yellow  default
291 color "new file mode "          yellow  default
292 color "deleted file mode "      yellow  default
293 color "copy from "              yellow  default
294 color "copy to "                yellow  default
295 color "rename from "            yellow  default
296 color "rename to "              yellow  default
297 color "similarity "             yellow  default
298 color "dissimilarity "          yellow  default
299 color "diff-tree "              blue    default
300 color "Author: "                cyan    default
301 color "Commit: "                magenta default
302 color "Tagger: "                magenta default
303 color "Merge: "                 blue    default
304 color "Date: "                  yellow  default
305 color "AuthorDate: "            yellow  default
306 color "CommitDate: "            yellow  default
307 color "TaggerDate: "            yellow  default
308 color "Refs: "                  red     default
309 color "Reflog: "                red     default
310 color "Reflog message: "        yellow  default
311 color "stash@{"                 magenta default
312 color "commit "                 green   default
313 color "parent "                 blue    default
314 color "tree "                   blue    default
315 color "author "                 green   default
316 color "committer "              magenta default
317 color "    Signed-off-by"       yellow  default
318 color "    Acked-by"            yellow  default
319 color "    Tested-by"           yellow  default
320 color "    Reviewed-by"         yellow  default
321 color default                   default default normal
322 color cursor                    white   green   bold
323 color status                    green   default
324 color delimiter                 magenta default
325 color date                      blue    default
326 color mode                      cyan    default
327 color id                        magenta default
328 color overflow                  red     default
329 color header                    yellow  default
330 color section                   cyan    default
331 color directory                 yellow  default
332 color file                      default default
333 color grep.file                 blue    default
334 color file-size                 default default
335 color line-number               cyan    default
336 color title-blur                white   blue
337 color title-focus               white   blue    bold
338 color main-commit               default default
339 color main-tag                  magenta default bold
340 color main-local-tag            magenta default
341 color main-remote               yellow  default
342 color main-replace              cyan    default
343 color main-tracked              yellow  default bold
344 color main-ref                  cyan    default
345 color main-head                 cyan    default bold
346 color stat-none                 default default
347 color stat-staged               magenta default
348 color stat-unstaged             magenta default
349 color stat-untracked            magenta default
350 color help-group                blue    default
351 color help-action               yellow  default
352 color diff-stat                 blue    default
353 color palette-0                 magenta default
354 color palette-1                 yellow  default
355 color palette-2                 cyan    default
356 color palette-3                 green   default
357 color palette-4                 default default
358 color palette-5                 white   default
359 color palette-6                 red     default
360 color graph-commit              blue    default
362 # Mappings for colors read from git configuration.
363 # Set to "no" to disable.
364 set git-colors = \
365         branch.current=main-head \
366         branch.local=main-ref \
367         branch.plain=main-ref \
368         branch.remote=main-remote \
369         \
370         diff.meta=diff-header \
371         diff.meta=diff-index \
372         diff.meta=diff-oldmode \
373         diff.meta=diff-newmode \
374         diff.frag=diff-chunk \
375         diff.old=diff-del \
376         diff.new=diff-add \
377         \
378         grep.filename=grep.file \
379         grep.linenumber=grep.line-number \
380         grep.separator=grep.delimiter \
381         \
382         status.branch=status.header \
383         status.added=stat-staged \
384         status.updated=stat-staged \
385         status.changed=stat-unstaged \
386         status.untracked=stat-untracked