加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

自动命令无法在Vim中工作,如何根据文件类型设置makeprg?

发布时间:2020-12-16 01:45:17 所属栏目:安全 来源:网络整理
导读:我使用Vim编辑器进行编程,这是我面临的问题. 我使用多个选项卡同时编辑C和Python文件,我在.vimrc文件中添加了以下内容 filetype plugin indent onau filetype python set mp=python3 %au filetype cpp set mp=g++ -Werror -Wextra -Wall -ansi -pedant
我使用Vim编辑器进行编程,这是我面临的问题.

我使用多个选项卡同时编辑C和Python文件,我在.vimrc文件中添加了以下内容

filetype plugin indent on
au filetype python set mp=python3 %
au filetype cpp set mp=g++ -Werror -Wextra -Wall -ansi -pedantic-errors -g %

即我想要的是当我切换到带有Python文件的选项卡并运行:make时,它应该运行:!python3%,当我切换到带有C文件的选项卡并运行时:make它应该运行:!g -Werror -Wextra -Wall -ansi -pedantic-errors -g%

然而它不起作用,每次我切换标签并运行:make,它会尝试执行!g -Werror -Wextra -Wall -ansi -pedantic-errors -g%当我运行时:设置ft?在2个文件(即Python和C)上检查文件类型是否已被正确识别,我得到了正确的结果,即python和cpp.

那为什么这个自动命令不起作用?我错过了什么吗?
谢谢你的耐心

解决方法

尝试使用setlocal而不是set.例如.:

filetype plugin indent on
au filetype python setlocal mp=python3 %
au filetype cpp setlocal mp=g++ -Werror -Wextra -Wall -ansi -pedantic-errors -g %

如果您阅读:help mp,您将看到该设置为“全局或本地缓冲区global-local”.这意味着您可以使用set来全局应用makeprg,或者使用setlocal来覆盖单个缓冲区.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读