SlideShare a Scribd company logo
deoplete
~ The dark powered auto
completion plugin for neovim ~
Presented by Shougo
Introduction
● This slide is English for the foreign people
● But the talk is Japanese for the Japanese
people
● The slide may contain spiritual topic or
Chuunibyou( 厨二病 )
● These are feature
Self-introduction
● Shougo
● I am called as “ 暗黒美夢王” .
● Pronounces it “Uncock Vim Awe”.
● Some people call me as “the sith lord of Vim
plugins”.
● Text editor is all of my life
● My previous works: neocomplete,
neobundle, neosnippet, unite, vimfiler,
vimshell, etc...
Today's topic
● Deoplete plugin
https://github.com/Shougo/deoplete.nvim
● It is the first asynchronous completion plugin
for neovim
● You don't have to be annoying the completion
blocks!
● If you don't know about neovim, please read
my previous presentation.
http://www.slideshare.net/Shougo/lets-talk-about-
neovim
Why deoplete is created?
● My most concern is to block Vim in the
completion
● if_lua is faster than VimL. But it also blocks
● Tarruda(neovim founder) said
Wow!!
Note: It is free translation
But
● The hell has been started from
here...
Needed works (1/4)
● Python3 support
– No if_lua support in neovim yet
– I don't want to create new
Python2 plugin in 2015
– I have added if_python3 feature
based on if_python2 in neovim
– Thanks the neovim reviewers!
Needed works (2/4)
● complete() bug fix
– It is needed for deoplete, but it is
not tested well
– Thanks the vim-jp and neovim
reviewers!
Needed works (3/4)
● v:completed_item and
completeopt patches
– It is needed for auto completion
plugins
– Thanks the vim-jp and neovim
reviewers!
Needed works (4/4)
● Understand remote plugin
features
– Less documentation
– Less examples
– Hard to debug
Deoplete original features (1/3)
● Asynchronous call omnifunc
– But the omnifunc which move
cursors(side effect) is not
supported
– For example: htmlcomplete
– Synchronous call omnifunc is
also available like neocomplete
Deoplete original features (2/3)
● Python3 sources instead of VimL
– You don't have to write VimL
– You can wrap VimL functions in
the source
Deoplete original features (3/3)
● Better buffer source
– You don't have to know the line is
cached if it is not large files
– The lines are analyzed like built-in
buffer completion
– You must wait to complete in
editing large files, but it is non
blocking!
Sources
● Built-in
– buffer, tag, file, omni, member,
dictionary
● External
– Neco-ghc, neosnippet, neco-
look, neco-vim, neco-syntax,
vim-racer, vimshell
Installation
1.Clone Deoplete source
$ git clone https://github.com/Shougo/deoplete.nvim
2.Install neovim
$ git clone https://github.com/neovim/neovim
3.Install neovim-python3
$ (sudo) pip3 install neovim
Demo
● Edit eval.c (22000 lines) with
deoplete + neovim
● Edit eval.c (22000 lines) with
neocomplete + Vim
● “Behold Vimmers, this is THE real
asynchronous!”
FAQ (1)
● Is Deoplete is faster than neocomplete?
● I think neocomplete is faster because of
if_lua power
● The asynchronous is to skip the completion
if your input is too fast
● So, you should use deoplete in newer
machine
FAQ (2)
● Deoplete does support any of languages?
● Deoplete can call omnifunc automatically
● Or you can create the source for it
● Why don't you create the source?
● :help deoplete-create-source
In the future
● Deoplete version 1.0 will be released after
the presentation!
● After version 1.0:
– More customization
– Improve file source behavior
– Implement more features in neocomplete
● Rewrite unite.vim for neovim(VimConf2016
presentation)
Fin
● If you think “Deoplete is nice!”, please
support neovim project by money or code.
https://salt.bountysource.com/teams/neovi
m
https://github.com/neovim/neovim/issues
● Deoplete depends on the neovim's
features!

More Related Content

ODP
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
PDF
Let's talk about neovim
PDF
vimshell made other shells legacy
PDF
Vim conf2019
PPTX
Vim survival guide
PDF
Vim and Python
PDF
Vim Rocks!
PPT
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Let's talk about neovim
vimshell made other shells legacy
Vim conf2019
Vim survival guide
Vim and Python
Vim Rocks!

What's hot (20)

PPTX
Tmux and Tmuxinator ~ Rise of the Machines
PDF
Dev Tooling for your Technohipster Startup using aws, docker, tmux, vim & ope...
PPTX
WebAssembly: In a Nutshell
PDF
Getting started with Ruby on Rails
ODP
PDF
Quick & Easy Dev Environments with Vagrant
PDF
Working Remotely (via SSH) Rocks!
PPTX
Vim - for newbies, by Roy Osherove
ODP
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...
PDF
Debugging Drupal with Xdebug
PDF
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
PPTX
Async js
PDF
Building a REST API with Node.js and MongoDB
ODP
Vim+cscope+ctags+taglist
PDF
Local development environment through virtualisation
PDF
WebAssembly: A New World of Native Exploits on the Browser
PPTX
Type script新鮮貨報你知
PDF
GraalVMに入門してみた
ODP
Contributing to ansible
PDF
Debugging and Profiling PHP Applications
Tmux and Tmuxinator ~ Rise of the Machines
Dev Tooling for your Technohipster Startup using aws, docker, tmux, vim & ope...
WebAssembly: In a Nutshell
Getting started with Ruby on Rails
Quick & Easy Dev Environments with Vagrant
Working Remotely (via SSH) Rocks!
Vim - for newbies, by Roy Osherove
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...
Debugging Drupal with Xdebug
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
Async js
Building a REST API with Node.js and MongoDB
Vim+cscope+ctags+taglist
Local development environment through virtualisation
WebAssembly: A New World of Native Exploits on the Browser
Type script新鮮貨報你知
GraalVMに入門してみた
Contributing to ansible
Debugging and Profiling PHP Applications
Ad

Viewers also liked (7)

PDF
neobundle.vimについて+おまけ
PDF
neovim = VM
PDF
暗黒美夢王とEmacs
ODP
カードゲームで学ぶテキストエディタ
PDF
An introduction to neocomplete
PDF
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
PDF
Vimから見たemacs
neobundle.vimについて+おまけ
neovim = VM
暗黒美夢王とEmacs
カードゲームで学ぶテキストエディタ
An introduction to neocomplete
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
Vimから見たemacs
Ad

Recently uploaded (20)

PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
System and Network Administraation Chapter 3
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
history of c programming in notes for students .pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Nekopoi APK 2025 free lastest update
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
medical staffing services at VALiNTRY
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
How Creative Agencies Leverage Project Management Software.pdf
top salesforce developer skills in 2025.pdf
System and Network Administraation Chapter 3
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
history of c programming in notes for students .pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Reimagine Home Health with the Power of Agentic AI​
CHAPTER 2 - PM Management and IT Context
Upgrade and Innovation Strategies for SAP ERP Customers
Adobe Illustrator 28.6 Crack My Vision of Vector Design
2025 Textile ERP Trends: SAP, Odoo & Oracle
Nekopoi APK 2025 free lastest update
How to Choose the Right IT Partner for Your Business in Malaysia
How to Migrate SBCGlobal Email to Yahoo Easily
medical staffing services at VALiNTRY
PTS Company Brochure 2025 (1).pdf.......
Navsoft: AI-Powered Business Solutions & Custom Software Development

deoplete: The dark powered auto completion plugin for neovim

  • 1. deoplete ~ The dark powered auto completion plugin for neovim ~ Presented by Shougo
  • 2. Introduction ● This slide is English for the foreign people ● But the talk is Japanese for the Japanese people ● The slide may contain spiritual topic or Chuunibyou( 厨二病 ) ● These are feature
  • 3. Self-introduction ● Shougo ● I am called as “ 暗黒美夢王” . ● Pronounces it “Uncock Vim Awe”. ● Some people call me as “the sith lord of Vim plugins”. ● Text editor is all of my life ● My previous works: neocomplete, neobundle, neosnippet, unite, vimfiler, vimshell, etc...
  • 4. Today's topic ● Deoplete plugin https://github.com/Shougo/deoplete.nvim ● It is the first asynchronous completion plugin for neovim ● You don't have to be annoying the completion blocks! ● If you don't know about neovim, please read my previous presentation. http://www.slideshare.net/Shougo/lets-talk-about- neovim
  • 5. Why deoplete is created? ● My most concern is to block Vim in the completion ● if_lua is faster than VimL. But it also blocks ● Tarruda(neovim founder) said Wow!! Note: It is free translation
  • 6. But ● The hell has been started from here...
  • 7. Needed works (1/4) ● Python3 support – No if_lua support in neovim yet – I don't want to create new Python2 plugin in 2015 – I have added if_python3 feature based on if_python2 in neovim – Thanks the neovim reviewers!
  • 8. Needed works (2/4) ● complete() bug fix – It is needed for deoplete, but it is not tested well – Thanks the vim-jp and neovim reviewers!
  • 9. Needed works (3/4) ● v:completed_item and completeopt patches – It is needed for auto completion plugins – Thanks the vim-jp and neovim reviewers!
  • 10. Needed works (4/4) ● Understand remote plugin features – Less documentation – Less examples – Hard to debug
  • 11. Deoplete original features (1/3) ● Asynchronous call omnifunc – But the omnifunc which move cursors(side effect) is not supported – For example: htmlcomplete – Synchronous call omnifunc is also available like neocomplete
  • 12. Deoplete original features (2/3) ● Python3 sources instead of VimL – You don't have to write VimL – You can wrap VimL functions in the source
  • 13. Deoplete original features (3/3) ● Better buffer source – You don't have to know the line is cached if it is not large files – The lines are analyzed like built-in buffer completion – You must wait to complete in editing large files, but it is non blocking!
  • 14. Sources ● Built-in – buffer, tag, file, omni, member, dictionary ● External – Neco-ghc, neosnippet, neco- look, neco-vim, neco-syntax, vim-racer, vimshell
  • 15. Installation 1.Clone Deoplete source $ git clone https://github.com/Shougo/deoplete.nvim 2.Install neovim $ git clone https://github.com/neovim/neovim 3.Install neovim-python3 $ (sudo) pip3 install neovim
  • 16. Demo ● Edit eval.c (22000 lines) with deoplete + neovim ● Edit eval.c (22000 lines) with neocomplete + Vim ● “Behold Vimmers, this is THE real asynchronous!”
  • 17. FAQ (1) ● Is Deoplete is faster than neocomplete? ● I think neocomplete is faster because of if_lua power ● The asynchronous is to skip the completion if your input is too fast ● So, you should use deoplete in newer machine
  • 18. FAQ (2) ● Deoplete does support any of languages? ● Deoplete can call omnifunc automatically ● Or you can create the source for it ● Why don't you create the source? ● :help deoplete-create-source
  • 19. In the future ● Deoplete version 1.0 will be released after the presentation! ● After version 1.0: – More customization – Improve file source behavior – Implement more features in neocomplete ● Rewrite unite.vim for neovim(VimConf2016 presentation)
  • 20. Fin ● If you think “Deoplete is nice!”, please support neovim project by money or code. https://salt.bountysource.com/teams/neovi m https://github.com/neovim/neovim/issues ● Deoplete depends on the neovim's features!