junegunn/fzf · error
tab stop must be a positive integer
Error message
tab stop must be a positive integer
What it means
fzf requires --tabstop to be at least 1, since it defines how many columns a tab character occupies. A tabstop of 0 or below would cause division/layout problems, so the check at options.go:3521 rejects opts.Tabstop < 1.
Source
Thrown at src/options.go:3521
return errors.New("unexpected value for " + arg + ": " + *val)
}
}
*index += len(allArgs)
if opts.HeaderLines < 0 {
return errors.New("header lines must be a non-negative integer")
}
if opts.HscrollOff < 0 {
return errors.New("hscroll offset must be a non-negative integer")
}
if opts.ScrollOff < 0 {
return errors.New("scroll offset must be a non-negative integer")
}
if opts.Tabstop < 1 {
return errors.New("tab stop must be a positive integer")
}
if len(opts.JumpLabels) == 0 {
return errors.New("empty jump labels")
}
if opts.FreezeLeft < 0 || opts.FreezeRight < 0 {
return errors.New("number of fields to freeze must be a non-negative integer")
}
if validateJumpLabels {
for _, r := range opts.JumpLabels {
if r < 32 || r > 126 {
return errors.New("non-ascii jump labels are not allowed")
}
}
}
return errView on GitHub (pinned to bd4efa277b)
Solutions
- Use 1 or greater (default is 8)
- Clamp computed values to at least 1
- Omit the option for the default
Example fix
# before fzf --tabstop=0 # after fzf --tabstop=8
Defensive patterns
Strategy: validation
Validate before calling
// Shell: enforce tabstop >= 1 [ "$tabstop" -ge 1 ] || tabstop=8 exec fzf --tabstop="$tabstop"
Prevention
- Floor computed tabstop values at 1
- Default is 8; omit the flag unless you need custom tabs
- Treat 0 as invalid, not as 'auto'
When it happens
Trigger: Passing --tabstop=0 or a negative number. Any value < 1 after parsing triggers errors.New("tab stop must be a positive integer").
Common situations: Scripts passing a computed tab width that collapses to 0; assuming 0 means 'use default'.
Related errors
- invalid layout (expected: default / reverse / reverse-list)
- adaptive height is not compatible with top/bottom percent ma
- adaptive height is not compatible with top/bottom percent pa
- unknown action: ${spec}
- invalid info style (expected: default|right|hidden|inline[-r
AI-assisted analysis of junegunn/fzf@bd4efa277b (2026-08-15).
Data as JSON: /api/errors/9be046e2738286df.
Report an issue: GitHub.