当我将 vim 的 shell 设置为交互式时会发生这种情况:
set shellcmdflag=-ic
或者
set shell=/bin/bash\ -i
我喜欢这些,因为它们为输出提供语法突出显示(例如:)!ls
但代价是我fg #
每次都必须输入。
这是默认行为吗?
如何在 vim 中获得交互式 shell 而不必让它在前台运行?
你不能。这种行为是完全正常和预期的,并且符合 Vim 作者的理念。未来改变的可能性很小。
如果你想在Vim 中安装一个 shell,你必须安装一个像Conque或Vimshell 这样的插件。
我通常只使用 tmux 代替。您可以拆分终端并拥有一个普通的交互式 shell 和一个并排运行的 vim 实例 - 非常方便。