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を直接確認できるコマンドはわかりませでしたが、ヘルプで確認することができます。
:help init.vim
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でファイルを作成します。
mkdir ~\AppData\Local\nvim && New-Item -Path ~\AppData\Local\nvim\init.vim -Type File
個のコマンドでファイルを作成できます。
正直コマンドのタイプ数が多すぎて大変です。コピペで対応しましょう。
3.3. $MYVIMRC
init.vimを作成したあとは$MYVIMRCでinit.vimのパスを確認できるようになります。
ファイルを作成する前は確認できません。
:echo $MYVIMRC
init.vimを編集したい場合はこのようになります。
:e $MYVIMRC
4. jj入力によるESC
insertモードから抜けるとときにjjと入力することでESCでnormalモードに戻れるようにしています。
この操作は体に染み付いているので設定しないと思い通りに操作することができません。
init.vimで設定します。
inoremap <silent> jj <ESC>
5. clipboardの共有
windowsとclipboardを共有することで生産性が瀑上がりします。
init.vimで設定します。
set clipboard=unnamed
6. フォントの設定
neovim-qt実行時に文字が小さくて読めません。大きいフォントサイズを設定します。
6.1. set guifont=* で設定可能なフォントを確認する
設定可能なフォントを確認します。
下記のコマンドでフォント設定のダイアログボックスを表示することができます。
set guifont=*
ダイアログボックスでフォントを設定します。
6.2. フォントの設定内容を確認する
ダイアログボックスの設定では一時的なものなのでinit.vimでフォントを設定して永続的にしたい。
そのまえに現状のフォント設定を確認します。
set guifont
私がダイアログボックスで設定した内容を確認できます。
guifont=BIZ UDゴシック:h16:b
6.3. init.vimでフォント設定する
あとはinit.vimでフォントを設定するだけです。
注意点はスペースの前は\\でエスケープすることです。
set guifont=BIZ\ UDゴシック:h16:b
7. terminalのshellをpowershellに設定する
私はvim上のterminalが好きで良く使用します。
Windowsのデフォルトだとコマンドプロンプトで使いにくいのでPowerShellに変更します。
本当はBashが良いのですがセットアップが面倒そうなのでいまのところはPowerShellで妥協します。
msys2などを導入してbashを使用する方法は後で試してみたいと考えています。
set shell=pwsh.exe
8. pythonのセットアップ
neovimではPythonを使用してPlugin開発などができるようです。
Pluginを開発するような技術がないので関係ないような気がしていたのですが一人のユーザとしても影響があります。
プラグインをインストールしたときにエラーが発生することがあったのです。そのプラグインを使用するためにはpython環境をセッティングが必要でした。
8.1. :checkhealthでPython環境の状況を確認する
:checkhealthでPython環境が使用可能か確認できます。
セッティングしないでチェックすると下記のようなWARNINGが出力されました。
- 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という仮想環境を構築しました。
python -m venv .base
8.4. 仮想環境のactivate
PowerShellで実行するので慣れていないので大変です。
Activate.ps1を実行します。
~\.base\Scripts\Activate.ps1
8.5. pynvimのインストール
pipでpynvimをインストールします。
pip install pynvim
pynvimのインストールの環境です。
8.6. init.vimでpython環境の設定
init.vimでpython実行ファイルを指定します。
仮想環境のpython.exeを指定します。
let g:python3_host_prog = '$HOME\.base\Scripts\python.exe'
これでpython環境が構築できました。
8.7. checkhealthで確認
最後にチェックします。
:checkhealth
## 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の設定です。
-
runtime path
-
プラグインインストール先のpath
この2つをinit.vimで設定します。
9.2. runtime path
Vundle.vimの場所を指定します。
私の設定です。
set rtp+=~\AppData\Local\nvim\bundle\Vundle.vim
場所をどこにするかは悩みましたがinit.vimの場所と同じところにしました。
9.3. プラグインインストール先のpath
私の設定です。
call vundle#begin('~\AppData\Local\nvim\bundle')
9.4. あとはVundleのマニュアルに従うだけ
インストール先のPATHの設定ができればあとはマニュアルに従うだけです。