仅在 Vim 中为 .h 和 .cpp 文件启用某些插件和选项
Enabling certain plugins and options for .h and .cpp files only in Vim
我已经在 Vim 中安装了用于大括号完成的 delimitMate,但它适用于所有文件,而不仅仅是 .h 和 .cpp 文件。DelimitMate 有一个在缓冲区中禁用自身的选项,所以我需要在我的 .vimrc 中添加一些内容,上面写着"在除 .h 和 .cpp 文件之外的所有文件的缓冲区中禁用 delimitMate",尽管我不知道该怎么做。
在 :h 'b:delimitMate_autoclose'
阅读 DelimitMate 文档。将以下内容添加到您的~/.vimrc
:
let g:delimitMate_autoclose = 0
augroup my_delimitmate
autocmd!
autocmd FileType cpp let b:delimitMate_autoclose = 1
augroup END
这个想法是全局关闭自动关闭(g:
),然后为特定缓冲区(b:
)重新打开它。
您可以在适当的 ftplugin 文件中设置b:loaded_delimitMate
而不是 :autocmd
和 :augroup
命令。示例将以下内容添加到~/.vim/after/ftplugin/cpp.vim
:
let b:delimitMate_autoclose = 1
如果要保持~/.vimrc
文件干净,或者已经有许多特定于文件类型的命令、设置或映射,则可能首选此方法。
注意:我不使用DelimitMate,所以我没有测试任何这些设置。
有关更多帮助,请参阅:
:h :aug
:h :au
:h FileType
:h 'b:delimitMate_autoclose'
:h delimitMateFileType
:h ftplugin
我认为您正在寻找的是自动命令。 每当某个事件发生时,自动命令都可以运行 vimscript 片段。您可以通过执行:help autocmd-events
来查看所有可能事件的列表
因此,根据您的需要,首先您应该在 vimrc 中禁用分隔伴侣。 然后,你可以在你的vimrc中放这样的东西(在你禁用delimitMate之后):
autocmd FileType cpp (insert command to disable delimitMate here)
这样,vim 将默认禁用 delimitMate,但如果 fieltype 为 cpp,它将启用它。(这包括头文件)当然,可以通过执行:help :autocmd
来获得有关autocmd
命令的更多信息
- 从C++本机插件更新Vector3数组
- 使用CMake创建QML插件
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- Win32编译器选项和内存分配
- C/C++预处理器是否可以检测一些编译器选项
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 通过选项卡的文本设置QTabWidget顺序
- 通过ccmake在cmake中缓存依赖选项
- 如何传递多个 std::文件系统选项?
- 基于编译器选项的编译二进制路径
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- clang 插件:在编译过程中修改 AST
- 实现动态插件管理器
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- Agora.io 虚幻引擎插件构建错误
- 处理协议插件中的自定义选项
- 仅在 Vim 中为 .h 和 .cpp 文件启用某些插件和选项