Neovimセットアップ Windows用
モチベーション
- LeetCodeやAtCoderなど競プロでPythonを使いたい。
- 色々エディターを試して個人開発にはVimが効率良い、最近Neovimが気になる。
- このブログにも使っているinkdropの作者様のYouTubeがとてもかっこよかった
ターミナルとPower shellのインストール
Microsoft Storeでそれぞれインストールしておく。
Neovimのインストール
Scoopとは Windowsで動作するパッケージ管理ソフトのこと。 gitなどのツールやプログラミング言語など インストーラー使ったり.zip解凍して環境変数の設定をしなくてもコマンド一発で使えるようになるメリットがある。
Scoopがない場合は公式の手順に沿って入れておく。 https://scoop.sh/
set-executionpolicy remotesigned -scope currentuser
irm get.scoop.sh | iex
Scoopでパッケージをインストール
- git
- neovim
- nvm
- yarn
- python
pip3(Pip Installs Packages)でneovimをインストール
nodeはのちのにyarnが必要になるためついでに入れておく。
scoop install git neovim nvm yarn python
pip3 install neovim
nvm install latest
nvm use latest
node -v
nodeとyarnの環境変数を通す
PS> $env:Path += ";%USERPROFILE%\scoop\apps\nvm\current\nodejs\nodejs;%USERPROFILE%\scoop\apps\yarn\current\bin"
PS> [Environment]::SetEnvironmentVariable('PATH', $Env:Path, 'User')
設定ファイル init.vim
Vimでは.vimrcに設定内容を記述するがNeovimではinit.vimに設定内容を記述する。
init.vimについて
Neovimをインストールしただけではinit.vimは存在しないため自分で作る必要がある、
Localにnvimディレクトリを作成し、init.vimファイルを作成する。
C:\Users\${USER_NAME}\AppData\Local\nvim\init.vim
基本設定の一例はこちら
set encoding=utf-8
set fileencodings=utf-8,cp932
set number
set showcmd
set splitbelow
set splitright
set noequalalways
set wildmenu
set smartindent
set noundofile
set noswapfile
set ruler
set cursorline
set expandtab
set tabstop=4
set shiftwidth=4
プラグイン
init.vimでプラグインを簡単に読み込ませることができるvim-plugをインストールする。
>https://github.com/junegunn/vim-plug
PS> iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force
プラグイン各種のインストールは仕組みを理解するためにあえてgitを使用して
※ディレクトリ名をpluginとするとエラーになったのでpluginsやpluggedなどとすること
mkdir C:\Users\${USER_NAME}\AppData\Local\nvim\plugins
git clone https://github.com/vim-airline/vim-airline-themes
git clone https://github.com/vim-airline/vim-airline
git clone https://github.com/preservim/nerdtree.git
git clone https://github.com/ryanoasis/vim-devicons
git clone https://github.com/pepo-le/win-ime-con.nvim.git
call plug#begin('C:\Users\${USER_NAME}\AppData\Local\nvim\plugins')
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'tpope/vim-commentary'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'preservim/nerdtree'
Plug 'ryanoasis/vim-devicons'
Plug 'pepo-le/win-ime-con.nvim'
call plug#end()
" NERDTree SETTINGS
nmap <C-f> :NERDTreeToggle<CR>
" Airline SETTINGS
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
nmap <C-p> <Plug>AirlineSelectPrevTab
nmap <C-n> <Plug>AirlineSelectNextTab
set encoding=UTF-8
set fileencodings=UTF-8,cp932
set number
set showcmd
set splitbelow
set splitright
set noequalalways
set wildmenu
set smartindent
set noundofile
set noswapfile
set ruler
set cursorline
set expandtab
set tabstop=4
set shiftwidth=4
エラー発生
coc nvim build/index.js not found~のエラーが出る。 ファイルの不足によるものと考えられる。yarn installしろと怒られているため
// プラグインのディレクトリでyarn install
PS> cd C:\Users\devil-code\AppData\Local\nvim\plugins\coc.nvim
PS> yarn install
これで解決できた。
プラグインのインストールは実はわざわざgit cloneしなくてもよい
vim-plugの恩恵であるPlugInstallコマンドを打てば、call plugの記述内で不足しているプラグインを適切にインストールしてくれる。
:PlugInstall
さいごに:フォントでハマったこと
nerd-fontsのフォントをインストールして使うこともできる。
>https://github.com/ryanoasis/nerd-fonts/
しかし、vim-airlineと合わない場合、アイコン部分が化けてしまう。そのため文字化けしないfontを選択する必要がある。 これを解決するのに時間がかかってしまった。もし化けてしまったらこれを疑ってみる。 せっかくかっこいい&醍醐味のアイコンが出ないと悲しい。