126 lines
2.8 KiB
Lua
126 lines
2.8 KiB
Lua
local cmd = vim.cmd
|
||
local opt = vim.opt
|
||
local g = vim.g
|
||
local s = vim.s
|
||
local indent = 4
|
||
|
||
g.mapleader = " "
|
||
|
||
cmd([[
|
||
filetype plugin indent on
|
||
]])
|
||
|
||
opt.backspace = { "eol", "start", "indent" } -- allow backspacing over everything in insert mode
|
||
-- opt.clipboard = "unnamedplus" -- allow neovim to access the system clipboard
|
||
vim.opt.fileencoding = "utf-8"
|
||
opt.encoding = "utf-8"
|
||
opt.matchpairs = { "(:)", "{:}", "[:]", "<:>" }
|
||
opt.syntax = "enable"
|
||
|
||
-- indention
|
||
opt.autoindent = true
|
||
opt.expandtab = true
|
||
opt.shiftwidth = indent
|
||
opt.smartindent = true
|
||
opt.softtabstop = indent
|
||
opt.tabstop = indent
|
||
opt.shiftround = true
|
||
|
||
-- search
|
||
opt.hlsearch = true
|
||
opt.ignorecase = true
|
||
opt.smartcase = true
|
||
opt.wildignore = opt.wildignore + { "*/node_modules/*", "*/.git/*", "*/vendor/*" }
|
||
opt.wildmenu = true
|
||
|
||
-- ui
|
||
opt.cursorline = true
|
||
opt.laststatus = 2
|
||
opt.lazyredraw = true
|
||
opt.list = true
|
||
opt.listchars = {
|
||
tab = "┊ ",
|
||
trail = "·",
|
||
extends = "»",
|
||
precedes = "«",
|
||
nbsp = "×",
|
||
}
|
||
|
||
-- Hide cmd line
|
||
opt.cmdheight = 0
|
||
|
||
opt.mouse = "a"
|
||
opt.number = true
|
||
opt.relativenumber = true
|
||
opt.scrolloff = 18
|
||
opt.sidescrolloff = 3
|
||
opt.signcolumn = "yes"
|
||
opt.splitbelow = true
|
||
opt.splitright = true
|
||
opt.wrap = false
|
||
|
||
-- backups
|
||
opt.backup = false -- create a backup file
|
||
opt.swapfile = false -- creates a swapfile
|
||
opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
|
||
|
||
-- autocomplete
|
||
opt.completeopt = { "menu", "menuone", "noselect" } -- mostly just for cmp
|
||
opt.shortmess = opt.shortmess + {
|
||
c = true,
|
||
} -- hide all the completion messages, e.g. "-- XXX completion (YYY)", "match 1 of 2", "The only match", "Pattern not found"
|
||
|
||
opt.showmode = false
|
||
|
||
-- perfomance
|
||
-- remember N lines in history
|
||
opt.history = 100 -- keep 100 lines of history
|
||
opt.redrawtime = 1500
|
||
opt.timeoutlen = 250 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||
opt.ttimeoutlen = 10
|
||
opt.updatetime = 100 -- signify default updatetime 4000ms is not good for async update
|
||
|
||
-- theme
|
||
opt.termguicolors = true -- enable 24-bit RGB colors
|
||
|
||
-- persistent undo
|
||
-- Don"t forget to create folder $HOME/.local/share/nvim/undo
|
||
local undodir = vim.fn.stdpath("data") .. "/undo"
|
||
opt.undofile = true -- enable persistent undo
|
||
opt.undodir = undodir
|
||
opt.undolevels = 1000
|
||
opt.undoreload = 10000
|
||
|
||
-- fold
|
||
opt.foldmethod = "marker"
|
||
opt.foldlevel = 99
|
||
|
||
-- Disable builtin plugins
|
||
local disabled_built_ins = {
|
||
"2html_plugin",
|
||
"getscript",
|
||
"getscriptPlugin",
|
||
"gzip",
|
||
"logipat",
|
||
"netrw",
|
||
"netrwPlugin",
|
||
"netrwSettings",
|
||
"netrwFileHandlers",
|
||
"matchit",
|
||
"rrhelper",
|
||
"spellfile_plugin",
|
||
"vimball",
|
||
"vimballPlugin",
|
||
"tutor",
|
||
"rplugin",
|
||
"synmenu",
|
||
"optwin",
|
||
"compiler",
|
||
"bugreport",
|
||
"ftplugin",
|
||
}
|
||
|
||
for _, plugin in pairs(disabled_built_ins) do
|
||
g["loaded_" .. plugin] = 1
|
||
end
|