1. Windows上でNeovim始めます

Linux上でvimを使用しています。WindowsでもWSL上でvimを使用しています。

ただなんとなくですがWindows上でNeovimを使ってみたくなりました。どれほどのメリットがあるかは分かりませんがやってみたくなってしまったのです。

とはいえセッティングは大変だなあと感じて腰が引けている自分もいます。

vimのセッティングも詳しくはなく必要に応じて調べてコピペして対応していく程度のスキルしかないのでNeovimのセッティングを通してvimの理解を深めることができればいいなあという思いもあります。

ゆっくりと少しずつ進めていきます。

2. インストール

配布されているバイナリをダウンロードしてくるだけです。簡単ですね。

3. init.vim

まずはじめに困惑したのがinit.vimの場所がどこなのか?ということです。

neovim上のコマンドで場所を確認する方法があるだろうと思って調べて見たのですがそのようなコマンドを見つけることができませんでした。

windowsでのinit.vimの場所は決まっているようです。

3.1. PATHの確認 :help init.vim

PATHを直接確認できるコマンドはわかりませでしたが、ヘルプで確認することができます。

vim command
:help init.vim
vim output
The config file is located at:
Unix            ~/.config/nvim/init.vim     (or init.lua)
Windows         ~/AppData/Local/nvim/init.vim   (or init.lua)
|$XDG_CONFIG_HOME|  $XDG_CONFIG_HOME/nvim/init.vim  (or init.lua)

Windowsの場合は ~/AppData/Local/nvim/init.vim です。

3.2. init.vimを作成する。

Linuxならコマンドで簡単にファイルを作成できるのですがWindowsの場合はコマンド操作に慣れていないので困ります。

powershellでファイルを作成します。

power shell terminal
mkdir ~\AppData\Local\nvim && New-Item -Path ~\AppData\Local\nvim\init.vim -Type File

個のコマンドでファイルを作成できます。

正直コマンドのタイプ数が多すぎて大変です。コピペで対応しましょう。

3.3. $MYVIMRC

init.vimを作成したあとは$MYVIMRCでinit.vimのパスを確認できるようになります。

ファイルを作成する前は確認できません。

vim command
:echo $MYVIMRC

init.vimを編集したい場合はこのようになります。

vim command
:e $MYVIMRC

4. jj入力によるESC

insertモードから抜けるとときにjjと入力することでESCでnormalモードに戻れるようにしています。

この操作は体に染み付いているので設定しないと思い通りに操作することができません。

init.vimで設定します。

init.vim
inoremap <silent> jj <ESC>

5. clipboardの共有

windowsとclipboardを共有することで生産性が瀑上がりします。

init.vimで設定します。

init.vim
set clipboard=unnamed

6. フォントの設定

neovim-qt実行時に文字が小さくて読めません。大きいフォントサイズを設定します。

6.1. set guifont=* で設定可能なフォントを確認する

設定可能なフォントを確認します。

下記のコマンドでフォント設定のダイアログボックスを表示することができます。

neovim-qt
set guifont=*

ダイアログボックスでフォントを設定します。

6.2. フォントの設定内容を確認する

ダイアログボックスの設定では一時的なものなのでinit.vimでフォントを設定して永続的にしたい。

そのまえに現状のフォント設定を確認します。

neovim-qt
set guifont

私がダイアログボックスで設定した内容を確認できます。

neovim-qt output
guifont=BIZ UDゴシック:h16:b

6.3. init.vimでフォント設定する

あとはinit.vimでフォントを設定するだけです。

注意点はスペースの前は\\でエスケープすることです。

init.vim
set guifont=BIZ\ UDゴシック:h16:b

7. terminalのshellをpowershellに設定する

私はvim上のterminalが好きで良く使用します。

Windowsのデフォルトだとコマンドプロンプトで使いにくいのでPowerShellに変更します。

本当はBashが良いのですがセットアップが面倒そうなのでいまのところはPowerShellで妥協します。

msys2などを導入してbashを使用する方法は後で試してみたいと考えています。

init.vim
set shell=pwsh.exe

8. pythonのセットアップ

neovimではPythonを使用してPlugin開発などができるようです。

Pluginを開発するような技術がないので関係ないような気がしていたのですが一人のユーザとしても影響があります。

プラグインをインストールしたときにエラーが発生することがあったのです。そのプラグインを使用するためにはpython環境をセッティングが必要でした。

8.1. :checkhealthでPython環境の状況を確認する

:checkhealthでPython環境が使用可能か確認できます。

セッティングしないでチェックすると下記のようなWARNINGが出力されました。

neovim output
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - WARNING: Could not load Python 3:

8.2. venvで仮想環境を構築して使用する場合の設定方法

pythonの仮想環境を構築した場合にneovimでactivateすることができるのだろうか?と疑問がありました。

試してみてactivateは設定する必要がなくinit.vimでpythonのパスを指定するだけで環境を構築できました。

8.3. 仮想環境の構築

$HOMEで.baseという仮想環境を構築しました。

PowerShell terminal
python -m venv .base

8.4. 仮想環境のactivate

PowerShellで実行するので慣れていないので大変です。

Activate.ps1を実行します。

PowerShell terminal
~\.base\Scripts\Activate.ps1

8.5. pynvimのインストール

pipでpynvimをインストールします。

PowerShell terminal
pip install pynvim

pynvimのインストールの環境です。

8.6. init.vimでpython環境の設定

init.vimでpython実行ファイルを指定します。

仮想環境のpython.exeを指定します。

init.vim
let g:python3_host_prog = '$HOME\.base\Scripts\python.exe'

これでpython環境が構築できました。

8.7. checkhealthで確認

最後にチェックします。

neovim input
:checkhealth
neovim output
## Python 3 provider (optional)
  - INFO: Using: g:python3_host_prog = "$HOME\.base\Scripts\python.exe"
  - INFO: Executable: $HOME\.base\Scripts\python.exe
  - INFO: Python version: 3.10.4
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

pythonとpynvimが設定できたことが確認できました。

9. Vundleの設定

プラグインマネージャは色々ありますが私はVundleを使用しています。

でもUbuntu上でVundleの設定したことはあるのですがWindowsでは初めてです。

どのディレクトリにインストールすれば良いのか少しだけ悩みました。

9.1. PATHの設定

重要なのはPATHの設定です。

  1. runtime path

  2. プラグインインストール先のpath

この2つをinit.vimで設定します。

9.2. runtime path

Vundle.vimの場所を指定します。

私の設定です。

init.vim
set rtp+=~\AppData\Local\nvim\bundle\Vundle.vim

場所をどこにするかは悩みましたがinit.vimの場所と同じところにしました。

9.3. プラグインインストール先のpath

私の設定です。

init.vim
call vundle#begin('~\AppData\Local\nvim\bundle')

9.4. あとはVundleのマニュアルに従うだけ

インストール先のPATHの設定ができればあとはマニュアルに従うだけです。