2019-08-04-21-36-05

Neovimをはじめて使ってみる

2019年08月03日

Visual Studio Codeを使ってきて環境をまたいで使えるエディタの良さに気付いたのですが、VSCはちょっと重たいのでもうちょっと軽めのエディタもほしい。
どこのプラットフォームでも動くエディタといえばEmacsかVimですが、今回はVim教に入信することにしました。今からだとNeovimのほうがよさそうな気がしたのでNeovimを使うことにします。

導入

Windows

Chocolateyを使います。

choco install neovim

C:\tools\neovim\Neovim\bin\nvim-qt.exe がGUI版の実行ファイルになります。

Arch Linux

communityリポジトリに入っています。

sudo pacman -S neovim neovim-qt

Ubuntu

upstreamが供給しているPPAがあります。

sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt update && sudo apt install neovim

macOS

homebrewに入っています。

brew install neovim

設定

Windowsでは%UserProfile%\AppData\Local\nvimの下に、UNIXでは~/.config/nvimの下にinit.vimとginit.vimを置きます。init.vimは全体的な設定、ginit.vimにはGUI版が起動する時にのみ適用する設定を書きます。

設定ファイルの書き方自体はVimと一緒です。探せば「とりあえずこれをコピペしておけ」というような基本的な設定が見つかると思います。

プラグイン

Vimは拡張性に優れたテキストエディタです。軽めのエディタがほしいということであまりカリカリにカスタムするつもりはないのですが、そうは言っても良いエコシステムがあるのにプラグインを使わないのはもったいない。ということでプラグインも使ってみることにします。

プラグインをインストールしたり管理するには、プラグインマネージャを使うのがよいとされています。今回はdein.vimを試してみます。

Shougo/dein.vim: Dark powered Vim/Neovim plugin manager

Windowsではインストール用のシェルスクリプトは当然動かないので、手動でインストールします。GitとPython3が必要なので、事前にインストールしておきます。インストール先は~/.cache以下にします。

> mkdir -p ~/.cache/dein/repos/github.com/Shougo
> git clone https://github.com/Shougo/dein.vim ~/.cache/dein/repos/github.com/Shougo/dein.vim

init.vimの頭とかにこれを追記しておきます。

" dein.vim
if &compatible
  set nocompatible
endif
" Add the dein installation directory into runtimepath
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim
 
if dein#load_state('~/.cache/dein')
  call dein#begin('~/.cache/dein')
 
  call dein#add('~/.cache/dein/repos/github.com/Shougo/dein.vim')
  call dein#add('Shougo/deoplete.nvim')
  if !has('nvim')
    call dein#add('roxma/nvim-yarp')
    call dein#add('roxma/vim-hug-neovim-rpc')
  endif
  " ここに使いたいプラグインを書いておく
  call dein#add('tomasr/molokai')
  call dein#add('dracula/vim')
  call dein#add('vim-airline/vim-airline')
  call dein#add('vim-airline/vim-airline-themes')
 
  call dein#end()
  call dein#save_state()
endif
 
filetype plugin indent on
syntax enable

dein.vimの初回インストール時と、プラグインを追加した時にはコマンドモードで:call dein#install()を走らせておきます。

今回はカラースキームとAirlineを導入しました。色がいい感じになってステータスラインがいけてる感じになります。
カラースキームはginit.vimに設定を書いて有効にしておきます。ついでにPowerline対応フォントも。

Guifont Cica:h12
set background="dark"
colorscheme molokai

キーバインドに慣れる

Vim Cheat Sheet にもありますが、個人的に厳選したものを以下にまとめておきます。ウィンドウ分割以外を覚えておけば、普通のテキストエディタでできるような編集で困ることはないと思います。

移動

h - 左に移動
j - 下に移動
k - 上に移動
l - 右に移動
5j - 5行下に移動(同様の操作が上下左右すべてで可能)
w - 単語の先頭にジャンプ
e - 単語の最後にジャンプ
^ - 行頭にジャンプ
$ - 行末にジャンプ
Ctrl+d - 1/2画面ぶん下に移動
Ctrl+u - 1/2画面ぶん上に移動

テキスト編集

i - 挿入モードに入る
Esc or Shift+[ - ノーマルモードに入る
v - ビジュアルモードに入る
u - アンドゥ
Ctrl+r - リドゥ
y - (ビジュアルモードに入って文字を選択した状態で)ヤンク
d - (ビジュアルモードに入って文字を選択した状態で)カット
yy - 現在の行をヤンク
dd - 現在の行をカット
5yy - 現在の行から5行下までをヤンク(同様の操作はカットでも可能)
p - ペースト

保存と終了

:w - 保存
:q - 終了(保存していない場合終了できない)
:q! - 保存せずに終了

検索と置換

/{検索する文字列} - 下方向に検索
?{検索する文字列} - 上方向に検索
n - 同じ方向に再検索
N - 逆方向に再検索
:%s/置き換える元の文字列/置き換えた後の文字列/gc - 置換(確認あり)
:%s/置き換える元の文字列/置き換えた後の文字列/g - すべて置換

ウィンドウの分割

Ctrl+w s - ウィンドウを水平に分割
Ctrl+w v - ウィンドウを垂直に分割
Ctrl+w w - ウィンドウを切り替え
Ctrl+w q - 分割したウィンドウを閉じる

Windowsの右クリックメニューに「Neovimで開く」を追加する

これはNeovimに限ったことではないのですが、\HKEY_CLASSES_ROOT\*\shell 以下にキーを作るとファイルをNeovimで開くためのメニューを作れます。便利。

2019-08-04-22-47-16