0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GStreamerAdvent Calendar 2016

Day 18

Neovim で GStreamer アプリを書く

Last updated at Posted at 2016-12-23

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

gintTRUE など glib のマクロやラップしてる型に色が付きます(ハイライトされます)。また、Deprecated になった関数をハイライトしてくれる機能もあります。

ただ、セットアップ方法がちょっと独特でftplugin/c.vimsyntax/glib.vimなどを読み込む処理を追記しないといけません。

筆者の ftplugin/c.vim を参考にしてみてください --> https://github.com/shocrunch/dotfiles/blob/master/config/nvim/ftplugin/c.vim

リファレンスの参照

カーソル上の文字列から devhelp が引けます。超便利。

anime.gif

おわりに

やっぱり Vim emulation の環境より本物の Vim (Neovim)がいいよね(´﹃`)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?