dots-of-war/eggs/nvim/lua/config/options.lua

84 lines
5 KiB
Lua

-- Options are automatically loaded before lazy.nvim startup
vim.g.mapleader = " " -- Set space as the leader key
vim.g.maplocalleader = "," -- Set comma as the local leader key
vim.g.netrw_banner = 0 -- Disable netrw banner
vim.g.markdown_recommended_style = 0 -- Fix vim ignores shoftabstop in markdown
local opt = vim.opt
opt.autowrite = true -- Auto-save before certain actions
opt.exrc = true -- Allow local .vimrc files in directories
opt.completeopt = "" -- Disable built-in completion behavior
opt.conceallevel = 3 -- Hide markup characters in files like markdown
opt.confirm = true -- Confirm to save changes before closing
opt.cursorline = true -- Highlight the current line
opt.expandtab = true -- Convert tabs to spaces
-- As of nvim 0.9, gqq is broken. Use gww instead, or override:
-- vim.opt.formatexpr = "v:lua.require'lazyvim.util'.format.formatexpr()"
-- (set by lazyvim)
--opt.formatexpr = ""
opt.formatoptions = "jcroqlnt" -- Set format options for comments and text wrapping
opt.grepformat = "%f:%l:%c:%m" -- Format for showing grep results
opt.grepprg = "rg --vimgrep" -- Use ripgrep for searching
opt.ignorecase = true -- Ignore case in search patterns
opt.inccommand = "nosplit" -- Live preview of substitution changes
opt.laststatus = 0 -- Hide the status line initially
opt.mouse = "a" -- Enable mouse support
opt.number = false -- Show line numbers
opt.pumblend = 10 -- Set popup menu transparency
opt.pumheight = 10 -- Limit popup menu height
opt.relativenumber = false -- Show relative line numbers
opt.scrolloff = 4 -- Minimal lines to keep above and below cursor
opt.sessionoptions = { -- Session persistence settings
"buffers",
"curdir",
"tabpages",
"winsize"
}
opt.shiftround = true -- Round indent to multiple of `shiftwidth`
opt.shiftwidth = 2 -- Number of spaces to use for indentation
opt.shortmess:append({
I = true, -- Suppress intro message
W = true, -- Suppress "written" message when saving a file
c = true -- Suppress completion messages
})
opt.showmode = false -- Don't show mode in command line (like -- INSERT --)
opt.sidescrolloff = 8 -- Columns to keep left/right of the cursor during horizontal scroll
opt.smartcase = true -- Override `ignorecase` if search contains uppercase letters
opt.smartindent = true -- Smart auto-indentation
opt.spelllang = { "en" } -- Set language for spell check to English
opt.splitbelow = true -- Force all horizontal splits to go below current window
opt.splitright = true -- Force all vertical splits to go to the right
opt.tabstop = 2 -- Number of spaces tabs count for
opt.termguicolors = true -- Enable 24-bit RGB colors in the terminal
opt.timeoutlen = 300 -- Time to wait for a mapped sequence to complete
opt.undofile = true -- Enable persistent undo
opt.undolevels = 10000 -- Maximum number of undo levels
opt.updatetime = 200 -- Faster completion (default is 4000ms)
opt.wildmode = "longest:full,full" -- Command-line completion mode
opt.winminwidth = 5 -- Minimum window width
opt.wrap = false -- Don't wrap lines by default
opt.compatible = false -- Disable 'compatible' mode to use modern features
opt.hidden = true -- Allow switching buffers without saving
opt.encoding = "utf-8" -- Set file encoding to UTF-8
opt.autoindent = true -- Copy indent from current line when starting a new line
opt.incsearch = true -- Show search matches as you type
opt.ruler = false -- Don't show ruler (line and column info)
opt.switchbuf = "usetab" -- Reuse existing tabs for switching buffers
opt.smarttab = true -- Make tab behavior context-sensitive
opt.copyindent = true -- Copy indent from previous line
opt.previewheight = 38 -- Set height for preview windows
opt.softtabstop = -1 -- Use `shiftwidth` for tab size in editing
opt.backspace = "indent,eol,start" -- Allow backspacing over everything in insert mode
opt.swapfile = false -- Disable swap file creation
opt.foldcolumn = "0" -- No fold column on the left
opt.signcolumn = "yes" -- Always show the sign column
opt.laststatus = 3 -- Global status line
opt.shell = "zsh" -- Set default shell to zsh
opt.cmdheight = 1 -- Set height of command line to 1
opt.showcmd = false -- Hide command in progress in command line
opt.cmdheight = 0 -- Hide command line when not in use
opt.splitkeep = "screen" -- Keep view stable when splitting
opt.statuscolumn = "" -- Customize status column
opt.clipboard = "" -- Do not use system clipboard