[Debug]SpaceVim中neomake報錯 Error while trying to load a compilation database

回家裝上archlinux,突發奇想裝個SpaceVim寫題
安裝配置一路能夠說是沒有太大問題
最後在寫題時出現以下問題linux

Error while trying to load a compilation database:
Could not auto-detect compilation database for file "poj-1458.cpp"
No compilation database found in /home/tanglizi/Code/acm/summerTraining/2018 or any parent directory
fixed-compilation-database: Error while opening fixed database: No such file or directory
json-compilation-database: Error while opening JSON database: No such file or directory
Running without flags.

查了查google,發現這是clang-check的問題,clang-check須要一個compile_commands.json文件(可由cmake生成)作到工程化check
那麼問題迎刃而解git

方法一

卸載clang,換上gcc
絕對暴力的方法,能夠說很不優雅了github

方法二

手寫compile_commands.json文件,或者cmake一個工程
可是對ACM刷題黨來說,這個實在不方便json

方法三

瞬間拋棄了前兩個方法,因而開始修改vim插件
仍是查了查google,發現問題在於一個名叫neomake插件
因而查找有關clang-check的文件,看看是怎麼調用clang-check的vim

grep clang-check -R ~/.cache/vimfiles/repos/github.com
# /home/tanglizi/.cache/vimfiles/repos/github.com/neomake/neomake/autoload/neomake/makers/ft/c.vim:    " 'exe': 'clang-check'
vim /home/tanglizi/.cache/vimfiles/repos/github.com/neomake/neomake/autoload/neomake/makers/ft/c.vim

能夠看到第32行出現clang-checkc#

function! neomake#makers#ft#c#clangcheck() abort
    return {
        \ 'exe': 'clang-check',
        \ 'args': ['%:p'],
        \ 'errorformat':
            \ '%-G%f:%s:,' .
            \ '%f:%l:%c: %trror: %m,' .
            \ '%f:%l:%c: %tarning: %m,' .
            \ '%I%f:%l:%c: note: %m,' .
            \ '%f:%l:%c: %m,'.
            \ '%f:%l: %trror: %m,'.
            \ '%f:%l: %tarning: %m,'.
            \ '%I%f:%l: note: %m,'.
            \ '%f:%l: %m',
        \ }
endfunction

因而在33行的args裏面加上'--',同理處理clang-tidy(75行),就搞定了google

\ 'args': ['%:p', '--'],

思路是在原命令後加上'--',clang就不查找compilation database了插件

clang-check file.cpp --
相關文章
相關標籤/搜索