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

时间:2018-07-23 11:46:06

标签: vim

我正在使用Local vimrc进行项目特定的vim设置。我的项目目录中有.lvimrc文件,具有如下所示的特定设置,并且可以正常工作。

query

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

我不能说您正在使用的插件。每当我们vimrc_local.vim一个缓冲区时,Mine就会重新加载BufEnter个文件。结果,本地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,与我的插件不同,它似乎自动设置了防护措施。另一种可能性是您的项目在列入黑名单的目录树中。您还必须检查一下。