如何在本地vimrc(.lvimrc)文件中设置clang格式选项



我使用本地vimrc进行项目特定的vim设置。我的项目目录中有.lvimrc文件,具有如下所示的特定设置,它可以工作。

set tabstop=2
set shiftwidth=2
set softtabstop=2

但是,我无法覆盖clang格式设置,例如,当我运行:ClangFormat时,vim仍然使用我主文件夹中.virc文件中的设置

我在.lvimrc文件中有以下clang格式设置。

let g:clang_format#style_options = {
 "Language":                               "Cpp",
 "IndentWidth":                            2,
}

本地vimrcs应使用setlocallet b:option_name = value定义本地选项。

不幸的是,并不是所有的插件都知道有些用户可以同时处理多个项目。在这种情况下,您需要本地vimrc插件在每次输入缓冲区时始终加载本地vimrc文件(即使它已经打开(。然后,您可以保护缓冲区的本地定义,以便再次(重新(设置。

我不能为你正在使用的插件说话。每次BufEnter作为缓冲区时,Mine都会重新加载vimrc_local.vim文件。因此,本地vimrc文件看起来像

" -- Global Overridden zone for project unaware plugins
let g:some_global_option_overwritten_every_time = "forced value"
" -- Buffer local zone for project-aware plugins
if exists('b:project_foo_bar_lvimrc_loaded') && b:project_foo_bar_lvimrc_loaded != 0
finish
endif
let b:project_foo_bar_lvimrc_loaded = 1
setlocal whatever=value
let b:some_option_for_a_smart_plugin = "specific value"
" -- and we can also add a global zone for stuff that we can load once 
" like functions, but it'll be smarter to use autoload plugins

顺便说一句,阅读插件文档,它看起来也在监听BufEnter,而且与我的插件不同,它似乎会自动设置保护。另一种可能性是,您的项目位于列入黑名单的目录树中。你还得检查一下。

最新更新