GStreamer Advent Calendar 2016 の 18日目の記事です。(遅)
DecodetimeBin の開発初日から4日間くらいは Gnome Builder を使ってましたが、
Vim emulation の完成度が低くかったので最近は Neovim に戻りました。
今日はそんな Neovim の環境を紹介します。
はじめに
筆者の init.vim は Github に公開しています。
https://github.com/shocrunch/dotfiles/tree/master/config/nvim
以下では init.vim の中でも GStreamer アプリ開発に使っているプラグインたちを紹介します。
一覧
- コード補完
- スニペット
- コーディング中の移動
- 静的解析
- 見た目
- リファレンスの参照
コード補完
Gnome Builder にはおよびませんが、これら3つでそこそこのコード補完が効きます。
deoplete-clang ではなく clang_complete を使う選択肢もありますが、 私の環境は重すぎて (候補が多すぎ? 設定が甘い?) 使いものになりませんでした。。。
スニペット
if, for, main とかの入力にはやっぱりあると便利なのでいれてます
静的解析
scrooloose/syntastic を使っている人はかなり多いはず。
GStreamer アプリを開発する場合はプロジェクトのルートディレクトリに.syntastic_c_config
を置いておくと正しく動作してくれます。これがないと、『gst/gst.h
ないよ!』とか言われます。
.syntastic_c_config
は↓このように書きます。
-I/usr/include/gstreamer-1.0
-I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include
pkg-config --cflag gstreamer-1.0
の結果を 改行して 貼り付けただけです。改行 大切なので忘れずに。
ちなみに プロジェクトのルートディレクトリに置く というのはこんな感じです
見た目
airline
airline は syntastic の出力先としても優秀ですよね :)
gtk-vim-syntax
gint
や TRUE
など glib のマクロやラップしてる型に色が付きます(ハイライトされます)。また、Deprecated になった関数をハイライトしてくれる機能もあります。
ただ、セットアップ方法がちょっと独特でftplugin/c.vim
にsyntax/glib.vim
などを読み込む処理を追記しないといけません。
筆者の ftplugin/c.vim を参考にしてみてください --> https://github.com/shocrunch/dotfiles/blob/master/config/nvim/ftplugin/c.vim
リファレンスの参照
カーソル上の文字列から devhelp が引けます。超便利。
おわりに
やっぱり Vim emulation の環境より本物の Vim (Neovim)がいいよね(´﹃`)