neovim
N高Day 6

Re:ゼロから始めるNeovim生活

More than 1 year has passed since last update.

はじめに

この記事はN高 Advent Calendar 2016の記事です。N高要素がほとんどありません

Neovimでそこそこいい感じの開発環境を立てる話をします。題材に選んだ理由は頭文字がNだからです。何番煎じだよ

筆者がWindows環境でNeovimを動かせていないので、Windows環境でのNeovimについてはここでは解説いたしません

インストール

macOS

homebrewが使える環境なら以下のコマンド一発で入ります。

brew install neovim/neovim/neovim

MacPortsをお使いの方はそっちでも入るそうです

sudo port install neovim

Pythonに依存したプラグインなどが使いたければpython3を導入し、

sudo pip3 install neovim

を実行しましょう

Ubuntu16.04

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt-get update
sudo apt-get install neovim

Pythonに依存したプラグインなどを入れたいのであれば、以下のパッケージもインストールしてください

sudo apt-get install python-dev python-pip python3-dev python3-pip
pip3 install neovim

古いバージョンのUbuntuや、他のOSでのインストール法が詳しければこちらに詳しく乗ってるのでこっちを見ましょう

vimの使い方がわからない人はvimtutorとかやればいいと思います。多分

設定

neovimの設定ファイルの場所はデフォルトの設定では~/.config/nvim/init.vimです。基本的にここに設定を書き込んでいくことになります。

TrueColor対応

あなたが使っているターミナルエミュレータがTrueColorに対応している場合

~/.config/nvim/init.vim
set termguicolors

を追記することにより、TrueColorでneovimを楽しむことが出来ます。:thumbsup: macOSではiTerm2のNightly BuildsがTrueColorに対応しています

行数表示

vimから来ましたって人はお決まり設定みたいな感じが強いのですが

~/.config/nvim/init.vim
set number

を追記することにより、行数を表示できます

クリップボードの共有

macOSであれば

~/.config/nvim/init.vim
set clipboard=unnamed

を追記することにより、vimのyankとmacOSのクリップボードを同じにできます

その他の設定に関しては、vimがnormalモードの状態で:help option-listを実行するか、quickref - Vim日本語ドキュメントに詳しく載っていますので、お好みの設定を各自で追記すると良いでしょう。

:ok_woman: プラグイン :ok_woman:

メインの開発環境で使っていくにするなら、入力補完強くしたりとか括弧の対応強くしたりだとかしたいですよね。プラグインを導入することによりいろいろな機能を拡張することが出来ます。

プラグインマネージャ

いろいろな選択肢があります。ただし、NeoBundle

Note: Active developement on NeoBundle has stopped. The only future changes will be bug fixes.
Please see Dein.vim -- A faster, well-tested plugin manager for Vim and Neovim. It can do everything NeoBundle does, including asynchronous installs.

とリポジトリのREADMEに書いてある通り、開発が終わっているので非推奨です。
もちろん、プラグインマネージャなしでもプラグインを導入することは可能ですが、増えてくると流石に管理がしんどいのでここでは導入を推奨します

Shougo/dein.vim

先程ちょろっと話に出てきたNeoBundleの作者が後継で作っているプラグインマネージャです。
NeoBundleより早く動き、シンプルな設計、neovimやvim8の非同期APIをサポートしていることが特徴です。
また、設定をいじればtomlを書くことでプラグインを管理したりすることができます:star:

導入方法

以下のコマンドを実行

curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
sh ./installer.sh {インストール先ディレクトリ}

以下をinit.vimに記述

~/.config/nvim/init.vim
if &compatible
  set nocompatible
endif
set runtimepath+={先程指定したdein.vimのインストールディレクトリ}

call dein#begin(expand("~/.cache/dein"))

call dein#add('インストールしたいGitHubリポジトリの作者/リポジトリ名')
if dein#check_install()
  call dein#install()
endif
call dein#end()

記述した後Neovimを起動すると、設定ファイルが読み込まれた際にインストールすべきプラグインがあるかのチェックが走り、ある場合はインストール処理が走ります。
もちろんですが、新たにプラグインを追加したい場合は、...の場所にcall dein#add()を追加していけばOKです。

junegunn/vim-plug

小さくてシンプルなパッケージマネージャらしいです。使ったことないので紹介だけにします。

独断と偏見による良かったプラグイン

Shougo/deoplete.nvim

Python3に依存しているため、python3とpython3用のneovimのライブラリが必要になります

Neovimの非同期APIを用いて自動補完を使えるようになるプラグインです
各言語でメソッド名や変数の情報などを詳しく表示するプラグインを導入することで、それなりに強力な補完を手に入れることができます

GitHubでdeoplete-でリポジトリ名を検索すると色々ヒットする

neomake/neomake

こちらは非同期APIを用いてLintを書けたり、makeしたり、外部コマンドを実行できるプラグインです

cohama/lexima.vim

括弧の補完をいい感じにしてくれるやつです。

flazz/vim-colorschemes

入れるとたくさんのカラースキーマが入ってきます。お好みのを選んで使いましょう
ちなみにカラースキーマの指定は

colorscheme 使いたいカラースキーマの名前

でできます

終わりに

まだまだ色々と紹介したい機能やプラグインなどはあるのですが、本業が生徒なのと、レポートを出さないと留年確定してしまうという悲しい状況に立たされているのでこれくらいで終わります。つらい。