Vim YouCompleteMe c ++ 17: предупреждение об объявлении декомпозиции - PullRequest
2 голосов
/ 06 февраля 2020

Я хотел бы правильно настроить 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 Ответ

1 голос
/ 07 февраля 2020

Я решил удалить предыдущую установку и сделать все из командной строки (при условии предыдущей установки Vundle, как рекомендовано в документации YouCompleteMe).

# 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 (без. точка), содержащая:

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

Я добавил флаг c ++ 2a, но c ++ 17 также должен работать.

Затем укажите этот файл в ~ / .vimr c file.

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

Примечание: возможно, вам придется добавить к вашему ~ / .vimr c

Plugin 'Valloric/YouCompleteMe'  

в вашем файле vimr c.

И запустить (из vim)

:PluginInstall

Я не выполнил эти шаги, так как ранее установил YouCompleteMe.

Это, похоже, решило проблему для меня. Надеюсь, это кому-нибудь пригодится.

...