Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:防止控制台在收到带有“Vim”的外部命令后自动关闭:“沉默”;_Vim - Fatal编程技术网

Vim:防止控制台在收到带有“Vim”的外部命令后自动关闭:“沉默”;

Vim:防止控制台在收到带有“Vim”的外部命令后自动关闭:“沉默”;,vim,Vim,我想执行外部命令,但不想看到提示 按ENTER键或键入命令继续 为了解决这个问题,我在外部命令之前添加了“silent” :silent !<external command> :安静! 但这会导致控制台在命令发出后自动关闭 这个问题有解决办法吗?您可以使用:sh从vim转到shell,然后执行命令,然后从shell退出返回vim 这不同于使用q退出vim并在shell中执行命令,然后使用vim filename再次访问vim 有什么不同 1) 通过:sh,您仍然可以移动到she

我想执行外部命令,但不想看到提示

按ENTER键或键入命令继续

为了解决这个问题,我在外部命令之前添加了“silent”

:silent !<external command>
:安静!
但这会导致控制台在命令发出后自动关闭


这个问题有解决办法吗?

您可以使用
:sh
从vim转到shell,然后执行命令,然后从shell退出
返回vim

这不同于使用q退出vim并在shell中执行命令,然后使用
vim filename
再次访问vim

有什么不同

1) 通过
:sh
,您仍然可以移动到shell,甚至不需要保存更改。所以,如果您需要执行单个shell命令,那么您不能退出vim,同时要保存或不保存几个更改


2) 通过
:sh
,vim中所有打开的选项卡和缓冲区将保留,您可以转到shell并返回。

您可以使用
:sh
从vim转到shell,然后执行命令,然后从shell退出
返回vim

这不同于使用q退出vim并在shell中执行命令,然后使用
vim filename
再次访问vim

有什么不同

1) 通过
:sh
,您仍然可以移动到shell,甚至不需要保存更改。所以,如果您需要执行单个shell命令,那么您不能退出vim,同时要保存或不保存几个更改


2) 通过
:sh
,vim中所有打开的选项卡和缓冲区将保留,您可以转到shell并返回。

您想在shell中继续吗?@SibiCoder是的,在某些情况下,我不关心shell到vim的返回值,因此我希望shell独立执行命令并“暂停”命令完成后。是否要在shell本身中继续?@SibiCoder是的,在某些情况下,我不关心shell到vim的返回值,因此我希望shell独立执行命令并“暂停”命令完成后。这符合您的目的吗?还是您想要不同的?您的回答告诉我,除了“:”命令之外,还有另一种从vim打开shell的方法。但是当我想执行shell命令而不让gvim等待shell退出时,使用gvim会怎么样呢?正如我在问题中提到的,“:silent!”将完成这项工作,但shell会在shell命令后自动关闭。有什么想法吗?我认为我们无法从vim控制炮弹。所以,它不会在shell中等待您的答复。如果要捕获并查看输出,可以使用
:echo system(“此处的shell命令”)
查看指定shell命令的输出。谢谢。也许是像你说的那样。这符合你的目的还是你想要不同的?你的回答告诉我除了“:!”命令之外,从vim打开shell的另一种方法。但是当我想执行shell命令而不让gvim等待shell退出时,使用gvim会怎么样呢?正如我在问题中提到的,“:silent!”将完成这项工作,但shell会在shell命令后自动关闭。有什么想法吗?我认为我们无法从vim控制炮弹。所以,它不会在shell中等待您的答复。如果要捕获并查看输出,可以使用
:echo system(“此处的shell命令”)
查看指定shell命令的输出。谢谢。也许是你说的那样。