60 lines
4.3 KiB
Lua
60 lines
4.3 KiB
Lua
local o = vim.opt
|
|
|
|
-- set options
|
|
o.clipboard = "unnamedplus" -- keep the clipboard in sync with the one provided by the OS
|
|
o.termguicolors = true -- allows for colour in the terminal
|
|
o.number = true -- show line numbers
|
|
o.cursorline = true -- highlight the current line
|
|
o.cursorcolumn = false -- highlight the current column
|
|
o.dir = vim.fn.stdpath('cache') .. '/swp' -- swap directory location for recovery
|
|
o.sessionoptions = 'buffers,curdir,folds,help,localoptions,tabpages,terminal'
|
|
o.expandtab = false -- whether tabs are expanded to spaces (overridden by .editorconfig)
|
|
o.diffopt = 'internal,filler,closeoff,linematch:60' -- diff visualisation
|
|
o.foldenable = true -- whether folding is enabled
|
|
o.wrap = false -- whether to wrap text to a new line when it goes off-screen
|
|
o.breakindent = true -- wrapped lines start at the same location as the start of the line
|
|
o.list = true -- shows invisible characters
|
|
o.listchars = { -- whitespace characters
|
|
eol = nil,
|
|
trail = '~',
|
|
extends = nil,
|
|
precedes = '<',
|
|
tab = '•-',
|
|
space = '·',
|
|
nbsp = '␣',
|
|
}
|
|
o.mouse = 'nv' -- which modes the mouse is enabled in 'a:all'
|
|
o.relativenumber = true -- whether line numbers are relative to the cursor
|
|
o.scrolloff = 10 -- minimal number of screen lines to keep above and below the cursor
|
|
o.showtabline = 2 -- whether to show the tab line
|
|
o.signcolumn = 'yes' -- always show the signcolumn, otherwise it shifts text all the time
|
|
o.tabstop = 8 -- visual spaces per tab
|
|
o.softtabstop = 8 -- spaces inserted per tab in insert mode
|
|
o.shiftwidth = 8 -- spaces for auto-indent
|
|
o.smartindent = true -- behave a bit more nuanced with when to indent
|
|
o.ignorecase = true -- whether case should be ignored whilst searching
|
|
o.smartcase = true -- overrides the above option if contains capital letters
|
|
o.inccommand = 'split' -- split|nosplit whether substitutions should appear whilst typing.
|
|
o.splitbelow = true -- force all horizontal splits below the current window
|
|
o.splitright = true -- force all vertical splits to the right of this window
|
|
o.showmode = false -- don't show mode as this is already in the status line
|
|
o.undodir = vim.fn.stdpath('cache') .. '/undo' -- directory for undo files
|
|
o.undofile = true -- for saving the undo history
|
|
o.undolevels = 1024 -- the amount of changes that can be undone
|
|
o.timeoutlen = 300 -- number of MS to wait for a mapped sequence to complete
|
|
o.ttimeoutlen = 0 -- number of MS to wait for a key sequence to complete
|
|
o.updatetime = 250 -- number of MS of nothing typed to write a swap file to disk.
|
|
o.spell = true -- whether spell checking is enabled
|
|
o.spelllang = 'en_gb,nl' -- set the spell languages
|
|
o.spellfile = vim.fn.stdpath('config') .. '/spell/user.utf-8.add'
|
|
|
|
vim.diagnostic.config({
|
|
underline = true, -- use underline for diagnostics
|
|
virtual_text = true, -- shows diagnostics at the end of the line
|
|
virtual_lines = false, -- shows one diagnostic per line
|
|
severity_sort = true, -- sort diagnostics by severity
|
|
update_in_insert = true, -- update diagnostics whilst in insert mode
|
|
float = true, -- options for floating windows
|
|
signs = true,
|
|
})
|