You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Vim的:CompileRun命令时出现zsh文件或目录不存在错误

问题分析与解决

你的错误根源是CompileRun命令的路径拼接错误:./是相对路径前缀,而%:p:r会输出文件的完整绝对路径,两者拼接后形成了.//mnt/Storage/C++/EX/test.out这种无效路径,系统自然找不到文件。

修正方案

直接修改.vimrc中的CompileRun命令,去掉多余的./,并且补充编译步骤(你原来的命令只尝试运行,没有先编译):

command! CompileRun execute '!g++ % -o %:p:r.out && %:p:r.out'

命令解释

  • g++ %:用g++编译当前打开的文件(%代表当前文件名)
  • -o %:p:r.out:将编译生成的可执行文件命名为原文件名去掉后缀后加.out(%:p:r是当前文件的绝对路径且不含后缀)
  • && %:p:r.out:只有编译成功时才运行生成的可执行文件

如果不需要编译,只是单纯运行已有的可执行文件,简化为:

command! CompileRun execute '!%:p:r.out'

额外优化(可选)

如果需要指定C标准(比如C17),可以在编译命令中添加参数:

command! CompileRun execute '!g++ -std=c++17 % -o %:p:r.out && %:p:r.out'

内容的提问来源于stack exchange,提问作者elenntar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:42:09