Open6
Vimプラグイン見直し(neovim)
プラグイン管理 dein.vim
deinインストール後は以下スクリプトをinit.vim(neovim)やら.vimrc(本家vim)に突っ込んでおいてね、とのことなので一旦入れておく。
"dein Scripts-----------------------------
if &compatible
set nocompatible " Be iMproved
endif
" Required:
set runtimepath+=/home/ここ自分のユーザ名/.cache/dein/.//repos/github.com/Shougo/dein.vim
" Required:
call dein#begin('/home/ここ自分のユーザ名/.cache/dein/./')
" Let dein manage dein
" Required:
call dein#add('/home/ここ自分のユーザ名/.cache/dein/.//repos/github.com/Shougo/dein.vim')
" Add or remove your plugins here like this:
"call dein#add('Shougo/neosnippet.vim')
"call dein#add('Shougo/neosnippet-snippets')
" Required:
call dein#end()
" Required:
filetype plugin indent on
syntax enable
" If you want to install not installed plugins on startup.
"if dein#check_install()
" call dein#install()
"endif
"End dein Scripts-------------------------
ただこれだとわりと生pathがべろっと載っていて野暮ったい。ので改修
ここいる?
if &compatible
set nocompatible
endif
ざっくりいうと、いにしえのviとの互換を断ち切ることを明示的に書くものらしい
neovimはもうデフォでいらないような気がするのでそもそも書かなくてよさそう
参考:
set runtimepath+= ほげぴよ
deinのプラグイン置き場をvimに認識させるもの。とくに思想がなければ ~/.cache/dein
あたり追加するでよさそうか
複数回読まれてるプラグインがありそう。重複の解消もやってく
[dein] Plugin name "dein.vim" is already defined.
[dein] Plugin name "vim-vue" is already defined.
[dein] Plugin name "neosnippet-snippets" is already defined.
参考URL
neovimとVim本流の違い、VimScriptの遅さとv0.5から導入されたLuaランタイムの優位性などの話
現在のvim界隈概観把握メモ
-
プラグイン界隈の動向
- 現状VimScriptの速度に限界があるわけだが、Vim本体ではVimScriptの高速化の動き、NeoVimではLuaでかけるようにする、などそれぞれの道をたどり始めている。
- ddcについてはdeopleteではPythonだったものを、Vim本体やNeoVimの中間をとって、denops.vimというDenoでかけるものを使用して実装、Vim/NeoVimとも対応するという選択をとっている様子。
-
補完関係のプラグイン
- deoplete は開発終了なのでddc.vimが選択肢に
- ddcは補完に徹しているのでその他のものをゴリゴリ選定する必要はある
- あとDenoのインストールは当然必要
- 前提としてdenops.vimが必要
-
fuzzy finder系
- denite.nvim もShougoさんの動向としては ddu.vim に動いているのでそっちに移行したほうよさそう
-
ファイラ
- defx.nvim を入れてたが、ddu.vimとddu-ui-filerみてねってなってた。みる。
- https://github.com/Shougo/defx.nvim
-
TreeSitter (シンタックスハイライト)
- https://github.com/nvim-treesitter/nvim-treesitter
- NeoVim特有の話?っぽい。
- そもそもVimの構文解析はRegexらしく重たい
- Atomなんかもこれで解析してたらしい
- テキストオブジェクトとかに応用もできるっぽい
- neovimにtreesitterの機能自体は入っているが、利用には上記のプラグインの導入が必要
- 参考: https://www.soum.co.jp/misc/vim-advanced/6/
-
ColorScheme
- 上記TreeSitterのハイライトに対応したColorSchemeってのが必要になってくる
- 例: https://github.com/sainnhe/gruvbox-material
-
巷の例
- denopsで変わったinit.vim (アドベントカレンダ)
- https://zenn.dev/gamoutatsumi/articles/df6b424455e6fe
- ddcの補完ソースだのソートだのマッチングのこの方の選択例
- Neovimでのフロントエンド開発環境 2021
- https://zenn.dev/yano/articles/vim_frontend_development_2021
- 結構構成が網羅的に書かれてる記事。基本これ丸パクリで調整していきたい
- Vimプラグイン"の"カテゴリまとめ
- https://qiita.com/yutkat/items/f19b2a0a962a587db5cf
- まじでこういうのまってた。たすかる
- dein.toml hookについて
- https://qiita.com/delphinus/items/cd221a450fd23506e81a
- これもdein設定につかうhook_なんとか系の使い方のまとめなのでしこたま助かるやつ
- denopsで変わったinit.vim (アドベントカレンダ)
Shougoさんの記事で紹介されていたddcで対応してるsourceやらfilterのリスト。githubのトピック?で検索できるの頭いいとおもった(小並感)
結論というか方向性
- 補完についてはよしなにやってくれる coc.vim を使うか、ddc.vimで1から選んでいくかのどっちかになりそう。
- LSP楽して使いたいので、一旦coc.vimでお茶濁すか?という感じになっている。そこそこ速いみたいだし
- ddc.vimで行く場合、まだ途上な感じもあるのでもうちょい調べたい。Shougoさんのddcの記事であったddcの他に導入すべき
sources
,filters
がなにを指してるかわからない... (多分補完に使うマッチだのソートだののアルゴリズムとかを選べるというような話だという浅い理解)