はじめに
研究室に配属されて、とうとう逃げ続けてきたC++を書くことになったので勉強がてら環境設定をしていました。
その環境設定の備忘録として記事を書きます。
環境
- OS: MacOS High Sierra
- neovim: v0.2.2
Pluginはdeinを使用しています。
インストールするもの
上の2つは補完用
一番下のものはlinterみたいなものです。多分。
僕はセーブ時に自動で修正するようにしています。
インストール
[[plugins]]repo="Shougo/deoplete.nvim"on_i=1on_event="InsertCharPre"hook_source="""
let g:deoplete#enable_at_startup = 1
let g:deoplete#auto_complete_delay = 0
let g:deoplete#auto_complete_start_length = 1
let g:deoplete#enable_camel_case = 0
let g:deoplete#enable_ignore_case = 0
let g:deoplete#enable_refresh_always = 0
let g:deoplete#enable_smart_case = 1
let g:deoplete#file#enable_buffer_path = 1
let g:deoplete#max_list = 10000
set completeopt-=preview
"autocmdInsertLeave,CompleteDone*ifpumvisible()==0|pclose|endif"""[[plugins]]repo="zchee/deoplete-clang"on_ft="cpp"depends="deoplete.nvim"hook_add="""
let g:deoplete#sources#clang#libclang_path='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib'
let g:deoplete#sources#clang#clang_header='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang'
"""[[plugins]]repo="rhysd/vim-clang-format"on_ft="cpp"hook_add="""
function! CPPCodeCleanup()
let l:lines='all'
let g:clang_format_fallback_style = 'Google'
:pyf /usr/local/share/clang/clang-format.py
endfunction
command! CPPCodeCleanup call CPPCodeCleanup()
autocmd BufWrite *.{cpp} :CPPCodeCleanup
"""
Shougo/deoplete.nvim
Shougo/deoplete.nvim
は言わずとしれた補完用のプラグインですね。
これはneovim使ってる人だったらだいたい知ってるんじゃないかなと思います。
コメントアウトしているautocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif
は deoplete-clang
の使用時にneovimの上にプレビューウィンドウが出てくるんですが、それを補完終了時に閉じてくれるというものです。
僕はそもそも、プレビューウィンドウいらないなと思って、最初から出ないようにしています。(set completeopt-=preview
)
特に気にならないと言う人は無くてもいいと思います。
zchee/deoplete-clang
これはdeoplete.nvimのC, C++用の拡張みたいなものです。
使用するにはClang等のパスを通す必要があります。
パスについては、僕はXCodeのものを使用しました。
適宜パスは変えてもらえるといいかもです。
rhysd/vim-clang-format
僕は保存時にC++のフォーマットを整理するようにしています。
調べてみたら、コード規約は色々あるみたい。
僕は特にこだわりが無いのでGoogleを使っています。
最後に
他に調べてみたら、thinca/vim-quickrunを使って自動コンパイルとかも良さげだった。
これはまた必要になったら追加してみようかな。
一応これがスクショです。
deopleteで[clang]が出てきていたら、deoplete-clangの導入は成功していると思います。