Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 仅在Vim中为.h和.cpp文件启用某些插件和选项_C++_Vim_Autocomplete_File Type - Fatal编程技术网

C++ 仅在Vim中为.h和.cpp文件启用某些插件和选项

C++ 仅在Vim中为.h和.cpp文件启用某些插件和选项,c++,vim,autocomplete,file-type,C++,Vim,Autocomplete,File Type,我已经在Vim中安装了用于brace completion的DelimiteMate,但它正在为所有文件运行,而不仅仅是.h和.cpp文件。DiscraftMate有一个在缓冲区中禁用自身的选项,因此我需要在我的.vimrc中添加一些内容,上面写着“在缓冲区中禁用除.h和.cpp文件以外的所有文件的DiscraftMate”,尽管我不知道如何做。阅读上的文档:h'b:DiscraftMate\u autoclose'。将以下内容添加到~/.vimrc: let g:delimitMate_aut

我已经在Vim中安装了用于brace completion的DelimiteMate,但它正在为所有文件运行,而不仅仅是.h和.cpp文件。DiscraftMate有一个在缓冲区中禁用自身的选项,因此我需要在我的.vimrc中添加一些内容,上面写着“在缓冲区中禁用除.h和.cpp文件以外的所有文件的DiscraftMate”,尽管我不知道如何做。

阅读
上的文档:h'b:DiscraftMate\u autoclose'
。将以下内容添加到
~/.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\u diffractmate
,而不是
:autocmd
:augroup
命令。示例将以下内容添加到
~/.vim/after/ftplugin/cpp.vim

let b:delimitMate_autoclose = 1
如果您希望保持
~/.vimrc
文件干净,或者您已经有许多特定于文件类型的命令、设置或映射,则可能会首选此方法

注意:我不使用Divertimate,因此我没有测试任何这些设置

有关更多帮助,请参阅:

:h :aug
:h :au
:h FileType
:h 'b:delimitMate_autoclose'
:h delimitMateFileType
:h ftplugin

我想你要找的是自动命令。每当某个事件发生时,自动命令可以运行vimscript的各个部分。通过执行
:help autocmd events

因此,根据您的需要,首先应该在vimrc中禁用DiffractMate。然后,您可以在vimrc中放入类似的内容(在禁用DiffractMate之后):

这样,vim将在默认情况下禁用DiscrimentMate,但如果fieltype是cpp,它将启用它。(包括头文件)
当然,有关
autocmd
命令的更多信息,请执行
:help:autocmd

我想你们都误解了我的意思。我只希望为.h和.cpp文件启用定界匹配,其他什么都不需要。我需要类似“如果文件类型cpp==true,则继续;否则b:loaded_DiffractMate=1”这样的内容。您可以这样做:
autcmd文件类型*让b:loaded_DiffractMate=&ft!=”cpp'
。但是,使用“默认关闭”选项(
difframate\u offByDefault
)并仅为cpp打开它会在以后为您提供选项,因为您可以通过添加另一行
autcmd FileType…
轻松为其他文件类型打开它。我已更改帖子以反映对cpp/.h文件的打开。但是,正如我在文章中所指出的,这可能不是您想要使用的设置。它可能是
b:u autoclose
,我无从得知。就我个人而言,我已经完全抛弃了自动关闭插件,现在就用它来满足我的任何配对需求。
autocmd FileType cpp (insert command to disable delimitMate here)