From 50cc8ae3abb21ba9bd87ca6fe271cd1d22f3b655 Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Sun, 17 Mar 2024 22:40:34 +0000 Subject: [PATCH] Add autocmds to improve :terminal usability --- lua/autocmds.lua | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/lua/autocmds.lua b/lua/autocmds.lua index 2ca5239..359ca66 100644 --- a/lua/autocmds.lua +++ b/lua/autocmds.lua @@ -22,3 +22,46 @@ vim.api.nvim_create_autocmd('BufRead', { }) end }) + +-- Start terminals in insert mode +vim.api.nvim_create_autocmd('TermOpen', { + group = group, pattern = 'term://*', + callback = function() + vim.cmd [[ startinsert ]] + end +}) + +-- Don't show the line number column in terminal-insert mode +vim.api.nvim_create_autocmd('TermEnter', { + group = group, pattern = 'term://*', + callback = function() + vim.opt.number = false + vim.opt.relativenumber = false + vim.opt.signcolumn = 'no' + end +}) + +-- But do show the line number column in terminal-normal mode +vim.api.nvim_create_autocmd('TermLeave', { + group = group, pattern = 'term://*', + callback = function() + vim.opt.number = true + vim.opt.relativenumber = true + vim.opt.signcolumn = 'yes' + end +}) + +-- Automatically press enter when the terminal process exit successfully +vim.api.nvim_create_autocmd('TermClose', { + group = group, + pattern = 'term://*', + callback = function() + if vim.v.event.status == 0 then + -- Exit success, send enter to close the buffer + vim.api.nvim_input('') + else + -- Exit failure, enter normal mode for inspection + vim.api.nvim_input('') + end + end +})