diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2023-08-13 05:23:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-13 05:23:15 -0700 |
commit | 0fe921663f1be9e32afa66874fda1ef15142a47e (patch) | |
tree | 15c47c28238d0a3b84eb04e0401ccaf30f9daa43 /runtime/lua/vim | |
parent | 8179d68dc1a90f47bfb307d73e71adc98883ae00 (diff) | |
parent | 3fb372eba48796b5d0a7758f91e168be8e70e183 (diff) | |
download | rneovim-0fe921663f1be9e32afa66874fda1ef15142a47e.tar.gz rneovim-0fe921663f1be9e32afa66874fda1ef15142a47e.tar.bz2 rneovim-0fe921663f1be9e32afa66874fda1ef15142a47e.zip |
Merge #15440 close 'shell' :terminal automatically
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r-- | runtime/lua/vim/_editor.lua | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua index 58fbc923e1..8c10cc7da3 100644 --- a/runtime/lua/vim/_editor.lua +++ b/runtime/lua/vim/_editor.lua @@ -1107,13 +1107,26 @@ end function vim._init_default_autocmds() local nvim_terminal_augroup = vim.api.nvim_create_augroup('nvim_terminal', {}) - vim.api.nvim_create_autocmd({ 'bufreadcmd' }, { + vim.api.nvim_create_autocmd({ 'BufReadCmd' }, { pattern = 'term://*', group = nvim_terminal_augroup, nested = true, command = "if !exists('b:term_title')|call termopen(matchstr(expand(\"<amatch>\"), '\\c\\mterm://\\%(.\\{-}//\\%(\\d\\+:\\)\\?\\)\\?\\zs.*'), {'cwd': expand(get(matchlist(expand(\"<amatch>\"), '\\c\\mterm://\\(.\\{-}\\)//'), 1, ''))})", }) - vim.api.nvim_create_autocmd({ 'cmdwinenter' }, { + vim.api.nvim_create_autocmd({ 'TermClose' }, { + group = nvim_terminal_augroup, + desc = 'Automatically close terminal buffers when started with no arguments and exiting without an error', + callback = function(args) + if vim.v.event.status == 0 then + local info = vim.api.nvim_get_chan_info(vim.bo[args.buf].channel) + local argv = info.argv or {} + if #argv == 1 and argv[1] == vim.o.shell then + vim.cmd({ cmd = 'bdelete', args = { args.buf }, bang = true }) + end + end + end, + }) + vim.api.nvim_create_autocmd({ 'CmdwinEnter' }, { pattern = '[:>]', group = vim.api.nvim_create_augroup('nvim_cmdwin', {}), command = 'syntax sync minlines=1 maxlines=1', |