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