もた日記

くだらないことを真面目にやる

Vimメモ : Neovimで開発環境を段階的に構築する(2)プラグインマネージャーと見た目の変更

今回はプラグインをインストールして主に見た目の変更をしてみる。

プラグインマネージャー

プラグイン管理はプラグインマネージャーを利用するのがよく、有名なプラグインマネージャーとしては下記が挙げられる。

Repository スター数
VundleVim/Vundle.vim 20063
junegunn/vim-plug 15453
tpope/vim-pathogen 10966
Shougo/dein.vim 2348

※スター数は2019/07/29時点

今回はシンプルに記述できるvim-plugを使うので、下記コマンドでインストールする。

$ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

インストールが成功していればNeovimで:PlugInstall:PlugStatusといった:Plugで始まるコマンドが使えるようになっている。
プラグインのインストール方法は以下のようにinit.vimに記述して、:source %などで再読み込み後、:PlugInsutallを実行すればよい。

call plug#begin('~/.vim/plugged')
" ここにインストールしたいプラグインを記述
call plug#end()

カラースキーム

それではプラグインマネージャーを利用してonedarkというカラースキームをインストールしてみる。
他のカラースキームがよい場合は下記記事を参照。

wonderwall.hatenablog.com

init.vimPlug 'joshdick/onedark.vim'を追加して、再読み込み後に:PlugInstallを実行するとインストールが始まる。

call plug#begin('~/.vim/plugged')
Plug 'joshdick/onedark.vim'
call plug#end()

f:id:wonder-wall:20190728183933p:plain

そして、インストール完了後にinit.vimに下記カラースキームの設定を追加する。

colorscheme onedark

これでデフォルトのカラースキームから、

f:id:wonder-wall:20190728183955p:plain

onedarkカラースキームに変更できる。

f:id:wonder-wall:20190728184019p:plain

ステータスライン

次にステータスラインを変更してみるが有名なプラグインとしては下記が挙げられる。

Repository スター数
vim-airline/vim-airline 12526
powerline/powerline 10565
itchyny/lightline.vim 3839
liuchengxu/eleline.vim 149

lightline.vimをインストールするので、下記行を追加して:PlugInstallを実行する。

Plug 'itchyny/lightline.vim'

ステータスラインが変更されているが、デフォルトのカラースキームになっているので、

f:id:wonder-wall:20190728184155p:plain

let g:lightline = {'colorscheme': 'onedark'}

を追加してステータスラインのカラースキームを変更する。
onedarkはlightline.vimにも対応しているが、カラースキームによっては対応していないので注意。

f:id:wonder-wall:20190728184208p:plain

空白可視化

行末の無駄な空白を可視化するプラグインしてvim-better-whitespaceをインストールしてみる。

Repository スター数
ntpeters/vim-better-whitespace 844
bronson/vim-trailing-whitespace 342

init.vimに下記行を追加して:PlugInstallを実行する。

Plug 'ntpeters/vim-better-whitespace'

これで以下のように行末の無駄な空白が赤でハイライトされる。
また:StripWhitespaceというコマンドが使えるようになっており、実行すると空白を削除できる。

f:id:wonder-wall:20190728184237p:plain

インデント可視化

インデントを可視化するプラグインしてindentLineをインストールしてみる。

Repository スター数
Yggdroot/indentLine 2458
nathanaelkane/vim-indent-guides 2144

init.vimに下記行を追加して:PlugInstallを実行する。

Plug 'Yggdroot/indentLine'

インデントが可視化されていることが確認できる。

f:id:wonder-wall:20190728184225p:plain

ファイルエクスプローラー

netrwという標準の機能があるがファイルエクスプローラーとしては下記プラグインがある。

Repository スター数
scrooloose/nerdtree 11985
Shougo/vimfiler.vim 785
justinmk/vim-dirvish 607

NERDTreeが人気があるようなのでインストールしてみる(大規模なプロジェクトだと遅くなることがあるようなので軽量なvim-dirvishもよいらしい)。
なお、{ 'on': 'NERDTreeToggle' }はプラグインのオンデマンドなローディング。

Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }

インストール後に:NERDTreeToggleを実行すると以下のようにファイルエクスプローラーが表示される。

f:id:wonder-wall:20190728185216p:plain

ファイルエクスプローラーの操作方法は?を押して表示されるヘルプで確認できる。

f:id:wonder-wall:20190728185239p:plain

呼び出しやすいように以下のようなキーマッピングを設定しておくのがよい。

nmap <C-e> :NERDTreeToggle<CR>

タグ一覧表示

Repository スター数
majutsushi/tagbar 4142

現在のファイルのタグ一覧を表示できるtagbarをインストールしてみる。

Plug 'majutsushi/tagbar', { 'on': 'TagbarToggle' }

:TagbarToggleでタグ一覧を表示できるが、以下のようなエラーメッセージが表示された場合は、

Tagbar: Exuberant ctags not found!
Please download Exuberant Ctags from ctags.sourceforge.net and install it in a directory in your $PATH or set g:tagbar_ctags_bin.
Press ENTER or type command to continue

下記コマンドでctagsをインストールする。

sudo yum install ctags

f:id:wonder-wall:20190728185259p:plain

操作方法は?を押して表示されるヘルプで確認できる。

f:id:wonder-wall:20190728185314p:plain

同様にキーマッピングを設定しておくのがよいかも。

nmap <F8> :TagbarToggle<CR>

まとめ

今回の~/.config/nvim/init.vim

call plug#begin('~/.vim/plugged')
Plug 'joshdick/onedark.vim'
Plug 'itchyny/lightline.vim'
Plug 'ntpeters/vim-better-whitespace'
Plug 'Yggdroot/indentLine'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'majutsushi/tagbar', { 'on': 'TagbarToggle' }
call plug#end()

set number
set termguicolors

let g:python_host_prog = $HOME . '/.pyenv/versions/neovim2/bin/python'
let g:python3_host_prog = $HOME . '/.pyenv/versions/neovim3/bin/python'

" joshdick/onedark.vim
colorscheme onedark
" itchyny/lightline.vim
let g:lightline = {'colorscheme': 'onedark'}

" scrooloose/nerdtree
nmap <C-e> :NERDTreeToggle<CR>
" majutsushi/tagbar
nmap <F8> :TagbarToggle<CR>

実践Vim 思考のスピードで編集しよう! (アスキー書籍)

実践Vim 思考のスピードで編集しよう! (アスキー書籍)

wonderwall.hatenablog.com

wonderwall.hatenablog.com