LoginSignup
6
4

More than 5 years have passed since last update.

NeovimでC++の環境を整えてみた

Last updated at Posted at 2018-04-22

はじめに

研究室に配属されて、とうとう逃げ続けてきたC++を書くことになったので勉強がてら環境設定をしていました。
その環境設定の備忘録として記事を書きます。

環境

  • OS: MacOS High Sierra
  • neovim: v0.2.2

Pluginはdeinを使用しています。

インストールするもの

上の2つは補完用
一番下のものはlinterみたいなものです。多分。
僕はセーブ時に自動で修正するようにしています。

インストール

dein_lazy.toml
[[plugins]]
repo = "Shougo/deoplete.nvim"
on_i = 1
on_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
  " autocmd InsertLeave,CompleteDone * if pumvisible() == 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 | endifdeoplete-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の導入は成功していると思います。

スクリーンショット 2018-04-23 8.31.08.png

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4