Fix segmentation Fault on 32-bit
[tig.git] / tigrc
blob657f89ce82e771fc369d512329f0ee5ad278912c
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 (enum) [no|v2|v1]          : Show the commit graph? (main view only)
20 #    - refs (bool)                      : Show branches, tags and remotes? (main view only)
21 #    - overflow (boolint)               : Highlight overflows? Defaults 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; defaults to 5
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   = line-number:no id:no 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                = auto          # Enum: auto, 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` (git-diff)
95 #set blame-options              = -C -C -C      # User-defined options for `tig blame` (git-blame)
96 #set log-options                = --pretty=raw  # User-defined options for `tig log` (git-log)
97 #set main-options               = -n 1000       # User-defined options for `tig` (git-log)
99 # Misc
100 set refresh-mode                = auto          # Enum: manual, auto, after-command, periodic
101 set refresh-interval            = 10            # Interval in seconds between refreshes
102 set ignore-case                 = no            # Ignore case when searching?
103 set focus-child                 = yes           # Move focus to child view when opened?
104 set horizontal-scroll           = 50%           # Number of columns to scroll as % of width
105 set split-view-height           = 67%           # Height of the bottom view for horizontal splits
106 set vertical-split              = auto          # Enum: horizontal, vertical, auto; Use auto to
107                                                 # switch to horizontal split when width allows it
108 set split-view-width            = 50%           # Width of right-most view for vertical splits
109 set editor-line-number          = yes           # Automatically pass line number to editor? Used
110                                                 # for opening file at specific line e.g. from a diff
111 set mouse                       = no            # Enable mouse support?
112 set mouse-scroll                = 3             # Number of lines to scroll via the mouse
114 # User-defined commands
115 # ---------------------
116 # These commands allow to run shell commands directly from within Tig.
117 # Unless otherwise specified, commands are run in the foreground with
118 # their console output shown (as if '!' was specified). When multiple
119 # command options are specified their behavior are combined, e.g. "?<git
120 # commit" will prompt the user whether to execute the command and will
121 # exit Tig after completion.
123 #   !   Run the command in the foreground with output shown.
124 #   @   Run the command in the background with no output.
125 #   ?   Prompt the user before executing the command.
126 #   <   Exit Tig after executing the command.
128 # User-defined commands can optionally refer to Tig's internal state
129 # using the following variable names, which are substituted before
130 # commands are run:
132 #   %(head)             The current ref ID. Defaults to HEAD
133 #   %(commit)           The current commit ID.
134 #   %(blob)             The current blob ID.
135 #   %(branch)           The current branch name.
136 #   %(remote)           The current remote name.
137 #   %(tag)              The current tag name.
138 #   %(stash)            The current stash name.
139 #   %(directory)        The current directory path in the tree view; 
140 #                       empty for the root directory.
141 #   %(file)             The currently selected file.
142 #   %(ref)              The reference given to blame or HEAD if undefined.
143 #   %(revargs)          The revision arguments passed on the command line.
144 #   %(fileargs)         The file arguments passed on the command line.
145 #   %(cmdlineargs)      All other options passed on the command line.
146 #   %(diffargs)         The diff options from `diff-options` or `TIG_DIFF_OPTS`
147 #   %(prompt)           Prompt for the argument value.
149 bind main       C       ?git cherry-pick %(commit)
150 bind status     C       !git commit
151 bind stash      P       ?git stash pop %(stash)
152 bind stash      !       ?git stash drop %(stash)
153 bind refs       C       ?git checkout %(branch)
154 bind refs       !       ?git branch -D %(branch)
156 # Normal commands
157 # ---------------
159 # View switching
160 bind generic    m       view-main
161 bind generic    d       view-diff
162 bind generic    l       view-log
163 bind generic    t       view-tree
164 bind generic    f       view-blob
165 bind generic    b       view-blame
166 bind generic    r       view-refs
167 bind generic    p       view-pager
168 bind generic    h       view-help
169 bind generic    s       view-status
170 bind generic    S       view-status             # Compat binding to avoid going crazy!
171 bind generic    c       view-stage
172 bind generic    y       view-stash
173 bind generic    g       view-grep
175 # View manipulation
176 bind generic    <Enter> enter                   # Enter and open selected entry
177 bind generic    <Lt>    back                    # Go back to the previous view state
178 bind generic    <Down>  next                    # Move to next
179 bind generic    <C-N>   next
180 bind generic    J       next
181 bind generic    <Up>    previous                # Move to previous
182 bind generic    <C-P>   previous
183 bind generic    K       previous
184 bind generic    ,       parent                  # Move to parent
185 bind generic    <Tab>   view-next               # Move focus to the next view
186 bind generic    R       refresh                 # Reload and refresh view
187 bind generic    <F5>    refresh
188 bind generic    O       maximize                # Maximize the current view
189 bind generic    q       view-close              # Close the current view
190 bind generic    Q       quit                    # Close all views and quit
192 # View specific
193 bind status     u       status-update           # Stage/unstage changes in file
194 bind status     !       status-revert           # Revert changes in file
195 bind status     M       status-merge            # Open git-mergetool(1)
196 #bind status    ???     :toggle status          # Show short or long status labels
197 bind stage      u       status-update           # Stage/unstage current diff (c)hunk
198 bind stage      1       stage-update-line       # Stage/unstage current line
199 bind stage      !       status-revert           # Revert current diff (c)hunk
200 bind stage      \       stage-split-chunk       # Split current diff (c)hunk
201 bind stage      @       :/^@@                   # Jump to next (c)hunk
202 bind stage      [       :toggle diff-context -1 # Decrease the diff context
203 bind stage      ]       :toggle diff-context +1 # Increase the diff context
204 bind diff       @       :/^@@                   # Jump to next (c)hunk
205 bind diff       [       :toggle diff-context -1
206 bind diff       ]       :toggle diff-context +1
207 bind main       G       :toggle commit-title-graph # Toggle revision graph visualization
208 bind main       F       :toggle commit-title-refs  # Toggle reference display (tags/branches)
210 # Cursor navigation
211 bind generic    j       move-down
212 bind generic    k       move-up
213 #bind generic   ?       move-half-page-down
214 #bind generic   ?       move-half-page-up
215 bind generic    <PgDown> move-page-down
216 bind generic    <C-D>   move-page-down
217 bind generic    <Space> move-page-down
218 bind generic    <PgUp>  move-page-up
219 bind generic    <C-U>   move-page-up
220 bind generic    -       move-page-up
221 bind generic    <Home>  move-first-line
222 bind generic    <End>   move-last-line
224 # Scrolling
225 bind generic    |       scroll-first-col
226 bind generic    <Left>  scroll-left
227 bind generic    <Right> scroll-right
228 bind generic    <Ins>   scroll-line-up
229 bind generic    <C-Y>   scroll-line-up
230 bind generic    <Del>   scroll-line-down
231 bind generic    <C-E>   scroll-line-down
232 bind generic    <SBack> scroll-page-up
233 bind generic    <SFwd>  scroll-page-down
235 # Searching
236 bind generic    /       search
237 bind generic    ?       search-back
238 bind generic    n       find-next
239 bind generic    N       find-prev
241 # Option manipulation
242 bind generic    o       options                 # Open the options menu
243 # Bindings for toggling settings
244 bind generic    I       :toggle sort-order      # Toggle ascending/descending sort order
245 bind generic    i       :toggle sort-field      # Toggle field to sort by
246 bind generic    <Hash>  :toggle line-number     # Toggle line numbers
247 bind generic    D       :toggle date            # Toggle date display
248 bind generic    A       :toggle author          # Toggle author display
249 bind generic    ~       :toggle line-graphics   # Toggle (line) graphics mode
250 bind generic    F       :toggle file-name       # Toggle file name display
251 # bind generic  ???     :toogle show-changes    # Toggle local changes display in the main view
252 bind generic    W       :toggle ignore-space    # Toggle ignoring whitespace in diffs
253 # bind generic  ?       :toggle commit-order    # Toggle commit ordering
254 bind generic    X       :toggle id              # Toggle commit ID display
255 bind generic    $       :toggle commit-title-overflow
256                                                 # Toggle highlighting of commit title overflow
257 # bind generic  ???     :toggle file-size       # Toggle file size format
258 # bind generic  ???     :toggle status          # Toggle status display
259 # bind generic  ???     :toggle status-untracked-dirs
260                                                 # Toggle display of file in untracked directories
261 # bind generic  ???     :toggle vertical-split  # Toggle vertical split
262 bind generic    %       :toggle file-filter
264 # Misc
265 bind generic    e       edit                    # Open in editor
266 bind generic    :       prompt                  # Open the prompt
267 bind generic    <C-L>   screen-redraw           # Redraw the screen
268 bind generic    z       stop-loading            # Stop all loading views
269 bind generic    v       show-version            # Show Tig version
271 # Colors
272 # ------
274 # The colors in the UI can be customized. In addition to the colors used
275 # for the UI you can also define new colors to use in the pager, blob,
276 # diff, and stage views by placing the text to match for in quotes.
278 # Prefix the name of a view to set a color only for that view, e.g.
280 #       color grep.file blue default
282 # As an example, this setting will to color Signed-off-by lines with a
283 # yellow foreground color and use the default background color.
285 #       color "    Signed-off-by"       yellow  default
287 # Note the four leading spaces in the string to match. This is because
288 # Git automatically indents commit messages by four spaces.
290 color "diff --"                 yellow  default
291 color "--- "                    yellow  default
292 color "+++ "                    yellow  default
293 color "@@"                      magenta default
294 color "+"                       green   default
295 color " +"                      green   default
296 color "-"                       red     default
297 color " -"                      red     default
298 color "index "                  blue    default
299 color "old file mode "          yellow  default
300 color "new file mode "          yellow  default
301 color "deleted file mode "      yellow  default
302 color "copy from "              yellow  default
303 color "copy to "                yellow  default
304 color "rename from "            yellow  default
305 color "rename to "              yellow  default
306 color "similarity "             yellow  default
307 color "dissimilarity "          yellow  default
308 color "diff-tree "              blue    default
309 color "Author: "                cyan    default
310 color "Commit: "                magenta default
311 color "Tagger: "                magenta default
312 color "Merge: "                 blue    default
313 color "Date: "                  yellow  default
314 color "AuthorDate: "            yellow  default
315 color "CommitDate: "            yellow  default
316 color "TaggerDate: "            yellow  default
317 color "Refs: "                  red     default
318 color "Reflog: "                red     default
319 color "Reflog message: "        yellow  default
320 color "stash@{"                 magenta default
321 color "commit "                 green   default
322 color "parent "                 blue    default
323 color "tree "                   blue    default
324 color "author "                 green   default
325 color "committer "              magenta default
326 color "    Signed-off-by"       yellow  default
327 color "    Acked-by"            yellow  default
328 color "    Tested-by"           yellow  default
329 color "    Reviewed-by"         yellow  default
330 color default                   default default normal
331 color cursor                    white   green   bold
332 color status                    green   default
333 color delimiter                 magenta default
334 color date                      blue    default
335 color mode                      cyan    default
336 color id                        magenta default
337 color overflow                  red     default
338 color header                    yellow  default
339 color section                   cyan    default
340 color directory                 yellow  default
341 color file                      default default
342 color grep.file                 blue    default
343 color file-size                 default default
344 color line-number               cyan    default
345 color title-blur                white   blue
346 color title-focus               white   blue    bold
347 color main-commit               default default
348 color main-tag                  magenta default bold
349 color main-local-tag            magenta default
350 color main-remote               yellow  default
351 color main-replace              cyan    default
352 color main-tracked              yellow  default bold
353 color main-ref                  cyan    default
354 color main-head                 cyan    default bold
355 color stat-none                 default default
356 color stat-staged               magenta default
357 color stat-unstaged             magenta default
358 color stat-untracked            magenta default
359 color help-group                blue    default
360 color help-action               yellow  default
361 color diff-stat                 blue    default
362 color palette-0                 magenta default
363 color palette-1                 yellow  default
364 color palette-2                 cyan    default
365 color palette-3                 green   default
366 color palette-4                 default default
367 color palette-5                 white   default
368 color palette-6                 red     default
369 color palette-7                 magenta default bold
370 color palette-8                 yellow  default bold
371 color palette-9                 cyan    default bold
372 color palette-10                green   default bold
373 color palette-11                default default bold
374 color palette-12                white   default bold
375 color palette-13                red     default bold
376 color graph-commit              blue    default
378 # Mappings for colors read from git configuration.
379 # Set to "no" to disable.
380 set git-colors = \
381         branch.current=main-head \
382         branch.local=main-ref \
383         branch.plain=main-ref \
384         branch.remote=main-remote \
385         \
386         diff.meta=diff-header \
387         diff.meta=diff-index \
388         diff.meta=diff-oldmode \
389         diff.meta=diff-newmode \
390         diff.frag=diff-chunk \
391         diff.old=diff-del \
392         diff.new=diff-add \
393         \
394         grep.filename=grep.file \
395         grep.linenumber=grep.line-number \
396         grep.separator=grep.delimiter \
397         \
398         status.branch=status.header \
399         status.added=stat-staged \
400         status.updated=stat-staged \
401         status.changed=stat-unstaged \
402         status.untracked=stat-untracked