7

我想在 Vim 脚本中执行一个外部命令,但我不知道该怎么做。例如我需要使用chmod命令更改文件权限(请假设应用程序有足够的权限来运行命令)

有什么办法可以做到这一点?

4

3 回答 3

9

如果您希望用户看到输出(或与命令交互):!是正确的命令。对于静默执行(我认为您chmodsystem(). 特别是在 Windows 上,这可以避免弹出必须手动关闭的命令提示符。

:call system('chmod +x ' . shellescape(fname))
于 2013-07-04T07:42:59.670 回答
6

您可以使用:!vim 命令。例如,echo 'Hello, World!'要从 vim 内部(因此也在 vim 脚本中),输入

:! echo 'Hello, World\!'

在 vim. 或者,在 vim 脚本中,您可以只输入

! echo 'Hello, World\!'

你需要 \ 之前的原因!是因为 vim 对 ! a 的参数中的字符!命令。如果您运行的命令不包含任何 ! 字符,那么你不需要转义它。

如果您想更深入地了解此内容,可以键入

:help :!

正如@FDinoff 所说,在vim 中。

于 2013-07-03T22:32:44.260 回答
2

我首选的方式是 pushCtrl-z或 run:sus来暂停 vim 进程,然后你可以在 shell 中做任何你想做的事情。

完成后,运行fg(前台)以恢复您的 vim 会话。

更多信息可以在这里找到。

于 2014-07-11T10:03:24.523 回答