如何修改Windows系统下GVIM中的默认编译器列表?
当然可以修改这个列表!GVim的「Set Compiler」菜单完全是可自定义的,咱们一步步来调整到符合你的需求:
自定义GVim编译器菜单的详细步骤
1. 先搞懂编译器脚本的原理
GVim的每个编译器选项对应一个.vim脚本,默认存放在$VIMRUNTIME/compiler/目录下(Windows用户一般在C:\Program Files\Vim\vimXX\compiler,XX是你的Vim版本号)。这些脚本定义了对应语言的编译命令、错误格式等规则。
2. 添加你需要的语言支持
如果菜单里缺HTML、CSS、JS或VB,你有两种方式搞定:
方式一:自己写简单的编译器脚本
比如给JavaScript创建javascript.vim,放到~/.vim/compiler/(Linux/macOS)或%USERPROFILE%\vimfiles\compiler\(Windows)目录下,内容可以参考这个(用ESLint做语法检查和修复):if exists("current_compiler") finish endif let current_compiler = "javascript" " 定义编译/检查命令 CompilerSet makeprg=npx\ eslint\ --fix\ % " 定义错误输出格式,方便Vim跳转 CompilerSet errorformat=%f:%l:%c:\ %mHTML和CSS可以类似处理,比如用HTMLHint、Stylelint等工具,对应修改
makeprg和errorformat即可。方式二:复用已有脚本
先检查默认的compiler目录里有没有你需要的脚本(比如可能已经有html.vim但没显示在菜单),如果有,直接跳到下一步添加菜单条目就行。
3. 把新编译器加到菜单里
打开你的vimrc(Windows是_vimrc),添加菜单定义命令,比如:
" 给Tools菜单添加自定义编译器选项 amenu Tools.Set\ Compiler.JavaScript compiler javascript amenu Tools.Set\ Compiler.HTML compiler html amenu Tools.Set\ Compiler.CSS compiler css amenu Tools.Set\ Compiler.Visual\ Basic compiler vb
重启GVim后,你就能在「Set Compiler」里看到这些新选项了!
4. 移除没用的默认选项
如果想删掉那些你永远用不到的语言选项,在vimrc里用:aunmenu命令移除即可:
" 移除不需要的默认编译器菜单 aunmenu Tools.Set\ Compiler.Fortran aunmenu Tools.Set\ Compiler.Pascal aunmenu Tools.Set\ Compiler.Lisp " 把你不想看到的选项都列在这里
小技巧
- 参考默认编译器脚本的写法,比如打开
$VIMRUNTIME/compiler/python.vim,看看它的结构,就能快速上手写自己的脚本。 - 如果只是想临时切换编译器,不用改菜单,直接在命令行输入
:compiler javascript就能生效。
内容的提问来源于stack exchange,提问作者Gershon




