何も変えたくなくて保守的に Vim を使い続けていたが、 Neovim に変えようと思う。
Neovim のインストール
brew install neovim
nvim コマンドで Neovim が使えるようになった
プラグインは使うので、公式に乗ってた以下のコマンドで vim-plug を入れる。(.local/share/nvim/site/autoload/plug.vim にファイルをダウンロードしてくるようだ。
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
さらに vim-plug のドキュメントには `stdpath('config') . '/init.vim' に設定を書けと書いてある。
この stdpath というのは vim スクリプトの関数なので、以下のように設定ファイルの場所を出力する
nvim -V1 -es -c "echo stdpath('config') . '/init.vim'" -cq
自分の環境だと ~/.config/nvim/init.vim
が設定のパスだった
mkdir -p ~/.config/nvim
nvim ~/.config/nvim/init.vim
で、以下のような設定を書く
call plug#begin()
Plug 'rust-lang/rust.vim'
call plug#end()
で、一回ファイルを閉じて開いて nvim 上で以下をする
:PlugInstall
で、 rust のファイルを開いてみる
ちゃんと rust.vim が動いて syntax ハイライトされていた
ということで、色々自分のいつもの設定を追加
"" general settings
set encoding=utf-8 " not necessary in unix env, but for windows env
set nu
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
set incsearch
set backspace=indent,eol,start
" escape for terminal mode
tnoremap <ESC> <c-\><c-n>
"" plugins
call plug#begin()
Plug 'vim-syntastic/syntastic'
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" rust
Plug 'rust-lang/rust.vim'
" python
Plug 'vim-scripts/indentpython.vim'
Plug 'nvie/vim-flake8'
" nu
Plug 'nvim-lua/plenary.nvim'
Plug 'jose-elias-alvarez/null-ls.nvim'
Plug 'LhKipp/nvim-nu', {'do': ':TSInstall nu'}
call plug#end()
"" plugin settings
lua require'nvim-treesitter.configs'.setup{highlight={enable=true}}
" bash
let g:is_posix = 1
let g:syntastic_sh_shellcheck_args="-x"
" nu
lua require'nu'.setup { }
何か設定が違うのか知らないが、 vim だと :! と実行すれば buffer が一時的に閉じてこれまでのコマンドの履歴などが見られたがそれができなくなっている。
今後は tabe | term ls -la
のようにコマンドを実行して、コマンドのログを見失いような習慣をつけないといけなさそう。
手ぐせで vim を使ってしまう対策として
ln -s ~/.config/nvim/init.vim .vimrc
として .vimrc を init.vim のリンクにしておいて .zshrc とかにも以下のように書いておく
alias vim=nvim