NeoVim設定-コード補完機能追加 Deno, Dein.div, dcc.vim

NeoVimロゴ

通常はVSCodeを使用して作業を行っていますが、ラズベリーパイや軽微な修正などの場合にはNeoVimも活用したいと思っていました。そこで先日NeoVimに入門したこともあり、そのついでにNeoVimに機能を追加して、プログラミングの開発環境を作ってみることにしました。

目標

  • Pythonのコード補完機能の追加
  • プラグインを使ってみる

具体的には

以下をインストール、設定などしてみたいと思います。

今回はPythonに特化したコード補完ではなく、「ファイルに出てきている単語のコード補完の設定」となりました。

Pythonでコードの補完のために

第一の目的です。ざっと整理したところ、

ddc.vimという自動補完プラグインが良いらしい
– それにはdenops.vimが必要
— プラグインマネージャーDein.vimを使用
— さらにDoneを使用

という関係があるようです。

インストールする・した環境

  • Mint Linux 20.3
  • NeoVim 0.9.0
  • deno 1.32.3

Deno

ddc.vimへ行き着くために、まずはDenoをインストールします。
インストールはリンク先のInstallボタンの先に書いてある通りに実行しました。

curl -fsSL https://deno.land/x/install/install.sh | sh

インストール完了後、.bashrc等にexportを2つ手動で追加するようにメッセージが出るので、そのようにします。

(Deonが完了) Denoがインストールされた

Denoについて調べたこと

  • ジャンルはNodeと比較される(node.jsの後継と目される)
  • 男爵ディーノと読む
  • バイナリのパス /home/{ユーザ名}/.deno/bin/deno

Dein.vim

次にdein.vimをインストールします。

リンクページのBasic installationに書いてある内容をinit.vimに追記でも良さそうですが、私は次のCommand line installationの方を参考にしました。

上記リンク先のスクリプトを実行しました。

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

途中に2回の質問がありました。

  • .cache.localかのどちらにインストールしますか?と聞かれると思うので、.cacheを選択しました
  • configの場所をvimかneovimか尋ねられるので、nvimを選択しました

インストールが完了したら、新しいNeoVimの設定ファイル(init.vim)が出来ているはずです。

~/.config/nvim/init.vim

古いinit.vimの内容はinit.vim.pre-dein-vimという名前で残っているので、後で必要な所を元に戻そうと思います。

(Dein.vimが完了) プラグインマネージャーがインストールされた。

調べたこと

  • Dein.vim プラグインマネージャー
    • プラグインを管理するためのプラグイン

何種類か有るらしく、vim-plugが人気が高い感じを受けました。

  • vim-plug
  • Vundle
  • Dein.vim etc…

ddc.vim(denops.vimも一緒に)

最後としてddc.vimとdenops.vimをインストールします。

今回目的の自動補完プラグインになります。

まずは、ddc.vim

リンク先ページのInstall -> For dein.vimの所に書いてあるスクリプトをinit.vimに貼り付けます。
sourceとかfilterとかもコード補完には必要になるみたいで、ついでに有効にしてインストールしました。

(init.vim)

call dein#begin()

call dein#add('Shougo/ddc.vim')
call dein#add('vim-denops/denops.vim')

" Install your UIs
call dein#add('Shougo/ddc-ui-native')

" Install your sources
call dein#add('Shougo/ddc-source-around')

" Install your filters
call dein#add('Shougo/ddc-matcher_head')
call dein#add('Shougo/ddc-sorter_rank')

call dein#end()

NeoVimが起動した時にインストールが実行されるように以下の場所を有効化します。

" Uncomment if you want to install not-installed plugins on startup.
if dein#check_install()
 call dein#install()
endif

続けて、denops.vim

同じくリンク先のConfigurationに書いてあるスクリプトをinit.vimに貼り付けます。

(init.vim)

" Customize global settings

" You must set the default ui.
" Note: native ui
" https://github.com/Shougo/ddc-ui-native
call ddc#custom#patch_global('ui', 'native')

(省略)

" Use ddc.
call ddc#enable()

NeoVimの再起動

(dcc.vimが完了) コード補完プラグインがインストールされた。

調べたこと

最後に

Shougoさん、ただ一言、凄いです!

追記 Pythonのコード補完について

LSP (Language Server Protocol) と呼称される。Pythonのコード補完を実現するものらしい。

jedi-language-serverやラッパーのcoc-pyrightなどをいつかインストール設定して使ってみたいと思ってます。

以上になります。またお会いしましょう

(Pythonのコード補完についてcoc.nvimを使ったブログを書きました)

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

3件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください