-- apply default terminal settings vim.api.nvim_create_autocmd('TermOpen', { callback = function() vim.bo.scrollback = 10000 vim.opt_local.number = false vim.opt_local.relativenumber = false end }) -- leave insert when terminal process exits -- this prevents the window from closing vim.api.nvim_create_autocmd('TermClose', { command = 'stopinsert', }) -- automatically enter/leave terminal mode vim.api.nvim_create_autocmd('TermOpen', { command = 'startinsert' }) vim.api.nvim_create_autocmd({'WinEnter','BufWinEnter'}, { pattern = 'term://*', command = 'startinsert', }) vim.api.nvim_create_autocmd('BufLeave', { pattern = 'term://*', command = 'stopinsert', }) -- strip trailing whitespace vim.api.nvim_create_autocmd('BufWritePre', { command = '%s/\\s\\+$//e' }) -- filetype specific options vim.api.nvim_create_autocmd('FileType', { pattern = 'markdown', callback = function() vim.bo.textwidth = 80 end, }) vim.api.nvim_create_autocmd('FileType', { pattern = 'typescript', callback = function() -- disable default indentation as it's pretty broken for jsdoc vim.opt_local.indentexpr = nil vim.opt_local.formatexpr = nil end, })