我想在Vim脚本中执行外部命令,但我不知道如何执行此操作。例如,我需要使用chmod
命令更改文件权限(请假设应用程序有足够的权限来运行命令)
有没有办法实现这个目标?
答案 0 :(得分:7)
如果您希望用户查看输出(或与命令交互):!
是正确的命令。对于静默执行(我认为您希望使用chmod
),最好使用system()
。特别是在Windows上,这可以避免弹出必须手动关闭的命令提示符。
:call system('chmod +x ' . shellescape(fname))
答案 1 :(得分:6)
您可以使用:!
vim命令。例如,从vim内部echo 'Hello, World!'
(因此也在vim脚本中),键入
:! echo 'Hello, World\!'
在vim中。或者,在vim脚本中,您可以只使用
! echo 'Hello, World\!'
你之前需要的原因是什么!是因为vim执行特殊处理!参数中的字符!命令。如果您运行的命令不包含任何命令!角色,那么你不需要逃避它。
如果您想深入了解这一点,可以输入
:help :!
正如@FDinoff所说,在vim中。
答案 2 :(得分:2)