🐷

Raspberry Pi OS+neovim 0.8.2+プラグインマネージャー(dein.vim)

2023/02/18に公開

Rustの勉強にneovimを使用してみることにしたのですが標準パッケージでは結構古いことが判明(ver 0.4.4-01)
プラグインをインストールするにはなるべく新しいバージョンにした方がいいらしいので標準のパッケージは使用しないことにしてみました。

neovimインストール

何通りか試した結果です、結果的にはsnap版を使用しています

debianパッケージ(失敗)

githubからLatest版のdebianパッケージを入手

$wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb
sudo apt install ./nvim-linux64.deb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
注意、'./nvim-linux64.deb' の代わりに 'neovim:amd64' を選択します
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 neovim:amd64 : 依存: libc6:amd64 (>= 2.29) しかし、インストールすることができません
                依存: libgcc-s1:amd64 (>= 3.3) しかし、インストールすることができません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります

Tarball(失敗)

wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz
tar xzvf nvim-linux64.tar.gz
sudo mv nvim-linux64/bin/nvim /usr/local/bin

which nvim
/usr/local/bin/nvim
hoto@rust-dev:~ $ nvim
-bash: /usr/local/bin/nvim: バイナリファイルを実行できません: 実行形式エラー

SNAP版

検索しているsnapパッケージで公開されているneovimが使用できることが判明
snapパッケージを扱うためにsnapdをインストールしてからneovimをインストールしました

$sudo apt -y install snapd
$sudo snap install nvim --classic

.profileにパス追加とエリアス設定

snapでインストールしたneovimは/snap/bin/にインストールされるので.profileにパスを追加してついでにvimでneovimが起動する様にエリアスを設定

PATH=/snap/bin:$PATH
alias vim='nvim'

.profileを読み込み直してvimを入力

source ~/.profile
vim


無事、0.8.2を使えるようになりました。

プラグインマネージャーインストール(dein.vim)

多数の便利なプラグインを使用するには標準のプラグイン管理より他のプラグインマネージャーがおすすめらしいのですが色々種類があり悩みました。
最初は管理方法がシンプルらしいvim-jetpackをインストールしてみたものの使い方がよくわからずいったん削除

dein.vimプラグインマナージャーインストール

インストール方法を紹介されているサイトを見ながら試してみたのですがUrlが変更になっていたりインストーラースクリプト(installer.sh)の仕組みやinit.vimに記述スクリプトも変わっているようで結局公式サイトのCommand line installationを手順にしました。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Shougo/dein-installer.vim/master/installer.sh)"

installer.shが実行されるとlocationとconfig locationを聞かれました

[ DEIN.VIM LOCATION ] 

1 cache path (~/.cache/dein)
2 local path (~/.local/share/dein)

Select dein.vim location to clone with git (eg. 1 or 2)
1

[ CONFIG LOCATION ] 

1 vim path (~/.vimrc)
2 neovim path (~/.config/nvim/init.vim)

Select your editor config location (eg. 1 or 2)

2

Cloning Dein.vim into '/home/hoto/.cache/dein/repos/github.com/Shougo/dein.vim'...
remote: Enumerating objects: 70, done.
remote: Counting objects: 100% (70/70), done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 70 (delta 2), reused 36 (delta 0), pack-reused 0
Unpacking objects: 100% (70/70), 80.44 KiB | 496.00 KiB/s, done.
From https://github.com/Shougo/dein.vim
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
Looking for an existing 'init.vim' config...
Found init.vim. Creating backup in '/home/hoto/.config/nvim/init.vim.pre-dein-vim'...
Using the Dein.vim config example and adding it to '/home/hoto/.config/nvim/init.vim'...
_______________________________________________________________

 #######  ######## ### ###  ###       ###  ### ### ###########
 ##!  ### ##!      ##! ##!#!###       ##!  ### ##! ##! ##! ##!
 #!#  !#! #!!!:!   !!# #!##!!#!       #!#  !#! !!# #!! !#! #!#
 !!:  !!! !!:      !!: !!:  !!!        !:..:!  !!: !!:     !!:
 ::::::   :::::::: ::: :::   ::   ::     ::    ::: :::     :::

              by Shougo • MIT License • v3.0
_______________________________________________________________

All done. Look at your init.vim file to set plugins, themes, and more.

● Documentation: /home/hoto/.cache/dein/repos/github.com/Shougo/dein.vim/doc/dein.txt 
● Chat with the community: https://gitter.im/Shougo/dein.vim 
● Report issues: https://github.com/Shougo/dein.vim/issues

インストールを説明されているサイトでよく指定されているlocationは~/.cache/deinだったのでそれにならい1を選択config locationはneovimを使用しているので2を選択しました。

dein.vimの設定

ここが何気にはまったところで設定はdein.vimというファイルに設定するのかinit.vimファイルに設定するのか混乱して手間取りました。dein.vimというファイルではなくdein.vimはプラグインマネージャーそのものでdein.vimプラグインマネージャーの必要な設定をinit.vimファイルに設定するという理解までが大変でした。
さらに説明されているサイトでは必要な設定(スクリプト)は手動でペーストする手順が多くみられましたが自動的にinit.vim書き換わりました。もとのinit.vimファイルは同じディレクトリ上にinit.vim.pre-dein-vimという名前でリネームされバックアップされたので元の設定を新しく作成されたinit.vimに追記しました。

プラグインお試し使用

使用するプラグインが増えてくるとinit.vimにどんどん追記することになるので外部ファイルに(toml形式)するのが良さそうなのですが試しに直接書き足してみました。
追加してみたプラグインはフォルダやファイルをツリー表示させるプラグインです。

init.vim抜粋

" Your plugins go here:
"call dein#add('Shougo/neosnippet.vim')
"call dein#add('Shougo/neosnippet-snippets')
call dein#add('preservim/nerdtree') # ⇐ プラグインを追加するために追記
nnoremap <C-t> :NERDTreeToggle<CR> # ⇐ 今回はプラグインをCtrl+tで呼び出すための設定を追加

ifからendifまでのコメントを外す
"If you want to install not installed plugins on startup.
if dein#check_install() 
  call dein#install()  
endif

nvimを起動しCtrl+tを押してみると無事ツリー表示しました

なんとかプラグインも使えるところまで。

Discussion