mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Merge pull request #17067 from neovim/backport-17046-to-release-0.6
[Backport release-0.6] fix(keywordprg): retain terminal buffer after K
This commit is contained in:
		| @@ -5173,11 +5173,7 @@ static void nv_ident(cmdarg_T *cap) | ||||
|       // Start insert mode in terminal buffer | ||||
|       restart_edit = 'i'; | ||||
|  | ||||
|       add_map((char_u *)"<buffer> <esc> <Cmd>call jobstop(&channel)<CR>", TERM_FOCUS, true); | ||||
|       do_cmdline_cmd("autocmd TermClose <buffer> " | ||||
|                      " if !v:event.status |" | ||||
|                      "   exec 'bdelete! ' .. expand('<abuf>') |" | ||||
|                      " endif"); | ||||
|       add_map((char_u *)"<buffer> <esc> <Cmd>bdelete!<CR>", TERM_FOCUS, true); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -33,6 +33,29 @@ describe('K', function() | ||||
|     feed('i'..test_file..'<ESC>K') | ||||
|     retry(nil, nil, function() eq(1, eval('filereadable("'..test_file..'")')) end) | ||||
|     eq({'fnord'}, eval("readfile('"..test_file.."')")) | ||||
|     -- Confirm that Neovim is still in terminal mode after K is pressed (#16692). | ||||
|     helpers.sleep(500) | ||||
|     eq('t', eval('mode()')) | ||||
|     feed('<space>')  -- Any key, not just <space>, can be used here to escape. | ||||
|     eq('n', eval('mode()')) | ||||
|   end) | ||||
|  | ||||
|   it("<esc> kills the buffer for a running 'keywordprg' command", function() | ||||
|     helpers.source('set keywordprg=less') | ||||
|     eval('writefile(["hello", "world"], "' .. test_file .. '")') | ||||
|     feed('i' .. test_file .. '<esc>K') | ||||
|     eq('t', eval('mode()')) | ||||
|     -- Confirm that an arbitrary keypress doesn't escape (i.e., the process is | ||||
|     -- still running). If the process were no longer running, an arbitrary | ||||
|     -- keypress would escape. | ||||
|     helpers.sleep(500) | ||||
|     feed('<space>') | ||||
|     eq('t', eval('mode()')) | ||||
|     -- Confirm that <esc> kills the buffer for the running command. | ||||
|     local bufnr = eval('bufnr()') | ||||
|     feed('<esc>') | ||||
|     eq('n', eval('mode()')) | ||||
|     helpers.neq(bufnr, eval('bufnr()')) | ||||
|   end) | ||||
|  | ||||
| end) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 James McCoy
					James McCoy