【发布时间】:2013-07-01 19:10:38
【问题描述】:
我想在 Vim 脚本中执行一个外部命令,但我不知道该怎么做。例如,我需要使用chmod 命令更改文件权限(请假设应用程序有足够的权限来运行该命令)
有什么办法可以做到吗?
【问题讨论】:
标签: vim vim-plugin
我想在 Vim 脚本中执行一个外部命令,但我不知道该怎么做。例如,我需要使用chmod 命令更改文件权限(请假设应用程序有足够的权限来运行该命令)
有什么办法可以做到吗?
【问题讨论】:
标签: vim vim-plugin
您可以使用:! vim 命令。例如,从 vim 内部(因此也来自 vim 脚本)echo 'Hello, World!',键入
:! echo 'Hello, World\!'
在 vim 中。或者,在 vim 脚本中,你可以只放
! echo 'Hello, World\!'
在 ! 之前需要 \ 的原因是因为 vim 对 ! a 的参数中的字符!命令。如果您运行的命令不包含任何 !字符,则无需转义。
如果您想深入了解此内容,可以键入
:help :!
正如@FDinoff 所说,在 vim 中。
【讨论】:
:h :!
如果您希望用户看到输出(或与命令交互):! 是正确的命令。对于静默执行(我想您的chmod 会需要),最好使用system()。尤其是在 Windows 上,这可以避免弹出必须手动关闭的命令提示符。
:call system('chmod +x ' . shellescape(fname))
【讨论】:
v:shell_error。 :help system() 是你的朋友 :-)
【讨论】: