all repos — dotfiles @ 7ef1c7ab692fa134553bee43f51356d718a8973b

my *nix dotfiles

config/nvim/lua/settings.lua (view raw)

  1local o = vim.opt
  2local autocmd = vim.api.nvim_create_autocmd
  3local g = vim.g
  4local cmd = vim.cmd
  5
  6-- global options
  7o.swapfile = true
  8o.dir = '/tmp'
  9o.smartcase = true
 10o.laststatus = 2
 11o.hlsearch = true
 12o.incsearch = true
 13o.ignorecase = true
 14o.scrolloff = 12
 15o.timeoutlen = 3000
 16o.ttimeoutlen = 100
 17o.undodir = '~/.cache/nvim/undodir'
 18o.foldenable = false
 19o.conceallevel = 2
 20o.mouse = 'a'
 21o.wildmenu = true
 22o.tabstop = 4
 23o.shiftwidth = 4
 24o.softtabstop = 4
 25o.showmode = true
 26o.cursorline = false
 27o.listchars='tab:│ ,nbsp:␣,trail:·,extends:>,precedes:<'
 28o.hidden = true
 29o.completeopt = { 'menuone', 'noselect', 'noinsert' }
 30o.formatoptions:append('c')
 31o.signcolumn = 'yes:2'
 32o.wildignore = [[
 33.git,.hg,.svn
 34*.aux,*.out,*.toc
 35*.o,*.obj,*.exe,*.dll,*.manifest,*.rbc,*.class
 36*.ai,*.bmp,*.gif,*.ico,*.jpg,*.jpeg,*.png,*.psd,*.webp
 37*.avi,*.divx,*.mp4,*.webm,*.mov,*.m2ts,*.mkv,*.vob,*.mpg,*.mpeg
 38*.mp3,*.oga,*.ogg,*.wav,*.flac
 39*.eot,*.otf,*.ttf,*.woff
 40*.doc,*.pdf,*.cbr,*.cbz
 41*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz,*.kgb
 42*.swp,.lock,.DS_Store,._*
 43]]
 44
 45cmd('syntax on')
 46cmd('colorscheme plain')
 47autocmd('TextYankPost', {
 48  pattern = '*',
 49  callback = function()
 50    vim.highlight.on_yank{timeout=200}
 51  end,
 52})
 53
 54o.background = 'light'
 55
 56-- gitgutter options
 57g.gitgutter_override_sign_column_highlight = 0
 58g.gitgutter_sign_added                     = '+'
 59g.gitgutter_sign_modified                  = '±'
 60g.gitgutter_sign_removed                   = '-'
 61g.gitgutter_sign_removed_first_line        = '^'
 62g.gitgutter_sign_modified_removed          = '#'
 63
 64-- window-local options
 65o.number = false
 66o.list = true
 67o.wrap = false
 68
 69-- buffer-local options
 70o.expandtab = true
 71
 72-- set statusline
 73stl = require('statusline.line')
 74o.statusline = '%!luaeval("stl.statusline()")'
 75
 76-- u.create_augroup({
 77--     { 'BufRead,BufNewFile', '/tmp/nail-*', 'setlocal', 'ft=mail' },
 78--     { 'BufRead,BufNewFile', '*s-nail-*', 'setlocal', 'ft=mail' },
 79-- }, 'ftmail')
 80
 81-- restore cursor
 82autocmd('BufReadPost', {
 83  pattern = '*',
 84  callback = function()
 85    vim.fn.setpos(".", vim.fn.getpos("'\""))
 86  end,
 87})
 88
 89-- unknown files are 'text'
 90autocmd('BufNewFile,BufRead', {
 91  pattern = '*',
 92  callback = function()
 93    if vim.bo.filetype == "" then
 94      vim.bo.filetype = 'text'
 95    end
 96  end,
 97})
 98
 99-- keymap files are dts
100autocmd('BufEnter,BufNewFile,BufRead', {
101  pattern = '*.keymap',
102  callback = function()
103    vim.bo.filetype = 'dts'
104  end
105})
106
107-- vim-textobj-quote only in ~/docs/writing
108autocmd('BufEnter,BufNewFile,BufRead', {
109  pattern = '*.md',
110  callback = function()
111    local cwd = vim.fn.expand('%:p')
112    if cwd:find('/home/icy/docs/writing', 1, true) == 1 then
113      vim.fn['textobj#quote#init']()
114      vim.fn['pencil#init']({wrap = 'soft'})
115      vim.keymap.set('i', '--', '', {silent = true})
116      vim.opt.breakindent = false
117      vim.opt.shiftwidth = 4
118      vim.opt.tabstop = 4
119    end
120  end
121})
122
123-- mdx files are markdown
124autocmd('BufEnter,BufNewFile,BufRead', {
125  pattern = '*.mdx',
126  callback = function()
127    vim.bo.filetype = 'markdown'
128  end
129})
130
131-- filetype.nvim
132g.do_filetype_lua = 1
133g.did_load_filetypes = 0
134
135-- disable built-in plugins
136local disabled_built_ins = {
137  'gzip',
138  'shada_plugin',
139  'tarPlugin',
140  'tar',
141  'zipPlugin',
142  'zip',
143}
144
145for i, _ in ipairs(disabled_built_ins) do
146  g['loaded_' .. disabled_built_ins[i]] = 1
147end
148
149-- tmp
150vim.g.gui_font_face = 'Noto Serif'