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 |       // Start insert mode in terminal buffer | ||||||
|       restart_edit = 'i'; |       restart_edit = 'i'; | ||||||
|  |  | ||||||
|       add_map((char_u *)"<buffer> <esc> <Cmd>call jobstop(&channel)<CR>", TERM_FOCUS, true); |       add_map((char_u *)"<buffer> <esc> <Cmd>bdelete!<CR>", TERM_FOCUS, true); | ||||||
|       do_cmdline_cmd("autocmd TermClose <buffer> " |  | ||||||
|                      " if !v:event.status |" |  | ||||||
|                      "   exec 'bdelete! ' .. expand('<abuf>') |" |  | ||||||
|                      " endif"); |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -33,6 +33,29 @@ describe('K', function() | |||||||
|     feed('i'..test_file..'<ESC>K') |     feed('i'..test_file..'<ESC>K') | ||||||
|     retry(nil, nil, function() eq(1, eval('filereadable("'..test_file..'")')) end) |     retry(nil, nil, function() eq(1, eval('filereadable("'..test_file..'")')) end) | ||||||
|     eq({'fnord'}, eval("readfile('"..test_file.."')")) |     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) | ||||||
|  |  | ||||||
| end) | end) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 James McCoy
					James McCoy