如何让vim在不冻结屏幕的情况下运行shell命令

如何让vim在不冻结屏幕的情况下运行shell命令,vim,Vim,我最近改用了VIM(尤其是Mac VIM),我想知道是否可以运行各种命令来调用shell(:!X),这样它们就不会冻结VIM,并且在(有时速度较慢)任务运行时阻止您工作。有什么方法可以做到这一点吗?如果在“&”结尾使用符号执行任务,任务将在后台执行,您将立即得到提示 例如: :! find /home -name "*.jpg" > /tmp/results.txt & 将搜索结果保留在/tmp/results.txt中,但您将立即获得控件 希望能有帮助 问候 如果在“&”结尾使

我最近改用了VIM(尤其是Mac VIM),我想知道是否可以运行各种命令来调用shell(:!X),这样它们就不会冻结VIM,并且在(有时速度较慢)任务运行时阻止您工作。有什么方法可以做到这一点吗?

如果在“&”结尾使用符号执行任务,任务将在后台执行,您将立即得到提示

例如:

:! find /home -name "*.jpg" > /tmp/results.txt &
将搜索结果保留在/tmp/results.txt中,但您将立即获得控件

希望能有帮助


问候

如果在“&”结尾使用符号执行任务,任务将在后台执行,您将立即得到提示

例如:

:! find /home -name "*.jpg" > /tmp/results.txt &
将搜索结果保留在/tmp/results.txt中,但您将立即获得控件

希望能有帮助


问候

您可以将
exec
silent
redraw
组合使用,如下所示:

:exec 'silent :!find /home -name "*.jpg" > /tmp/results.txt' | :exec 'redraw!'

您可以通过组合使用
exec
silent
redraw
来执行此操作,如下所示:

:exec 'silent :!find /home -name "*.jpg" > /tmp/results.txt' | :exec 'redraw!'

通常,我只需要打开一个终端,并将Cmd选项卡置于其上。我也是这样做的,但每次击键都需要四次,所以我想要一个更高效的解决方案。这里是完美主义者!使用Ctrl+PageUp和Ctrl+PageDown在选项卡之间切换。4次按键?我只是过来看看。或者你可以使用像DTerm()Cmd(1)Tab(2)[back]Cmd(3)Tab(4)这样的东西。通常,我只是打开一个终端,然后将Cmd Tab移到它上面。我也是这样做的,但每次都需要四次按键,所以我想要一个更高效的解决方案。这里是完美主义者!使用Ctrl+PageUp和Ctrl+PageDown在选项卡之间切换。4次按键?我只是过来看看。或者您可以使用类似DTerm()Cmd(1)Tab(2)[back]Cmd(3)Tab(4)的东西,谢谢,但这并不是我想要的,因为这引入了查看输出的额外步骤。有没有办法使输出端子在VIM内运行(同时您可以切换缓冲区并保持工作)?没有,没有办法。但是您可以打开一个新的终端(在另一个窗口或选项卡中)并切换到执行命令。谢谢,但这并不是我想要的,因为这引入了查看输出的额外步骤。有没有办法使输出端子在VIM内运行(同时您可以切换缓冲区并保持工作)?没有,没有办法。但您可以打开一个新的终端(在另一个窗口或选项卡中)并切换到执行命令。