Skip to content

Editor options

Blak applies a small set of editor options at startup. They live in lua/blak/core/options.lua and run before plugins load.

Anything here can be overridden in your user.lua (via the editor.* table) or by reassigning vim.opt.* after Blak’s setup.

What gets set

Visual

OptionValueWhy
termguicolorstrueTrue-color rendering for the colorscheme + splash.
numbertrueLine numbers.
relativenumberfrom editor.relative_number (default true)Relative line numbers; toggle with the config.
cursorlinetrueHighlight the current line.
signcolumn"yes"Always show signcolumn so it doesn’t shift.
pumheight12Cap completion popup height.
wrapfalseHard newlines only.
linebreaktrueWhen wrap is on (you turned it on), break on word boundaries.
breakindenttrueWrapped lines keep their indent.

Splits

OptionValueWhy
splitbelowtrueNew horizontal splits go below.
splitrighttrueNew vertical splits go right.
OptionValueWhy
ignorecasetrueCase-insensitive search…
smartcasetrue…unless the query has uppercase.
inccommand"split":s previews matches live in a split.
grepprgrg --vimgrep --smart-case --hidden:grep uses ripgrep.

Persistence

OptionValueWhy
undofiletruePersist undo across sessions.
confirmfrom editor.confirm (default true)Prompt before commands abandon unsaved changes.
updatetime250Faster CursorHold / swap writes — drives gitsigns blame, etc.
timeoutlen400Tighter mapping timeout for which-key.

Movement

OptionValueWhy
scrollofffrom editor.scrolloff (default 8)Keep context above/below cursor.
sidescrollofffrom editor.sidescrolloff (default 8)Same horizontally.
smoothscrolltrue (if available)Smooth scroll on Neovim 0.10+.
jumpoptions"view" (if available)Jumps remember view position.

Indent

OptionValueWhy
tabstopfrom editor.tabstop (default 2)Spaces a tab character displays as.
shiftwidthfrom editor.shiftwidth (default 2)Spaces for << / >>.
expandtabfrom editor.expandtab (default true)Use spaces, not tabs.
autoindenttrueCarry the current line’s indent when opening a new line.
smartindenttrueAdd simple syntax-aware indent after opening braces when no language indent is active.

Completion

OptionValueWhy
completeopt"menu,menuone,noselect"Show menu always, don’t auto-select.

Clipboard

OptionValueWhy
clipboard"unnamedplus" if editor.clipboard (default true)Yank and paste use the system clipboard.

Overriding

In user.lua:

return {
editor = {
tabstop = 4,
shiftwidth = 4,
relative_number = false,
confirm = false,
clipboard = false,
scrolloff = 4,
},
}

Or set vim.opt.* directly after Blak loads:

vim.api.nvim_create_autocmd("User", {
pattern = "BlakReady",
callback = function()
vim.opt.cursorline = false
vim.opt.signcolumn = "number"
end,
})

See User events.