mirror of
https://github.com/neovim/neovim.git
synced 2025-09-23 11:38:31 +00:00
feat(keywordprg): use :terminal for external commands #15398
Open external 'keywordprg' commands in a :terminal in a new tab. <Esc> is mapped to stop the job and close the buffer. Closes #2995 Closes #2761
This commit is contained in:
@@ -4931,7 +4931,8 @@ static void nv_ident(cmdarg_T *cap)
|
||||
snprintf(buf, buf_size, ".,.+%" PRId64, (int64_t)(cap->count0 - 1));
|
||||
}
|
||||
|
||||
STRCAT(buf, "! ");
|
||||
do_cmdline_cmd("tabnew");
|
||||
STRCAT(buf, "terminal ");
|
||||
if (cap->count0 == 0 && isman_s) {
|
||||
STRCAT(buf, "man");
|
||||
} else {
|
||||
@@ -5028,6 +5029,17 @@ static void nv_ident(cmdarg_T *cap)
|
||||
g_tag_at_cursor = true;
|
||||
do_cmdline_cmd(buf);
|
||||
g_tag_at_cursor = false;
|
||||
|
||||
if (cmdchar == 'K' && !kp_ex && !kp_help) {
|
||||
// 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");
|
||||
}
|
||||
}
|
||||
|
||||
xfree(buf);
|
||||
|
Reference in New Issue
Block a user