vim: simplify option setting

This commit is contained in:
Fernando Schauenburg 2022-10-12 21:49:02 +02:00
parent c40996d2c7
commit 3711e4c143

View file

@ -1,88 +1,83 @@
vim.cmd [[let &t_8f = "\<ESC>[38:2:%lu:%lu:%lum"]] vim.cmd [[let &t_8f = "\<ESC>[38:2:%lu:%lu:%lum"]]
vim.cmd [[let &t_8b = "\<ESC>[48:2:%lu:%lu:%lum"]] vim.cmd [[let &t_8b = "\<ESC>[48:2:%lu:%lu:%lum"]]
local set_options = function(options) local o = vim.opt
local opt = vim.opt
for k, v in pairs(options) do
opt[k] = v
end
end
set_options {
-- General -- General
belloff = 'all', -- never ring bells o.belloff = 'all' -- never ring bells
hidden = true, -- hide abandoned buffers o.hidden = true -- hide abandoned buffers
clipboard = 'unnamedplus', -- synchronize with system clipboard o.clipboard = 'unnamedplus' -- synchronize with system clipboard
lazyredraw = true, -- don't redraw screen during macros o.lazyredraw = true -- don't redraw screen during macros
modelines = 0, -- never use modelines o.modelines = 0 -- never use modelines
fileformats = 'unix,mac,dos', -- prioritize unix <EOL> format o.fileformats = 'unix,mac,dos' -- prioritize unix <EOL> format
pastetoggle = '<F20>', -- toggle paste with P on Moonlander o.pastetoggle = '<F20>' -- toggle paste with P on Moonlander
swapfile = false, -- don't use swap files o.swapfile = false -- don't use swap files
writebackup = true, -- Make a backup before writing a file... o.writebackup = true -- Make a backup before writing a file...
backup = false, -- ...but don't keep it around. o.backup = false -- ...but don't keep it around.
shortmess = vim.opt.shortmess + 'I', -- no intro message when starting Vim o.shortmess:append 'I' -- no intro message when starting Vim
shada = { o.shada = {
"'1000", -- remember marks for this many files "'1000", -- remember marks for this many files
"/1000", -- remember this many search patterns "/1000", -- remember this many search patterns
":1000", -- remember this many command line items ":1000", -- remember this many command line items
"<100", -- maximum number of lines to remember per register "<100", -- maximum number of lines to remember per register
"h", -- disable 'hlsearch' while reading shada file "h", -- disable 'hlsearch' while reading shada file
"s100", -- limit size of remembered items to this many KiB "s100", -- limit size of remembered items to this many KiB
}, }
-- Searching -- Searching
ignorecase = true, -- Ignore case when searching... o.ignorecase = true -- Ignore case when searching...
smartcase = true, -- ...unless pattern contains uppercase characters. o.smartcase = true -- ...unless pattern contains uppercase characters.
-- Editing -- Editing
expandtab = true, -- use spaces whe <Tab> is inserted o.expandtab = true -- use spaces when <Tab> is inserted
tabstop = 4, -- tabs are 4 spaces o.tabstop = 4 -- tabs are 4 spaces
shiftwidth = 0, -- (auto)indent using 'tabstop' spaces o.shiftwidth = 0 -- (auto)indent using 'tabstop' spaces
smartindent = true, -- use smart autoindenting o.smartindent = true -- use smart autoindenting
inccommand = 'split', -- preview command partial results o.inccommand = 'split' -- preview command partial results
joinspaces = false, -- use one space after a period whe joining lines o.joinspaces = false -- use one space after a period whe joining lines
showmatch = true, -- briefly jump to matching bracket if insert one o.showmatch = true -- briefly jump to matching bracket if insert one
virtualedit = 'block', -- position the cursor anywhere in Visual Block mode o.virtualedit = 'block' -- position the cursor anywhere in Visual Block mode
formatlistpat = [[^\s*\(\d\+[\]:.)}\t ]\|[-+*]\|[\[(][ x][\])]\)\s*]], o.formatlistpat = [[^\s*\(\d\+[\]:.)}\t ]\|[-+*]\|[\[(][ x][\])]\)\s*]]
formatoptions = vim.opt.formatoptions
- 't' -- Don't auto-wrap on 'textwidth'... local fmt = o.formatoptions
+ 'c' -- ...but do it within comment blocks... fmt:remove 't' -- Don't auto-wrap on 'textwidth'...
+ 'l' -- ...but not if line was already long before entering Insert mode. fmt:append 'c' -- ...but do it within comment blocks...
+ 'r' -- Insert comment leader when pressing Enter... fmt:append 'l' -- ...but not if line was already long before entering Insert mode.
- 'o' -- ...but not when opening a new line with o & O. fmt:append 'r' -- Insert comment leader when pressing Enter...
+ 'q' -- allow formatting of comments with gq fmt:remove 'o' -- ...but not when opening a new line with o & O.
- 'a' -- don't auto-format every time text is inserted fmt:append 'q' -- allow formatting of comments with gq
+ 'n' -- indent lists automatically acc. 'formatlistpat' fmt:remove 'a' -- don't auto-format every time text is inserted
+ 'j' -- remove comment leader when joining lines fmt:append 'n' -- indent lists automatically acc. 'formatlistpat'
+ '1', -- don't break lines after a one letter word but rather before it fmt:append 'j' -- remove comment leader when joining lines
fmt:append '1' -- don't break lines after a one letter word but rather before it
-- Appearance -- Appearance
termguicolors = true, -- use "gui" :higlight instead of "cterm" o.termguicolors = true -- use "gui" :higlight instead of "cterm"
showmode = false, -- don't show mode (shown in statusline instead) o.showmode = false -- don't show mode (shown in statusline instead)
relativenumber = true, -- Start off with realtive line numbers... o.relativenumber = true -- Start off with relative line numbers...
number = true, -- ...but real number for current line. o.number = true -- ...but real number for current line.
wrap = false, -- don't wrap long lines initially o.wrap = false -- don't wrap long lines initially
textwidth = 79, -- maximum width for text being inserted o.textwidth = 80 -- maximum width for text being inserted
colorcolumn = '+1', -- highlight column after 'textwidth' o.colorcolumn = '+1' -- highlight column after 'textwidth'
cursorline = true, -- highlight the line of the cursor... o.cursorline = true -- highlight the line of the cursor...
cursorlineopt = 'number',-- ...but only the line number o.cursorlineopt = 'number'-- ...but only the line number
showbreak = '', -- prefix for wrapped lines o.showbreak = '' -- prefix for wrapped lines
scrolloff = 3, -- min. # of lines above and below cursor o.scrolloff = 3 -- min. # of lines above and below cursor
sidescrolloff = 3, -- min. # of columns to left and right of cursor o.sidescrolloff = 3 -- min. # of columns to left and right of cursor
list = true, -- show invisible characters o.list = true -- show invisible characters
listchars = { o.listchars = {
eol = '', eol = '',
tab = '» ', tab = '» ',
extends = '', extends = '',
precedes = '', precedes = '',
trail = '·', trail = '·',
conceal = '', conceal = '',
}, }
-- Wildcard Expansion -- Wildcard Expansion
wildignore = { o.wildignore = {
'.git', '.git',
'.svn', '.svn',
'__pycache__', '__pycache__',
@ -102,26 +97,25 @@ set_options {
'*.so', '*.so',
'*.zip', '*.zip',
'*~', '*~',
}, }
wildignorecase = true, -- ignore case when completing file names o.wildignorecase = true -- ignore case when completing file names
wildmode = 'longest:full', -- longest common prefix first, then wildmenu o.wildmode = 'longest:full' -- longest common prefix first, then wildmenu
-- Window Splitting -- Window Splitting
splitbelow = true, -- :split below current window o.splitbelow = true -- :split below current window
splitright = true, -- :vsplit to the right of current window o.splitright = true -- :vsplit to the right of current window
equalalways = false, -- don't resize all windows when splitting o.equalalways = false -- don't resize all windows when splitting
-- Folding -- Folding
foldenable = true, -- enable folding o.foldenable = true -- enable folding
foldlevelstart = 100, -- start with all folds open o.foldlevelstart = 100 -- start with all folds open
foldmethod = 'syntax', -- fold based on syntax by default o.foldmethod = 'syntax' -- fold based on syntax by default
foldnestmax = 10, -- limit nested folds to 10 levels o.foldnestmax = 10 -- limit nested folds to 10 levels
-- Options for diff mode -- Options for diff mode
diffopt = { -- better side-by-side diffs o.diffopt = { -- better side-by-side diffs
'filler', -- show filler lines (so text ins vertically synced) 'filler', -- show filler lines (so text is vertically synced)
'vertical', -- use vertical splits (files side-by-side) 'vertical', -- use vertical splits (files side-by-side)
'closeoff', -- disable diff mode when one window is closed 'closeoff', -- disable diff mode when one window is closed
},
} }