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
Section titled “What gets set”Visual
Section titled “Visual”| 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. |
Splits
Section titled “Splits”| Option | Value | Why |
|---|---|---|
splitbelow |
true |
New horizontal splits go below. |
splitright |
true |
New vertical splits go right. |
Search
Section titled “Search”| 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. |
Persistence
Section titled “Persistence”| 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. |
Movement
Section titled “Movement”| 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. |
Indent
Section titled “Indent”| 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. |
Completion
Section titled “Completion”| Option | Value | Why |
|---|---|---|
completeopt |
"menu,menuone,noselect" |
Show menu always, don’t auto-select. |
Clipboard
Section titled “Clipboard”| Option | Value | Why |
|---|---|---|
clipboard |
"unnamedplus" if editor.clipboard (default true) |
Yank and paste use the system clipboard. |
Overriding
Section titled “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.