-- HELPERS ---------------------------------------------------- local opt = vim.opt -- SYNTAX & FILETYPE ------------------------------------------ vim.cmd "syntax on" vim.cmd "filetype plugin indent on" -- BASIC SETTINGS --------------------------------------------- opt.number = true -- 顯示行號 opt.relativenumber = true -- 顯示相對行號 opt.tabstop = 2 -- Tab 寬度 opt.shiftwidth = 2 -- 縮排寬度 opt.expandtab = true -- 將 Tab 轉為空格 opt.foldenable = false -- 預設不折疊 opt.laststatus = 2 -- 始終顯示狀態列 opt.ruler = true -- 顯示游標位置 opt.cursorline = true -- 高亮當前行 opt.cursorcolumn = true -- 高亮當前列 opt.hlsearch = true -- 高亮搜尋結果 opt.wrap = false -- 不自動換行 opt.backspace = { "indent", "eol", "start" } opt.encoding = "utf-8" opt.completeopt = { "menu", "menuone", "noselect" } opt.swapfile = false -- 不產生 swap 檔案 opt.mouse = "" -- 禁用滑鼠 opt.background = "dark" -- 自動命令 (Auto-commands) ----------------------------------- -- 處理配色方案與背景透明度 vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", callback = function() vim.cmd([[ highlight clear CursorLine highlight Normal ctermbg=none highlight LineNr ctermbg=none highlight Folded ctermbg=none highlight NonText ctermbg=none highlight SpecialKey ctermbg=none highlight VertSplit ctermbg=none highlight SignColumn ctermbg=none ]]) end, }) -- chezmoi 自動套用 vim.api.nvim_create_autocmd("BufWritePost", { pattern = vim.fn.expand("~/.local/share/chezmoi/*"), command = [[ ! chezmoi apply --source-path % ]], }) -- 診斷設定 vim.diagnostic.config({ virtual_text = false, signs = true }) -- 特定語言設定 vim.api.nvim_create_autocmd("FileType", { pattern = "rust", callback = function() vim.opt_local.shiftwidth = 4 vim.opt_local.tabstop = 4 end })