1 # Tig default configuration
3 # Please see 'man tigrc' for a complete reference.
7 # Most of these settings can be toggleable, either via the toggle-*
8 # actions or via the option menu (bound to `o` by default).
12 # Supported column types and their options:
15 # - display (enum) [no|full|abbreviated|email|email-user]
16 # : Show author information?
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.
24 # - display (enum) [no|default|local|relative|short]
27 # - display (enum) [no|always|auto] : Show file names?
30 # - display (enum) [no|default|units] : Show file sizes?
33 # - display (bool) : Show commit/tree ID?
36 # - display (bool) : Show line numbers?
37 # - interval (int) : Interval between line numbers
40 # - display (bool) : Show file modes?
43 # - display (enum) [no|short|long] : Show status label?
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
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
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
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)
98 set refresh-mode = auto # Enum: manuel, auto, 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
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)
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 H view-refs
164 bind generic p view-pager
165 bind generic h view-help
166 bind generic S view-status
167 bind generic c view-stage
168 bind generic y view-stash
169 bind generic G view-grep
172 bind generic <Enter> enter # Enter and open selected entry
173 bind generic <Lt> back # Go back to the previous view state
174 bind generic <Down> next # Move to next
175 bind generic <C-N> next
176 bind generic <Up> previous # Move to previous
177 bind generic <C-P> previous
178 bind generic , parent # Move to parent
179 bind generic <Tab> view-next # Move focus to the next view
180 bind generic R refresh # Reload and refresh view
181 bind generic <F5> refresh
182 bind generic O maximize # Maximize the current view
183 bind generic q view-close # Close the current view
184 bind generic Q quit # Close all views and quit
187 bind status u status-update # Stage/unstage changes in file
188 bind status ! status-revert # Revert changes in file
189 bind status M status-merge # Open git-mergetool(1)
190 #bind status ??? :toggle status # Show short or long status labels
191 bind stage u status-update # Stage/unstage current diff (c)hunk
192 bind stage 1 stage-update-line # Stage/unstage current line
193 bind stage ! status-revert # Revert current diff (c)hunk
194 bind stage \ stage-split-chunk # Split current diff (c)hunk
195 bind stage @ :/^@@ # Jump to next (c)hunk
196 bind stage [ :toggle diff-context -1 # Decrease the diff context
197 bind stage ] :toggle diff-context +1 # Increase the diff context
198 bind diff @ :/^@@ # Jump to next (c)hunk
199 bind diff [ :toggle diff-context -1
200 bind diff ] :toggle diff-context +1
203 bind generic k move-up
204 bind generic j move-down
205 bind generic <PgDown> move-page-down
206 bind generic <C-D> move-page-down
207 bind generic <Space> move-page-down
208 bind generic <PgUp> move-page-up
209 bind generic <C-U> move-page-up
210 bind generic b move-page-up
211 bind generic - move-page-up
212 bind generic <Home> move-first-line
213 bind generic <End> move-last-line
216 bind generic | scroll-first-col
217 bind generic <Left> scroll-left
218 bind generic <Right> scroll-right
219 bind generic <Ins> scroll-line-up
220 bind generic <C-Y> scroll-line-up
221 bind generic <Del> scroll-line-down
222 bind generic <C-E> scroll-line-down
223 bind generic w scroll-page-up
224 bind generic s scroll-page-down
227 bind generic / search
228 bind generic ? search-back
229 bind generic n find-next
230 bind generic N find-prev
232 # Option manipulation
233 bind generic o options # Open the options menu
234 # Bindings for toggling settings
235 bind generic I :toggle sort-order # Toggle ascending/descending sort order
236 bind generic i :toggle sort-field # Toggle field to sort by
237 bind generic . :toggle line-number # Toggle line numbers
238 bind generic D :toggle date # Toggle date display
239 bind generic A :toggle author # Toggle author display
240 bind generic g :toggle commit-title-graph
241 # Toggle revision graph visualization
242 bind generic ~ :toggle line-graphics # Toggle (line) graphics mode
243 bind generic <Hash> :toggle file-name # Toggle file name display
244 bind generic F :toggle commit-title-refs
245 # Toggle reference display (tags/branches)
246 # bind generic ??? :toogle show-changes # Toggle local changes display in the main view
247 bind generic W :toggle ignore-space # Toggle ignoring whitespace in diffs
248 # bind generic ? :toggle commit-order # Toggle commit ordering
249 bind generic X :toggle id # Toggle commit ID display
250 bind generic $ :toggle commit-title-overflow
251 # Toggle highlighting of commit title overflow
252 # bind generic ??? :toggle file-size # Toggle file size format
253 # bind generic ??? :toggle status # Toggle status display
254 # bind generic ??? :toggle status-untracked-dirs
255 # Toggle display of file in untracked directories
256 # bind generic ??? :toggle vertical-split # Toggle vertical split
257 bind generic % :toggle file-filter
260 bind generic e edit # Open in editor
261 bind generic : prompt # Open the prompt
262 bind generic r screen-redraw # Redraw the screen
263 bind generic <C-L> screen-redraw
264 bind generic z stop-loading # Stop all loading views
265 bind generic v show-version # Show Tig version
270 # The colors in the UI can be customized. In addition to the colors used
271 # for the UI you can also define new colors to use in the pager, blob,
272 # diff, and stage views by placing the text to match for in quotes.
274 # Prefix the name of a view to set a color only for that view, e.g.
276 # color grep.file blue default
278 # As an example, this setting will to color Signed-off-by lines with a
279 # yellow foreground color and use the default background color.
281 # color " Signed-off-by" yellow default
283 # Note the four leading spaces in the string to match. This is because
284 # Git automatically indents commit messages by four spaces.
286 color "diff --" yellow default
287 color "@@" magenta default
288 color "+" green default
289 color " +" green default
290 color "-" red default
291 color " -" red default
292 color "index " blue default
293 color "old file mode " yellow default
294 color "new file mode " yellow default
295 color "deleted file mode " yellow default
296 color "copy from " yellow default
297 color "copy to " yellow default
298 color "rename from " yellow default
299 color "rename to " yellow default
300 color "similarity " yellow default
301 color "dissimilarity " yellow default
302 color "diff-tree " blue default
303 color "Author: " cyan default
304 color "Commit: " magenta default
305 color "Tagger: " magenta default
306 color "Merge: " blue default
307 color "Date: " yellow default
308 color "AuthorDate: " yellow default
309 color "CommitDate: " yellow default
310 color "TaggerDate: " yellow default
311 color "Refs: " red default
312 color "Reflog: " red default
313 color "Reflog message: " yellow default
314 color "stash@{" magenta default
315 color "commit " green default
316 color "parent " blue default
317 color "tree " blue default
318 color "author " green default
319 color "committer " magenta default
320 color " Signed-off-by" yellow default
321 color " Acked-by" yellow default
322 color " Tested-by" yellow default
323 color " Reviewed-by" yellow default
324 color default default default normal
325 color cursor white green bold
326 color status green default
327 color delimiter magenta default
328 color date blue default
329 color mode cyan default
330 color id magenta default
331 color overflow red default
332 color header yellow default
333 color section cyan default
334 color directory yellow default
335 color file default default
336 color grep.file blue default
337 color file-size default default
338 color line-number cyan default
339 color title-blur white blue
340 color title-focus white blue bold
341 color main-commit default default
342 color main-tag magenta default bold
343 color main-local-tag magenta default
344 color main-remote yellow default
345 color main-replace cyan default
346 color main-tracked yellow default bold
347 color main-ref cyan default
348 color main-head cyan default bold
349 color stat-none default default
350 color stat-staged magenta default
351 color stat-unstaged magenta default
352 color stat-untracked magenta default
353 color help-group blue default
354 color help-action yellow default
355 color diff-stat blue default
356 color palette-0 magenta default
357 color palette-1 yellow default
358 color palette-2 cyan default
359 color palette-3 green default
360 color palette-4 default default
361 color palette-5 white default
362 color palette-6 red default
363 color graph-commit blue default
365 # Mappings for colors read from git configuration.
366 # Set to "no" to disable.
368 branch.current=main-head \
369 branch.local=main-ref \
370 branch.plain=main-ref \
371 branch.remote=main-remote \
373 diff.meta=diff-header \
374 diff.meta=diff-index \
375 diff.meta=diff-oldmode \
376 diff.meta=diff-newmode \
377 diff.frag=diff-chunk \
381 grep.filename=grep.file \
382 grep.linenumber=grep.line-number \
383 grep.separator=grep.delimiter \
385 status.branch=status.header \
386 status.added=stat-staged \
387 status.updated=stat-staged \
388 status.changed=stat-unstaged \
389 status.untracked=stat-untracked