[vim/vim] feat: Run :make command using builtin terminal (PR #18188)

38 views
Skip to first unread message

Foxe Chen

unread,
Sep 1, 2025, 9:37:10 PM9/1/25
to vim/vim, Subscribed

Pass ++term to :make or :lmake to run it in a terminal in a new tab. The quickfix/location list will be populated when the command is finished, autocmds triggered, and first error jumped to if specified. It is partially implemented in C and the rest in Vimscript.


You can view, comment on, or merge this pull request online at:

  https://github.com/vim/vim/pull/18188

Commit Summary

  • c081a1e run make command in terminal

File Changes

(4 files)

Patch Links:


Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188@github.com>

zeertzjq

unread,
Sep 1, 2025, 9:41:27 PM9/1/25
to vim/vim, Subscribed

@zeertzjq commented on this pull request.


In runtime/doc/quickfix.txt:

> @@ -956,6 +963,11 @@ option.  This works almost like typing
 
 	":!{makeprg} [arguments] {shellpipe} {errorfile}".
 
+Note that this is different when using the ++term argument. Instead it will
+work similar to typing:
+
+	":tabnew | term_start({makeprg}, {"curwin": 1})"
⬇️ Suggested change
-	":tabnew | term_start({makeprg}, {"curwin": 1})"
+	":tabnew | call term_start({makeprg}, {"curwin": 1})"


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/review/3174675080@github.com>

Foxe Chen

unread,
Sep 1, 2025, 9:41:49 PM9/1/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • 9bb2ac1 run make command in terminal


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/c081a1e2e0b204c856c9be30391af8155ba06e96/after/9bb2ac1171ac382a441cc072531298c57a7bb4d8@github.com>

Foxe Chen

unread,
Sep 1, 2025, 9:43:00 PM9/1/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • 1a367f1 run make command in terminal

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/9bb2ac1171ac382a441cc072531298c57a7bb4d8/after/1a367f152435253a7ef41c18ca8c1488bc9fd139@github.com>

zeertzjq

unread,
Sep 1, 2025, 9:43:53 PM9/1/25
to vim/vim, Subscribed

@zeertzjq commented on this pull request.


In runtime/doc/quickfix.txt:

> @@ -985,6 +997,13 @@ on the screen and saved in a file the same time.  Depending on the shell used
 If 'shellpipe' is empty, the {errorfile} part will be omitted.  This is useful
 for compilers that write to an errorfile themselves (e.g., Manx's Amiga C).
 
+For how the ++term argument works internally, it creates the tab page and
+terminal directly, and then sets the exit_cb callback of the terminal job to a
+Vimscript function called "PopulateQuickFixList" defined in
⬇️ Suggested change
-Vimscript function called "PopulateQuickFixList" defined in
+Vim script function called "PopulateQuickFixList" defined in


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/review/3174677224@github.com>

Foxe Chen

unread,
Sep 1, 2025, 9:45:02 PM9/1/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • 02d690b run make command in terminal

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/1a367f152435253a7ef41c18ca8c1488bc9fd139/after/02d690b8bc224e1e86103bab7d6494edea616684@github.com>

zeertzjq

unread,
Sep 1, 2025, 9:45:37 PM9/1/25
to vim/vim, Subscribed

@zeertzjq commented on this pull request.


In src/testdir/test_quickfix.vim:

> @@ -6958,4 +6960,52 @@ func Test_vimgrep_dummy_buffer_keep()
   %bw!
 endfunc
 
+" Test if ++term argument works properly for :make or :lmake
+func Test_make_ppterm_argument()
⬇️ Suggested change
-func Test_make_ppterm_argument()
+func Test_make_ppterm_argument()
+  CheckFeature terminal


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/review/3174679098@github.com>

Foxe Chen

unread,
Sep 1, 2025, 9:47:07 PM9/1/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • ba3d140 run make command in terminal

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/02d690b8bc224e1e86103bab7d6494edea616684/after/ba3d14090c94a1ba0ade3b0a0a37e3a7567e5157@github.com>

Foxe Chen

unread,
Sep 1, 2025, 9:49:06 PM9/1/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • 11392fc run make command in terminal

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/ba3d14090c94a1ba0ade3b0a0a37e3a7567e5157/after/11392fca8ef406d699fe9b843cac6039cffc20e7@github.com>

Foxe Chen

unread,
Sep 1, 2025, 9:54:02 PM9/1/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • cb1701b run make command in terminal

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/11392fca8ef406d699fe9b843cac6039cffc20e7/after/cb1701b4a8d415703e5bff91357cb04391db807b@github.com>

Foxe Chen

unread,
Sep 1, 2025, 10:04:12 PM9/1/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • 001178d run make command in terminal

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/cb1701b4a8d415703e5bff91357cb04391db807b/after/001178d17fc506fa50f98b2b05f12fd9d6beba31@github.com>

Maxim Kim

unread,
Sep 1, 2025, 10:05:06 PM9/1/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)
  1. can we not use g:vim_terminal_make_command? Maybe internal variable would be a better fit? v:terminal_make_command?
  2. Is there a particular reason to do it in the new tab? I would prefer to have it in the regular :term wherever it would be opened. Or :botright term ...


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3243558926@github.com>

Foxe Chen

unread,
Sep 1, 2025, 10:39:14 PM9/1/25
to vim/vim, Subscribed
64-bitman left a comment (vim/vim#18188)
  1. can we not use g:vim_terminal_make_command? Maybe internal variable would be a better fit? v:terminal_make_command?

Yeah that sounds better

  1. Is there a particular reason to do it in the new tab? I would prefer to have it in the regular :term wherever it would be opened. Or :botright term ...

Any ideas how the user would configure that?

  1. Provided that results still go to quickfix/location list, wouldn't it better not to create terminal at all, but just use job instead? @tpope's :Make command from dispatch plugin.

Maybe users wanting more advanced stuff could use that plugin. I think this should just be a simple way to run :make in the background. Maybe the user can configure if the terminal should automatically be opened or not?


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3243605323@github.com>

Maxim Kim

unread,
Sep 1, 2025, 10:50:19 PM9/1/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

Any ideas how the user would configure that?

What if :make would be able to accept :tab make ++term, :botright make ++term, etc?
Thus by default :make ++term opens terminal where :term would have opened it.

Maybe users wanting more advanced stuff could use that plugin. I think this should just be a simple way to run :make in the background. Maybe the user can configure if the terminal should automatically be opened or not?

I would just create the setting for make, e.g. set makeprgbackground=terminal and expect :make to run in background with terminal or set makeprgbackground=job to do the same without terminal.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3243619138@github.com>

Foxe Chen

unread,
Sep 1, 2025, 10:55:31 PM9/1/25
to vim/vim, Subscribed
64-bitman left a comment (vim/vim#18188)

Any ideas how the user would configure that?

What if :make would be able to accept :tab make ++term, :botright make ++term, etc? Thus by default :make ++term opens terminal where :term would have opened it.

Oh thats actually really nice, I will try implementating that

Maybe users wanting more advanced stuff could use that plugin. I think this should just be a simple way to run :make in the background. Maybe the user can configure if the terminal should automatically be opened or not?

I would just create the setting for make, e.g. set makeprgbackground=terminal and expect :make to run in background with terminal or set makeprgbackground=job to do the same without terminal.

Sounds good

Thanks for the tips, I'll make this a draft for now


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3243625298@github.com>

Yegappan Lakshmanan

unread,
Sep 2, 2025, 12:25:19 AM9/2/25
to vim/vim, Subscribed

@yegappan commented on this pull request.


In src/quickfix.c:

> +    if (argvar[0].vval.v_string == NULL)
+	return FAIL;
+
+    sprintf((char *)argvar[0].vval.v_string, "%s %s %s", p_sh, p_shcf, cmd);
+    argvar[1].v_type = VAR_UNKNOWN;
+#endif
+
+    if (win_new_tabpage(0) == FAIL)
+	goto fail;
+
+    init_job_options(&opt);
+
+    // Create callback to populate location/quickfix list when make command is
+    // done.
+    cb_tv.v_type = VAR_STRING;
+    cb_tv.vval.v_string = (char_u *)"PopulateQuickFixList";

Instead of splitting the terminal creation logic between the C code and the quickfix population in Vimscript, would it make sense to move the entire implementation to Vimscript and invoke the function directly?


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/review/3174830981@github.com>

Yegappan Lakshmanan

unread,
Sep 2, 2025, 12:26:45 AM9/2/25
to vim/vim, Subscribed

@yegappan commented on this pull request.


In src/quickfix.c:

> +    if (argvar[0].vval.v_string == NULL)
+	return FAIL;
+
+    sprintf((char *)argvar[0].vval.v_string, "%s %s %s", p_sh, p_shcf, cmd);
+    argvar[1].v_type = VAR_UNKNOWN;
+#endif
+
+    if (win_new_tabpage(0) == FAIL)
+	goto fail;
+
+    init_job_options(&opt);
+
+    // Create callback to populate location/quickfix list when make command is
+    // done.
+    cb_tv.v_type = VAR_STRING;
+    cb_tv.vval.v_string = (char_u *)"PopulateQuickFixList";

I see in your later comment that you are planning to move the entire logic to the C code. That also makes sense.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/review/3174832600@github.com>

Foxe Chen

unread,
Sep 3, 2025, 11:02:46 PM9/3/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • f4740a7 Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/001178d17fc506fa50f98b2b05f12fd9d6beba31/after/f4740a7fafbdb951461ec3a84100339b4395619f@github.com>

Foxe Chen

unread,
Sep 3, 2025, 11:06:41 PM9/3/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • 3347336 Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/f4740a7fafbdb951461ec3a84100339b4395619f/after/33473364e930a0b762e86db6d09dc46ca1f30d17@github.com>

Foxe Chen

unread,
Sep 6, 2025, 3:48:52 PM9/6/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • 6d27d3c Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/33473364e930a0b762e86db6d09dc46ca1f30d17/after/6d27d3c2f80fa9208735856128d08c31891812d7@github.com>

Foxe Chen

unread,
Sep 6, 2025, 3:55:55 PM9/6/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • df7283f Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/2ffd8936e818f676f94f00c4e42571c2ddebb39b/after/df7283f4a53c65a8dad5376bd9864fee46a4ed30@github.com>

Foxe Chen

unread,
Sep 6, 2025, 3:59:35 PM9/6/25
to vim/vim, Subscribed
64-bitman left a comment (vim/vim#18188)

@habamax Can you check if it looks good? :botright, :tab, ... should work, and the :make command supports ++hidden, ++rows, ++cols just like the :terminal command.

Quickfix/location list is only generated when the make command is done, I tried having it appended to as the make command runs. Though I found that using the channel callback gives raw messages, meaning colour codes/any escape codes would appear in the quickfix window, not sure how to handle that.

Thanks,


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263171742@github.com>

Foxe Chen

unread,
Sep 6, 2025, 4:04:01 PM9/6/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • ec8c19a Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/df7283f4a53c65a8dad5376bd9864fee46a4ed30/after/ec8c19af13d6fb01fa6e0fdae3f8a6a38455b47d@github.com>

Foxe Chen

unread,
Sep 6, 2025, 7:48:47 PM9/6/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • d4e7a27 Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/ec8c19af13d6fb01fa6e0fdae3f8a6a38455b47d/after/d4e7a27530c0364291f2e86ac8b9729ab4eebd65@github.com>

Foxe Chen

unread,
Sep 6, 2025, 8:52:50 PM9/6/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • b8f740d Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/d4e7a27530c0364291f2e86ac8b9729ab4eebd65/after/b8f740d9e19089024fa685f7ed2a6bf32a7651cd@github.com>

Foxe Chen

unread,
Sep 6, 2025, 8:53:02 PM9/6/25
to vim/vim, Push

@64-bitman pushed 1 commit.

  • bff40af Add ++term option to :make

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/b8f740d9e19089024fa685f7ed2a6bf32a7651cd/after/bff40afc94a348cade7f0fcdd84035064f19abbc@github.com>

Maxim Kim

unread,
Sep 6, 2025, 9:23:17 PM9/6/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

@habamax Can you check if it looks good? :botright, :tab, ... should work, and the :make command supports ++hidden, ++rows, ++cols just like the :terminal command.

When you do :tab make ++term a new tab appears and if there is an error it jumps to the first error replacing terminal tab. Not sure if this is intended? Same for a regular split.

https://asciinema.org/a/4heU2snrwnlDjlq2cwRrGkdhu

Otherwise, looks good to me.

PS: It would be nice to not write :make ++term, hopefully you going to have it eventually with smth like set make=terminal/set make=job option.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263334620@github.com>

Foxe Chen

unread,
Sep 6, 2025, 9:40:42 PM9/6/25
to vim/vim, Subscribed
64-bitman left a comment (vim/vim#18188)

When you do :tab make ++term a new tab appears and if there is an error it jumps to the first error replacing terminal tab. Not sure if this is intended? Same for a regular split.

That also applies to the regular :make, you just have to pass a shebang [!]]. In the docs:

7. If [!] is not given the first error is jumped to.

Maybe jumping to the first error should not be the default when adding ++term to the command?

PS: It would be nice to not write :make ++term, hopefully you going to have it eventually with smth like set make=terminal/set make=job option.

I think it would be better to just create a custom user command instead. Adding a separate option seems kinda out of place? I mean you can't configure default behaviour with ++ arguments with other ex commands.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263342018@github.com>

Maxim Kim

unread,
Sep 6, 2025, 9:56:39 PM9/6/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

PS: It would be nice to not write :make ++term, hopefully you going to have it eventually with smth like set make=terminal/set make=job option.

I think it would be better to just create a custom user command instead. Adding a separate option seems kinda out of place? I mean you can't configure default behaviour with ++ arguments with other ex commands.

With the custom command I can't say "do not use terminal, but job instead" which I was referring to with set make=job.

Basically, with set make=term I would like to see how compilation happens, with set make=job I just want to make in background without any visuals.

PS
I can do it now without using :make at all, but I can do make in a built in terminal too without this patch :).


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263349393@github.com>

Maxim Kim

unread,
Sep 6, 2025, 10:01:49 PM9/6/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

That also applies to the regular :make, you just have to pass a shebang [!]]. In the docs:

Yes, I know, but I would expect it to jump in another window/split instead of replacing make results.

With regular :make it is fine as :make results are kind of hidden.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263351316@github.com>

Foxe Chen

unread,
Sep 6, 2025, 10:15:18 PM9/6/25
to vim/vim, Subscribed
64-bitman left a comment (vim/vim#18188)

With the custom command I can't say "do not use terminal, but job instead" which I was referring to with set make=job.

Basically, with set make=term I would like to see how compilation happens, with set make=job I just want to make in background without any visuals.

Wouldn't ++hidden be the same as a job? It just creates a terminal buffer but doesn't actually open it.

PS I can do it now without using :make at all, but I can do make in a built in terminal too without this patch :).

I tried creating a plugin for that, problem was that trying to integrate makeprg was not possible because the args can be anywhere in that option using $*

Yes, I know, but I would expect it to jump in another window/split instead of replacing make results. That would be one of the reasons for me to use ++term here to see context of the errors.

With regular :make it is fine as :make results are kind of hidden.

That makes sense


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263374037@github.com>

Maxim Kim

unread,
Sep 6, 2025, 10:36:44 PM9/6/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

I tried creating a plugin for that, problem was that trying to integrate makeprg was not possible because the args can be anywhere in that option using $*

I just run make in the job and capture output to the special buffer (not specific to make, any shell command):

https://asciinema.org/a/A99clJGwpf7PRlduC2p125JZY


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263395605@github.com>

Maxim Kim

unread,
Sep 6, 2025, 10:39:48 PM9/6/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

Wouldn't ++hidden be the same as a job? It just creates a terminal buffer but doesn't actually open it.

Somewhat, but the difference is in buffer creation. Job doesn't create one by default.

So if you ran your make with hidden buffer 100 times you'll have your next buffer created with 100 something bufnr. And then you would need to clean up those hidden terminal buffers too.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263397076@github.com>

Foxe Chen

unread,
Sep 6, 2025, 11:01:33 PM9/6/25
to vim/vim, Subscribed
64-bitman left a comment (vim/vim#18188)

I just run make in the job and capture output to the special buffer (not specific to make, any shell command):

https://asciinema.org/a/A99clJGwpf7PRlduC2p125JZY

That looks cool, Adding the exit code as the exit message is something I didn't think of

Somewhat, but the difference is in buffer creation. Job doesn't create one by default.

So if you ran your make with hidden buffer 100 times you'll have your next buffer created with 100 something bufnr. And then you would need to clean up those hidden terminal buffers too.

So with a ++job option, it would create a job, that you cannot view the progress of (in terms of output) and then updates the quickfix/location list when its done?


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263406490@github.com>

Maxim Kim

unread,
Sep 6, 2025, 11:16:16 PM9/6/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

So with a ++job option, it would create a job, that you cannot view the progress of (in terms of output) and then updates the quickfix/location list when its done?

yes!


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3263418790@github.com>

Maxim Kim

unread,
Sep 14, 2025, 7:20:43 PM9/14/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

FWIW, here is the :Make command that runs using a job, populating quickfix along the way:

def Make(args: string = "")
    if exists("g:make_jobid") && job_status(g:make_jobid) == 'run'
        echo "There is a make job running."
        return
    endif
    var makeprg = &l:makeprg ?? &makeprg
    var qf_opened = false
    setqflist([], ' ', {title: $"{makeprg} {args}"})
    g:make_jobid = job_start($"{makeprg} {args}", {
        cwd: getcwd(),
        out_cb: (_, msg) => {
            if !qf_opened
                qf_opened = true
                belowright copen
            endif
            setqflist([], 'a', {lines: [msg]})
        },
        err_cb: (_, msg) => {
            if !qf_opened
                qf_opened = true
                belowright copen
            endif
            setqflist([], 'a', {lines: [msg]})
        },
        close_cb: (_) => {
            echo "Make is finished!"
        }
    })
    if job_status(g:make_jobid) != "run"
        echom $"FAILED: {makeprg} {args}"
    endif

enddef
command! -nargs=* Make Make(<f-args>)

If would be great if this could be simplified to almost no config, but if not I can live with it :).

https://asciinema.org/a/XWwYA2wLYlvGmbNcMS5eUpGam


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3290020013@github.com>

Maxim Kim

unread,
Oct 29, 2025, 6:48:42 AM10/29/25
to vim/vim, Subscribed
habamax left a comment (vim/vim#18188)

I have charged vim's terminal with additional mappings to detect errors and jump over them. So my personal need in this shades away.

https://asciinema.org/a/ACJHdl0pSQza7AakJXULOrVIX


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3460875704@github.com>

Foxe Chen

unread,
Nov 21, 2025, 11:34:48 PM11/21/25
to vim/vim, Push

@64-bitman pushed 2 commits.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/before/bff40afc94a348cade7f0fcdd84035064f19abbc/after/5d607076ea8baf5b1fd7d25c6fcc68bd9fe14ebf@github.com>

Mao-Yining

unread,
Feb 7, 2026, 9:24:24 PM (14 hours ago) Feb 7
to vim/vim, Subscribed
mao-yining left a comment (vim/vim#18188)

With the ++job option, it would create a background job whose output cannot be viewed in progress, and then update the quickfix/location list once it finishes.

I suggest the output still loads into the quickfix list but remains hidden by default — this could better accommodate different use cases. Additionally, once the job completes, some form of user notification would be helpful — for example, a bell or a status indicator (like “running” / “done”) that could be integrated into a statusline plugin.

Regarding jobs and terminals: is it possible to run multiple processes simultaneously?

Also, apart from :make, are :grep and :addgrep also planned for implementation?

You may want to refer to this plugin: skywind3000/asyncrun.vim.

Thanks!


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/18188/c3865969096@github.com>

Reply all
Reply to author
Forward
0 new messages