Summary
下記のような感じでオートコンプリートしたい
ap
と入力したらapple
ba
と入力したらbanana
ch
と入力したらcherry
必要なもの
deoplete.nvim
# dein.toml の記入例
[[plugins]]
repo ='Shougo/deoplete.nvim'
hook_add ='let g:deoplete#enable_at_startup = 1'
ソースをつくる
ソースの置き場所
$XDG_CONFIG_HOME/nvim/rplugin/python3/deoplete/sources
まずフォルダをつくる
cd $XDG_CONFIG_HOME/nvim
mkdir -p rplugin/python3/deoplete/sources
ソース(パイソンファイル)を作成
cd rplugin/python3/deoplete/sources
vim callmekohei.py
callmekohei.py
の中身(さわるところは3ヶ所のみ!)
from.baseimportBaseclassSource(Base):def__init__(self,vim):super().__init__(vim)self.name='callmekohei'# なまえself.mark='[kohei]'# mark のなまえdefgather_candidates(self,context):return["apple","banana","cherry"]# ポップアップのリスト
init.vim
に記入filetype plugin indent on
の前に書く
set runtimepath+=$XDG_CONFIG_HOME/nvim/rplugin
filetype plugin indent on
syntax enable
やりたいこと2
fruits.
と入力したらapple, banana, cherry
ソース
importrefrom.baseimportBaseclassSource(Base):def__init__(self,vim):super().__init__(vim)self.name='callmekohei'self.mark='[kohei]'self.input_pattern=(r'^fruits\.')# input_pattern で fruits. を指定するdefget_complete_position(self,context):# input_pattern を使うときは必須m=re.search(r'\w*$',context['input'])returnm.start()ifmelse-1defgather_candidates(self,context):return["apple","banana","cherry"]
最小のセッティング
set runtimepath+=~/.config/nvim/rplugin
set runtimepath+=~/.config/nvim/plugins/deoplete.nvim
letg:deoplete#enable_at_startup =1filetype plugin indent on
syntax enable
やりたいこと3
apple
を選択したらapple
の説明を表示したい
ソース
from.baseimportBaseclassSource(Base):def__init__(self,vim):super().__init__(vim)self.name='callmekohei'self.mark='[kohei]'defgather_candidates(self,context):return[{'word':"apple",'abbr':"apple : red, round and delicious!",'info':"Apple is delicious",'kind':"Food",'dup':1}]
参照
ヘルプ :help deoplete
CREATE SOURCE *deoplete-create-source*
To create source, you should read default sources implementation in
rplugin/python3/deoplete/source/*.py.
The files are automatically loaded and deoplete creates new Source class
object.
Source class must extend Base class in".base".
Note: The sources must be created by Python3 language.
Note: If you call Vim functions in your source, it is not asynchronous.