Vim YouCompleteMe c++17:拆分声明警告

3
我希望能正确设置YouCompleteMe,以便在C++文件中不会出现以下警告:
...

auto [k,v] = mapIt; // some map iterator

...

decomposition declarations are a C++17 extension

我已添加。

   flags.append( '-std=c++17' ) 

~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py

并添加以下内容到
~/.vimrc

let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'

1
我不确定StackOverflow是获取YouCompleteMe帮助的最佳渠道。我建议你在这里查看:https://github.com/ycm-core/YouCompleteMe#help-advice-support。 - Enlico
我已经撤销了你的编辑。在Stack Exchange上回答问题的正确方式是发布一个答案。 - D. Ben Knoble
2个回答

4

我决定从命令行开始重新安装一切(假设之前按照YouCompleteMe文档中推荐的方式安装了Vundle)。

# typical installation directory for vundle and pathogen
cd ~/.vim/bundle

# clone the repository for YouCompleteMe
git clone https://github.com/Valloric/YouCompleteMe.git
cd YouCompleteMe

# and all submodules
git submodule update --init --recursive

# install
python3 install.py --clang-completer

接下来,我创建了一个简单的 ycm_extra_conf.py(没有 .dot 后缀),包含以下内容:

def FlagsForFile ( filename, **kwargs ):
    return {
        'flags': ['-x', '-Wall', '-Wextra', '-Werror', '-std=c++2a']
    }

我添加了c++2a标志,但c++17也应该可以工作。

然后在你的~/.vimrc文件中指向这个文件。

let g:ycm_global_ycm_extra_conf = '$HOME/.vim/bundle/YouCompleteMe/ycm_extra_conf.py'

注意:您可能需要添加到您的~/.vimrc文件中。
Plugin 'Valloric/YouCompleteMe'  

在您的vimrc文件中添加以下内容。
并在vim中运行以下命令。
:PluginInstall

由于我之前已经安装过YouCompleteMe,因此我没有执行这些步骤。

这似乎已经为我解决了问题。希望这对某人有用。


0

只需在 .ycm_extra_conf.py 中将标志'-std=c++11'更改为'-std=c++17'

这对我来说完美地解决了问题。


.ycm_extra_conf.py在哪里? - coulomb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接