Shell vim中任何命令的执行都会导致其挂起

Shell vim中任何命令的执行都会导致其挂起,shell,vim,Shell,Vim,当我将vim外壳设置为交互式时会发生这种情况: set shellcmdflag=-ic 或 我喜欢这些,因为它们为输出提供语法高亮显示(例如:!ls) 但代价是每次我都要输入fg# 这是默认行为吗 如何在vim中获得交互式shell而不必使其在前台运行?您不能。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的 如果你想在Vim中安装一个shell,你必须安装一个插件,或者你不能安装。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的 如果你想在Vim中安

当我将vim外壳设置为交互式时会发生这种情况:

set shellcmdflag=-ic

我喜欢这些,因为它们为输出提供语法高亮显示(例如:
!ls
) 但代价是每次我都要输入
fg#

这是默认行为吗


如何在vim中获得交互式shell而不必使其在前台运行?

您不能。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的


如果你想在Vim中安装一个shell,你必须安装一个插件,或者你不能安装。这种行为是完全正常的,符合Vim作者的哲学。这在未来是不太可能改变的


如果你想在Vim中安装一个shell,你必须安装一个插件,比如or,我通常只使用tmux。您可以拆分终端,让一个普通的交互式shell和一个vim实例并排运行—非常方便。

我通常只使用tmux。您可以拆分终端,让一个普通的交互式shell和一个vim实例并排运行—非常方便。

您能告诉我这是什么理念吗?(例如名称、解释、引用或链接)您能告诉我这一理念是什么吗?(例如名称、解释、引用或链接)
shellcmdflag=-ic
通常不是一个好主意,正如tpope所指出的那样:“当它不是交互式的时候,对bash撒谎说它是交互式的。它会影响从:!到system()(shell始终是交互式的),因此,如果.bashrc中的某些内容产生输出,它可能会导致各种各样的中断。我刚刚尝试了我的设置,Vim被挂起,原因我不想理解。”我还可以证明,当设置此变量时,许多vim功能和插件都出现了故障。
shellcmdflag=-ic
通常并不像tpope所指出的那样好:“对bash撒谎说它是交互式的,而不是交互式的。它会影响从:!到system()(shell始终是交互式的),因此,如果.bashrc中的某些内容产生输出,它可能会导致各种各样的中断。我刚刚尝试了我的设置,Vim被挂起,原因我不想理解。”我还可以证明,设置此变量时,许多Vim功能和插件都会中断。
set shell=/bin/bash\ -i