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.

Option Value Why
termguicolors true True-color rendering for the colorscheme + splash.
number true Line numbers.
relativenumber from editor.relative_number (default true) Relative line numbers; toggle with the config.
cursorline true Highlight the current line.
signcolumn "yes" Always show signcolumn so it doesn’t shift.
pumheight 12 Cap completion popup height.
wrap false Hard newlines only.
linebreak true When wrap is on (you turned it on), break on word boundaries.
breakindent true Wrapped lines keep their indent.
Option Value Why
splitbelow true New horizontal splits go below.
splitright true New vertical splits go right.
Option Value Why
ignorecase true Case-insensitive search…
smartcase true …unless the query has uppercase.
inccommand "split" :s previews matches live in a split.
grepprg rg --vimgrep --smart-case --hidden :grep uses ripgrep.
Option Value Why
undofile true Persist undo across sessions.
confirm from editor.confirm (default true) Prompt before commands abandon unsaved changes.
updatetime 250 Faster CursorHold / swap writes — drives gitsigns blame, etc.
timeoutlen 400 Tighter mapping timeout for which-key.
Option Value Why
scrolloff from editor.scrolloff (default 8) Keep context above/below cursor.
sidescrolloff from editor.sidescrolloff (default 8) Same horizontally.
smoothscroll true (if available) Smooth scroll on Neovim 0.10+.
jumpoptions "view" (if available) Jumps remember view position.
Option Value Why
tabstop from editor.tabstop (default 2) Spaces a tab character displays as.
shiftwidth from editor.shiftwidth (default 2) Spaces for << / >>.
expandtab from editor.expandtab (default true) Use spaces, not tabs.
autoindent true Carry the current line’s indent when opening a new line.
smartindent true Add simple syntax-aware indent after opening braces when no language indent is active.
Option Value Why
completeopt "menu,menuone,noselect" Show menu always, don’t auto-select.
Option Value Why
clipboard "unnamedplus" if editor.clipboard (default true) Yank and paste use the system clipboard.

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.