I have a script that writes output to a text file which I have open in a split side-by-side my code.

If I use :! python % it will close the window to display the terminal, show the script's terminal output and ask me to press enter to get back to my editor screen.

Since all I care about can be seen in the text file I already have open, I want to be able to just run the script and have no disruptions on screen. Alternatively, is it possible to have a 'mini-terminal' open as a split so that I can see the output of the script if need be?


For your situation, I believe you could do :call system('python '.%) to run the same thing without showing the output.

When I have a script that can write to stdout, I usually open a new window and do :r !python # to append the python output to the buffer directly.

Note that neither of these solutions are asynchronous-- vim will pause while the script is running. For async, you'd want to look at dispatch (or one of the underlying techniques it uses) or neovim.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.