nvim/lua/config/settings.lua

78 lines
2.1 KiB
Lua
Raw Normal View History

2022-12-31 17:43:31 +01:00
local g = vim.g
local opt = vim.opt
g.mapleader = ' '
g.tex_flavor = 'latex'
g.c_syntax_for_h = true
2023-04-08 23:47:10 +02:00
2022-12-31 17:43:31 +01:00
opt.termguicolors = true
opt.mouse = 'nv'
2022-12-31 17:43:31 +01:00
opt.fileencoding = 'utf-8'
opt.splitbelow = true
opt.splitright = true
opt.showmode = false
opt.undofile = true
opt.updatetime = 300
opt.backup = false
opt.clipboard:prepend { 'unnamedplus' }
2023-06-19 11:33:42 +02:00
opt.ignorecase = true
2022-12-31 17:43:31 +01:00
opt.smartcase = true
opt.sessionoptions = 'folds'
opt.number = true
opt.shortmess:append('I', 'W', 's')
2022-12-31 17:43:31 +01:00
opt.iskeyword:prepend { '-' }
opt.timeoutlen = 300
2023-04-08 23:47:10 +02:00
opt.fillchars = 'eob: '
2023-06-21 16:23:38 +02:00
opt.cmdheight = 0
2023-04-20 14:50:06 +02:00
opt.grepprg = 'rg --vimgrep --no-heading --smart-case --hidden'
opt.grepformat = '%f:%l:%c:%m'
2022-12-31 17:43:31 +01:00
2023-04-08 23:47:10 +02:00
vim.api.nvim_create_user_command('Cd', 'lcd %:p:h', { nargs = 0 })
2023-06-21 17:00:59 +02:00
vim.api.nvim_create_user_command('Grep', 'silent grep! <args> | TroubleToggle quickfix', { nargs = '+' })
2023-01-22 17:46:45 +01:00
local ignore_buftype = { 'quickfix', 'nofile', 'help' }
local ignore_filetype = { 'gitcommit', 'gitrebase', 'svn', 'hgcommit' }
local function run()
if vim.tbl_contains(ignore_buftype, vim.bo.buftype) then
return
end
if vim.tbl_contains(ignore_filetype, vim.bo.filetype) then
-- reset cursor to first line
vim.cmd [[normal! gg]]
return
end
-- If a line has already been specified on the command line, we are done
-- nvim file +num
if vim.fn.line '.' > 1 then
2023-04-08 23:47:10 +02:00
vim.cmd [[normal! zz]]
2023-01-22 17:46:45 +01:00
return
end
local last_line = vim.fn.line [['"]]
local buff_last_line = vim.fn.line '$'
-- If the last line is set and the less than the last line in the buffer
if last_line > 0 and last_line <= buff_last_line then
local win_last_line = vim.fn.line 'w$'
local win_first_line = vim.fn.line 'w0'
-- Check if the last line of the buffer is the same as the win
if win_last_line == buff_last_line then
-- Set line to last line edited
vim.cmd [[normal! g`"]]
2023-06-21 17:00:59 +02:00
-- Try to center
2023-01-22 17:46:45 +01:00
elseif buff_last_line - last_line > ((win_last_line - win_first_line) / 2) - 1 then
vim.cmd [[normal! g`"zz]]
else
vim.cmd [[normal! G'"<c-e>]]
end
end
end
vim.api.nvim_create_autocmd({ 'BufWinEnter', 'FileType' }, {
group = vim.api.nvim_create_augroup('nvim-lastplace', {}),
callback = run,
})