vim c/c++ ftplugin 脚本

vim c/c++ ftplugin 脚本

我在 vim 配置中对常规运行时进行了一些添加。我向rtp一个目录添加了一个ftplugin目录,其中有两个文件:c.vimcpp.vim。在这些文件中,我确定了几个名称相同但内容不同的命令,这取决于文件,是 c 文件还是 cpp 文件。

在 c.vim 中:

execute "nnoremap <silent> ".g:formatterTrigger." :call Formatters#Uncrustify#C()<Cr>"

在 cpp.vim 中:

execute "nnoremap <silent> ".g:formatterTrigger." :call Formatters#Uncrustify#Cpp()<Cr>"

但是我通过scriptnames命令看到这两个 ft 文件都已加载。而且 c.vim 是第一个加载的,所以在 cpp 文件中我有 c 命令。如何解决这个问题?

答案1

不要使用runtimepath那个,after目录(:h after-directory)才是你所需要的。

将这两个文件放入~/.vim/after/ftplugin

答案2

由于它们的相似性,进程文件类型基于C一个。因此,正如您所指出的,两个文件都是来源。但这没有问题,因为进程最后一个,并将覆盖C一;你可以检查

:verbose execute 'nnoremap' g:formatterTrigger

一般来说,这没什么可担心的(除非你定义了:map <unique>,在这种情况下会抱怨),并且你已经知道可以使用类似的命令:scriptnames来解决此问题。

相关内容