来自vim的Shell命令

来自vim的Shell命令,shell,vim,Shell,Vim,使用vim中的shell命令的最佳方法是什么?我知道的可能性!shell_命令。但这并不知道所有的命令,例如。 导出OSTYPE;进行安装,因此我必须在vim外部运行它。有更好的方法吗?您可以使用命令从Vim启动shell。当外壳退出时 (退出命令或Ctrl+D后)返回Vim。shell命令的名称来自选项 对于终端Vim(在类unix系统上),您还可以使用Ctrl+Z挂起Vim并返回运行它的shell。要恢复Vim进程,请使用fg命令。我知道这有点晚,但我首选的方法是暂停Vim进程(Ctrl+z

使用vim中的shell命令的最佳方法是什么?我知道
的可能性!shell_命令
。但这并不知道所有的命令,例如。
导出OSTYPE;进行安装
,因此我必须在vim外部运行它。有更好的方法吗?

您可以使用命令从Vim启动shell。当外壳退出时 (退出
命令或Ctrl+D后)返回Vim。shell命令的名称来自选项


对于终端Vim(在类unix系统上),您还可以使用Ctrl+Z挂起Vim并返回运行它的shell。要恢复Vim进程,请使用
fg
命令。

我知道这有点晚,但我首选的方法是暂停Vim进程(Ctrl+z)。返回shell/bash命令提示符

然后执行您喜欢的任何命令


通过键入
fg

返回vim“不知道所有命令”是什么意思?您给出的示例在vim中运行良好。没有更好的方法:!这里的命令应该适用于所有情况。如果它可以在外部使用xterm或类似的东西运行,那么它应该在vim中工作。另一种方法:运行一个shell,做任何你想做的事情,然后关闭它,你将自动返回到vim。@John Cromartie。当我在vim外部运行它时,它会以错误结束,而在vim中,它以错误结束。@xralf:命令执行中的问题可能在于交互shell和非交互shell的不同:在非交互shell中,不允许使用别名,并且跳过了一些初始化步骤。除非您在
export
make
上加了别名,否则它对您的特定示例不会有任何影响。还要注意执行
!导出…
,然后导出
!命令
不会产生任何错误,因为在执行
时,导出变量的shell已经消失了!命令
。是否可以在一个拆分中使用shell,或者在另一个拆分中使用选项卡和文件?我有时需要同时查看shell和源文件。我使用的是
tmux
,但是混合使用tmux命令和vim命令在拆分之间导航是不好的。@xraf您可以试试。它很慢,不能很好地使用unicode,并且不会更新不在当前窗口中的缓冲区(直到您切换到它),但这是使用当前vim功能所能做的最好的事情。您也可以尝试插件,该插件可以从vim中向其他屏幕/tmux窗口发送按键。