local o = vim.opt local autocmd = vim.api.nvim_create_autocmd local g = vim.g local cmd = vim.cmd -- global options o.swapfile = true o.dir = '/tmp' o.smartcase = true o.laststatus = 2 o.hlsearch = true o.incsearch = true o.ignorecase = true o.scrolloff = 12 o.timeoutlen = 3000 o.ttimeoutlen = 100 o.undodir = '~/.cache/nvim/undodir' o.foldenable = false o.conceallevel = 2 o.mouse = 'a' o.wildmenu = true o.tabstop = 4 o.shiftwidth = 4 o.softtabstop = 4 o.showmode = true o.cursorline = false o.listchars='tab:│ ,nbsp:␣,trail:·,extends:>,precedes:<' o.hidden = true o.completeopt = { 'menuone', 'noselect', 'noinsert' } o.formatoptions:append('c') o.signcolumn = 'yes:2' o.wildignore = [[ .git,.hg,.svn *.aux,*.out,*.toc *.o,*.obj,*.exe,*.dll,*.manifest,*.rbc,*.class *.ai,*.bmp,*.gif,*.ico,*.jpg,*.jpeg,*.png,*.psd,*.webp *.avi,*.divx,*.mp4,*.webm,*.mov,*.m2ts,*.mkv,*.vob,*.mpg,*.mpeg *.mp3,*.oga,*.ogg,*.wav,*.flac *.eot,*.otf,*.ttf,*.woff *.doc,*.pdf,*.cbr,*.cbz *.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz,*.kgb *.swp,.lock,.DS_Store,._* ]] cmd('syntax on') cmd('colorscheme plain') autocmd('TextYankPost', { pattern = '*', callback = function() vim.highlight.on_yank{timeout=200} end, }) o.background = 'light' o.termguicolors = true -- gitgutter options g.gitgutter_override_sign_column_highlight = 0 g.gitgutter_sign_added = '+' g.gitgutter_sign_modified = '±' g.gitgutter_sign_removed = '-' g.gitgutter_sign_removed_first_line = '^' g.gitgutter_sign_modified_removed = '#' -- window-local options o.number = false o.list = true o.wrap = false -- buffer-local options o.expandtab = true -- set statusline stl = require('statusline.line') o.statusline = '%!luaeval("stl.statusline()")' -- u.create_augroup({ -- { 'BufRead,BufNewFile', '/tmp/nail-*', 'setlocal', 'ft=mail' }, -- { 'BufRead,BufNewFile', '*s-nail-*', 'setlocal', 'ft=mail' }, -- }, 'ftmail') -- restore cursor autocmd('BufReadPost', { pattern = '*', callback = function() vim.fn.setpos(".", vim.fn.getpos("'\"")) end, }) -- unknown files are 'text' autocmd({'BufNewFile', 'BufRead'}, { pattern = '*', callback = function() if vim.bo.filetype == "" then vim.bo.filetype = 'text' end end, }) -- keymap files are dts autocmd({'BufEnter','BufNewFile','BufRead'}, { pattern = '*.keymap', callback = function() vim.bo.filetype = 'dts' end }) -- vim-textobj-quote only in ~/docs/writing autocmd({'BufEnter','BufNewFile','BufRead'}, { pattern = '*.md', callback = function() local cwd = vim.fn.expand('%:p') if cwd:find('/home/icy/docs/writing', 1, true) == 1 then vim.fn['textobj#quote#init']() vim.fn['pencil#init']({wrap = 'soft'}) vim.keymap.set('i', '--', '—', {silent = true}) vim.opt.breakindent = false vim.opt.shiftwidth = 4 vim.opt.tabstop = 4 end end }) -- mdx files are markdown autocmd({'BufEnter','BufNewFile','BufRead'}, { pattern = '*.mdx', callback = function() vim.bo.filetype = 'markdown' end }) -- filetype.nvim g.do_filetype_lua = 1 g.did_load_filetypes = 0 -- disable built-in plugins local disabled_built_ins = { 'gzip', 'shada_plugin', 'tarPlugin', 'tar', 'zipPlugin', 'zip', } for i, _ in ipairs(disabled_built_ins) do g['loaded_' .. disabled_built_ins[i]] = 1 end -- tmp vim.g.gui_font_face = 'Noto Serif'