如何在Vim脚本中执行外部命令?

Afs*_*ani 6 vim vim-plugin

我想在Vim脚本中执行外部命令,但我不知道如何执行此操作.例如,我需要使用chmod命令更改文件权限(请假设应用程序具有足够的权限来运行命令)

有没有办法实现这个目标?

Ing*_*kat 7

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

:call system('chmod +x ' . shellescape(fname))
Run Code Online (Sandbox Code Playgroud)

  • 它返回输出,退出状态在`v:shell_error`中.`:help system()`是你的朋友:-) (2认同)

fer*_*lin 6

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

:! echo 'Hello, World\!'
Run Code Online (Sandbox Code Playgroud)

在vim.或者,在vim脚本中,您可以放置

! echo 'Hello, World\!'
Run Code Online (Sandbox Code Playgroud)

之所以需要\之前的!是因为vim执行特殊处理!参数中的字符!命令.如果您运行的命令不包含任何命令!角色,那么你不需要逃避它.

如果您想深入了解这一点,可以输入

:help :!
Run Code Online (Sandbox Code Playgroud)

正如@FDinoff所说,在vim中.