3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

deoplete.nvim から ddc.vim に乗り換えてみた。

Posted at

はじめに

nvimを使い始めて一年ほど、deoplete の後継プラグインが出たということで、さっそく試してみた。

ddc.vim とは

暗黒美夢王ことShougoさんが作成した vim, neovim の自動補完プラグイン。
deoplete.nvim の後継でneovim, vim 両対応、Python非依存、処理の高速化などの改良がされた。

新世代の自動補完プラグイン ddc.vim (https://zenn.dev/shougo/articles/ddc-vim-beta)

実行環境

  • Ubuntu 20.04.3 LTS (WSL2)
    • shell: zsh 5.8
  • Neovim v.0.6.1
    • プラグイン管理:vim-plug

手順

deopleteの無効化

便宜上コメントアウト

init.vim
call plug#begin('~/.local/share/nvim/plugged')
  "Plug 'shougo deoplete.nvim'
call plug#end()
"let g:deoplete#enable_at_startup = 1
:PlugClean

依存関係

denoのインストール

ddc はDeno と呼ばれるNodeJSに似た言語の環境が必要。
Ubuntu以外の環境 → denoland/deno_install

apt install unzip -y
curl -fssL https://deno.land/install.sh | sh

Error: unzip is required to install Denoのようなエラーが出たら
apt install unzip -yでunzip をインストールする

.zshrc
export DENO_INSTALL="/home/$USER/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"

シェルがbashならbashrc

source ~/.zshrc
deno -V

nvim のアップデート

ddc はneovim のv0.5以上が必要。
記事執筆時点では通常のapt installではそれに満たなかったため、PPTを用いた。
https://github.com/neovim/neovim/wiki/Installing-Neovim#ubuntu

sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt update
sudo apt update neovim
nvim -v
>> NVIM v0.6.1

ddcと関係するプラグインの導入

README に従って、source や filter などの設定を書き込む
これでとりあえず動く。キーバインドなどは省略。
Shougo/ddc.vim

init.vim
call plug#begin('~/.local/share/nvim/plugged')
  Plug 'Shougo/ddc.vim'
  Plug 'vim-denops/denops.vim'
  Plug 'Shougo/ddc-around' " sources
  Plug 'Shougo/ddc-matcher_head' " filters
  Plug 'Shougo/ddc-sorter_rank' " filters
call plug#end()

" Use around source.
call ddc#custom#patch_global('sources', ['around'])

" Use matcher_head and sorter_rank.
call ddc#custom#patch_global('sourceOptions', {
      \ '_': {
      \   'matchers': ['matcher_head'],
      \   'sorters': ['sorter_rank']},
      \ })
" Use ddc
call ddc#enable()

LSPの導入

neovim のv0.5 以降にはLSPクライアントが入っているのでそれを使ってみる。
ddc-nvim-lsp のREADME に従って設定を記述した。
Shougo/ddc-nvim-lsp

init.vim
call plug#begin('~/.local/share/nvim/plugged')
  "Plug 'lighttiger2505/deoplete-vim-lsp'
  "Plug 'prabirshrestha/vim-lsp'
  "Plug 'mattn/vim-lsp-settings'
  Plug 'neovim/nvim-lspconfig'
  Plug 'Shougo/ddc-nvim-lsp'
call plug#end()
call ddc#custom#patch_global('sources', ['nvim-lsp'])
call ddc#custom#patch_global('sourceOptions', {
      \ '_': { 'matchers': ['matcher_head'] },
      \ 'nvim-lsp': {
      \   'mark': 'lsp',
      \   'forceCompletionPattern': '\.\w*|:\w*|->\w*' },
      \ })

以前はvim-lsp を使用していたため、適宜無効化しておく。
vim-lsp が nvim-lsp(builtin)、nvim-lspconfig が vim-lsp-settings に相当するのかな
language server を使用するには別途記述が必要。nvim-lspconfig のREADMEを参照。
neovim/nvim-lspconfig

終わりに

deoplete の時と遜色なく動く。python 非依存なので再構築の時楽になると思う。(pyenv-virtualenvとか使ってた人)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?