SlideShare a Scribd company logo
1 of 23
Download to read offline
Neosnippet.vim +
Deoppet.nvim
VimConf 2017
Shougo
@ShougoMatsu
Profile
● Shougo
● The dark powered Vim user 暗黒美無王
(Uncock Vim Awe, The dark Vim maestro)
● The text editor is the world
● My icon is not zebra!
The dark powered plugins
● deoplete.nvim: The next completion plugin for neovim
● deol.nvim: The next terminal plugin for neovim/Vim8
● dein.vim: The next plugin manager for neovim/Vim8
● denite.nvim: The next UI plugin for neovim/Vim8
● deoppet.nvim: The next snippet plugin for neovim (vaporware)
● defx.nvim: The next file manager for neovim/Vim8 (vaporware)
● deorise.nvim: The next hexadecimal editor plugin for neovim/Vim8
(vaporware)
Today's theme
● The snippet plugins
● neosnippet.vim
● deoppet.nvim
● The extra thing
Note:No songs
The snippet plugins
What is the snippet plugin?
● It expands the snippet trigger
Ex: if → if () {}
● And jumps the next places(place holder)
Ex: if (${1}) { ${2} }
● You don’t have to insert the texts and move to the next
position manually
● The similar plugins: The template plugin, emmet-vim
neosnippet.vim
https://github.com/Shougo/neosnippet.vim
● The neo-snippet plugin
● The marker type snippet plugin
● Popular in Japan
● Compatible with snipMate syntax
● Integrated with the completion plugins
● Vim script based
snipMate
https://github.com/garbas/vim-snipmate
● Easy to read syntax
● Very popular
● The development seems slowly
● The non-marker type snippet plugin
● Vim script based
UltiSnips
https://github.com/Silver/ultisnips
● Non compatible syntax with snipMate
● Popular
● Many features
● The non-marker type snippet plugin
● if_python/if_python3 based
● Slow performance in neovim
What is the marker type snippet plugin?
● It adds the markers to the buffer to detect the next jump
places
Ex: <`1`>
● It is easy to implement
● No performance problem
● Easy to find the next jump places
What is the non marker type snippet
plugin?
● It monitors the buffer changes to find the next jump
position
● The implementation is complex
● It is easy to implement jump back feature
Neosnippet.vim
The history of neosnippet.vim
● I don't understand why the snippet plugins are useful
● I have created the snippet plugin as builtin
neocomplcache source
● The snippet plugin is very huge... → neosnippet.vim
● The default snippets are very huge and not easy to
customize for the users → neosnippet-snippets
neosnippet.vim disadvantages
● Conflicts with conceal feature
● Hard to implement jump back feature
● It changes the buffer
● The slow parser (Vim script performance problem)
● It is hard to extend…
Deoppet.nvim
deoppet.nvim
https://github.com/Shougo/deoppet.nvim
● The dark powered neo snippet plugin
● Compatible syntax with neosnippet.vim
● The non-marker type snippet plugin
● It depends on Extended Marks feature in neovim
https://github.com/neovim/neovim/pull/5031
● neovim only
● Python3 based, almost 300 lines
Extended marks feature
● It detects the buffer changes automatically
● The plugins don’t have to detect the buffer changes
● And it has the namespaces
let ns = nvim_init_mark_ns(‘deoppet’)
let id = nvim_buf_set_marks(bufnr, ns, ‘’, row, col)
Current development status
● Works the simple neosnippet syntax parser
● Can expand the snippet trigger
● The Completion by deoplete
● Can Jump forward/jump back to the placeholders
● It is hard to try...
Current development status
● Works the simple neosnippet syntax parser
● Can expand the snippet trigger
● The Completion by deoplete
● Can Jump forward/jump back to the placeholders
● It is hard to try...
The demo of deoppet.nvim
The extra thing
The extra thing
● neocomplete.vim development is over
● Because deoplete.nvim supports Vim8
● You can try it
● Enjoy!
Thank you!

More Related Content

What's hot

Getting started with Ruby on Rails
Getting started with Ruby on RailsGetting started with Ruby on Rails
Getting started with Ruby on RailsIlias Bartolini
 
How to write patches for Vim
How to write patches for VimHow to write patches for Vim
How to write patches for Vimk-takata
 
Let's use AppVeyor
Let's use AppVeyorLet's use AppVeyor
Let's use AppVeyork-takata
 
Vagrant workshop 2015
Vagrant workshop 2015Vagrant workshop 2015
Vagrant workshop 2015Haifa Ftirich
 
Async js
Async jsAsync js
Async jslahin31
 
WebAssembly: In a Nutshell
WebAssembly: In a NutshellWebAssembly: In a Nutshell
WebAssembly: In a NutshellRangHo Lee
 
Full stack java script development
Full stack java script developmentFull stack java script development
Full stack java script developmentTomislav Capan
 
WebAssembly: A New World of Native Exploits on the Browser
WebAssembly: A New World of Native Exploits on the BrowserWebAssembly: A New World of Native Exploits on the Browser
WebAssembly: A New World of Native Exploits on the BrowserPriyanka Aash
 
NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1Tomislav Capan
 
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan HoracekOpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan HoracekNETWAYS
 
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...Martin Grotzke
 
GraalVMに入門してみた
GraalVMに入門してみたGraalVMに入門してみた
GraalVMに入門してみたAya Ebata
 
Rails Girls Resources
Rails Girls ResourcesRails Girls Resources
Rails Girls Resourcesberlintam
 
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4Igalia
 
Compiling To Web Assembly
Compiling To Web AssemblyCompiling To Web Assembly
Compiling To Web AssemblyIgalia
 
Contributing to ansible
Contributing  to ansibleContributing  to ansible
Contributing to ansiblehellodk
 

What's hot (20)

Puphpet
PuphpetPuphpet
Puphpet
 
Getting started with Ruby on Rails
Getting started with Ruby on RailsGetting started with Ruby on Rails
Getting started with Ruby on Rails
 
How to write patches for Vim
How to write patches for VimHow to write patches for Vim
How to write patches for Vim
 
Let's use AppVeyor
Let's use AppVeyorLet's use AppVeyor
Let's use AppVeyor
 
WebAssemlby vs JavaScript
WebAssemlby vs JavaScriptWebAssemlby vs JavaScript
WebAssemlby vs JavaScript
 
Vagrant workshop 2015
Vagrant workshop 2015Vagrant workshop 2015
Vagrant workshop 2015
 
Async js
Async jsAsync js
Async js
 
WebAssembly: In a Nutshell
WebAssembly: In a NutshellWebAssembly: In a Nutshell
WebAssembly: In a Nutshell
 
Full stack java script development
Full stack java script developmentFull stack java script development
Full stack java script development
 
WebAssembly: A New World of Native Exploits on the Browser
WebAssembly: A New World of Native Exploits on the BrowserWebAssembly: A New World of Native Exploits on the Browser
WebAssembly: A New World of Native Exploits on the Browser
 
NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1
 
Vagrantfordevops
VagrantfordevopsVagrantfordevops
Vagrantfordevops
 
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan HoracekOpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
 
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...
Playframework Hamburg Meetup #1 - Reactive persistence with Play 2 & postgres...
 
GraalVMに入門してみた
GraalVMに入門してみたGraalVMに入門してみた
GraalVMに入門してみた
 
Rails Girls Resources
Rails Girls ResourcesRails Girls Resources
Rails Girls Resources
 
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
 
Rbenv
RbenvRbenv
Rbenv
 
Compiling To Web Assembly
Compiling To Web AssemblyCompiling To Web Assembly
Compiling To Web Assembly
 
Contributing to ansible
Contributing  to ansibleContributing  to ansible
Contributing to ansible
 

Similar to Neosnippet.vim + Deoppet.nvim - The snippet plugins

Useful Vim Plugins
Useful Vim PluginsUseful Vim Plugins
Useful Vim Pluginsanveo
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talkTiago Ameller
 
Continuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageContinuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageRan Levy
 
Puppet managed loadays
Puppet managed loadaysPuppet managed loadays
Puppet managed loadaysloadays
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3Opersys inc.
 
Last Month in PHP - June 2016
Last Month in PHP - June 2016Last Month in PHP - June 2016
Last Month in PHP - June 2016Eric Poe
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?Vivek Parihar
 
Swoole Meetup AFUP¨Montpellier 27/01/2021
Swoole   Meetup  AFUP¨Montpellier 27/01/2021Swoole   Meetup  AFUP¨Montpellier 27/01/2021
Swoole Meetup AFUP¨Montpellier 27/01/2021Julien Vinber
 
Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment ColdFusionConference
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Gavin Pickin
 
Inside Android's UI
Inside Android's UIInside Android's UI
Inside Android's UIOpersys inc.
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportYouSee
 
Drupalhagen 2014 kiss omg ftw
Drupalhagen 2014   kiss omg ftwDrupalhagen 2014   kiss omg ftw
Drupalhagen 2014 kiss omg ftwArne Jørgensen
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Ohad Basan
 
Creating a Mature Puppet System
Creating a Mature Puppet SystemCreating a Mature Puppet System
Creating a Mature Puppet SystemPuppet
 

Similar to Neosnippet.vim + Deoppet.nvim - The snippet plugins (20)

Useful Vim Plugins
Useful Vim PluginsUseful Vim Plugins
Useful Vim Plugins
 
Vim and Python
Vim and PythonVim and Python
Vim and Python
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talk
 
Continuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritageContinuous Deployment Applied at MyHeritage
Continuous Deployment Applied at MyHeritage
 
Puppet managed loadays
Puppet managed loadaysPuppet managed loadays
Puppet managed loadays
 
Git Basics
Git BasicsGit Basics
Git Basics
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3
 
Last Month in PHP - June 2016
Last Month in PHP - June 2016Last Month in PHP - June 2016
Last Month in PHP - June 2016
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?
 
Swoole Meetup AFUP¨Montpellier 27/01/2021
Swoole   Meetup  AFUP¨Montpellier 27/01/2021Swoole   Meetup  AFUP¨Montpellier 27/01/2021
Swoole Meetup AFUP¨Montpellier 27/01/2021
 
Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment Take Home Your Very Own Free Vagrant CFML Dev Environment
Take Home Your Very Own Free Vagrant CFML Dev Environment
 
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
Inside Android's UI
Inside Android's UIInside Android's UI
Inside Android's UI
 
Kick my mouse away
Kick my mouse awayKick my mouse away
Kick my mouse away
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
 
Drupalhagen 2014 kiss omg ftw
Drupalhagen 2014   kiss omg ftwDrupalhagen 2014   kiss omg ftw
Drupalhagen 2014 kiss omg ftw
 
git-flow R3Labs
git-flow R3Labsgit-flow R3Labs
git-flow R3Labs
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
Creating a Mature Puppet System
Creating a Mature Puppet SystemCreating a Mature Puppet System
Creating a Mature Puppet System
 

More from Shougo

カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタカードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタShougo
 
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜Shougo
 
neovim = VM
neovim = VMneovim = VM
neovim = VMShougo
 
暗黒美夢王とEmacs
暗黒美夢王とEmacs暗黒美夢王とEmacs
暗黒美夢王とEmacsShougo
 
An introduction to neocomplete
An introduction to neocompleteAn introduction to neocomplete
An introduction to neocompleteShougo
 
neobundle.vimについて+おまけ
neobundle.vimについて+おまけneobundle.vimについて+おまけ
neobundle.vimについて+おまけShougo
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacsShougo
 
Shougoの開発環境
Shougoの開発環境Shougoの開発環境
Shougoの開発環境Shougo
 
Unite vim
Unite vim Unite vim
Unite vim Shougo
 
Vim = VM
Vim = VMVim = VM
Vim = VMShougo
 
modern X86 environment
modern X86 environmentmodern X86 environment
modern X86 environmentShougo
 
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimUltimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimShougo
 

More from Shougo (12)

カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタカードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタ
 
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
 
neovim = VM
neovim = VMneovim = VM
neovim = VM
 
暗黒美夢王とEmacs
暗黒美夢王とEmacs暗黒美夢王とEmacs
暗黒美夢王とEmacs
 
An introduction to neocomplete
An introduction to neocompleteAn introduction to neocomplete
An introduction to neocomplete
 
neobundle.vimについて+おまけ
neobundle.vimについて+おまけneobundle.vimについて+おまけ
neobundle.vimについて+おまけ
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacs
 
Shougoの開発環境
Shougoの開発環境Shougoの開発環境
Shougoの開発環境
 
Unite vim
Unite vim Unite vim
Unite vim
 
Vim = VM
Vim = VMVim = VM
Vim = VM
 
modern X86 environment
modern X86 environmentmodern X86 environment
modern X86 environment
 
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimUltimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vim
 

Recently uploaded

2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 

Recently uploaded (20)

2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 

Neosnippet.vim + Deoppet.nvim - The snippet plugins

  • 2. Profile ● Shougo ● The dark powered Vim user 暗黒美無王 (Uncock Vim Awe, The dark Vim maestro) ● The text editor is the world ● My icon is not zebra!
  • 3. The dark powered plugins ● deoplete.nvim: The next completion plugin for neovim ● deol.nvim: The next terminal plugin for neovim/Vim8 ● dein.vim: The next plugin manager for neovim/Vim8 ● denite.nvim: The next UI plugin for neovim/Vim8 ● deoppet.nvim: The next snippet plugin for neovim (vaporware) ● defx.nvim: The next file manager for neovim/Vim8 (vaporware) ● deorise.nvim: The next hexadecimal editor plugin for neovim/Vim8 (vaporware)
  • 4. Today's theme ● The snippet plugins ● neosnippet.vim ● deoppet.nvim ● The extra thing Note:No songs
  • 6. What is the snippet plugin? ● It expands the snippet trigger Ex: if → if () {} ● And jumps the next places(place holder) Ex: if (${1}) { ${2} } ● You don’t have to insert the texts and move to the next position manually ● The similar plugins: The template plugin, emmet-vim
  • 7. neosnippet.vim https://github.com/Shougo/neosnippet.vim ● The neo-snippet plugin ● The marker type snippet plugin ● Popular in Japan ● Compatible with snipMate syntax ● Integrated with the completion plugins ● Vim script based
  • 8. snipMate https://github.com/garbas/vim-snipmate ● Easy to read syntax ● Very popular ● The development seems slowly ● The non-marker type snippet plugin ● Vim script based
  • 9. UltiSnips https://github.com/Silver/ultisnips ● Non compatible syntax with snipMate ● Popular ● Many features ● The non-marker type snippet plugin ● if_python/if_python3 based ● Slow performance in neovim
  • 10. What is the marker type snippet plugin? ● It adds the markers to the buffer to detect the next jump places Ex: <`1`> ● It is easy to implement ● No performance problem ● Easy to find the next jump places
  • 11. What is the non marker type snippet plugin? ● It monitors the buffer changes to find the next jump position ● The implementation is complex ● It is easy to implement jump back feature
  • 13. The history of neosnippet.vim ● I don't understand why the snippet plugins are useful ● I have created the snippet plugin as builtin neocomplcache source ● The snippet plugin is very huge... → neosnippet.vim ● The default snippets are very huge and not easy to customize for the users → neosnippet-snippets
  • 14. neosnippet.vim disadvantages ● Conflicts with conceal feature ● Hard to implement jump back feature ● It changes the buffer ● The slow parser (Vim script performance problem) ● It is hard to extend…
  • 16. deoppet.nvim https://github.com/Shougo/deoppet.nvim ● The dark powered neo snippet plugin ● Compatible syntax with neosnippet.vim ● The non-marker type snippet plugin ● It depends on Extended Marks feature in neovim https://github.com/neovim/neovim/pull/5031 ● neovim only ● Python3 based, almost 300 lines
  • 17. Extended marks feature ● It detects the buffer changes automatically ● The plugins don’t have to detect the buffer changes ● And it has the namespaces let ns = nvim_init_mark_ns(‘deoppet’) let id = nvim_buf_set_marks(bufnr, ns, ‘’, row, col)
  • 18. Current development status ● Works the simple neosnippet syntax parser ● Can expand the snippet trigger ● The Completion by deoplete ● Can Jump forward/jump back to the placeholders ● It is hard to try...
  • 19. Current development status ● Works the simple neosnippet syntax parser ● Can expand the snippet trigger ● The Completion by deoplete ● Can Jump forward/jump back to the placeholders ● It is hard to try...
  • 20. The demo of deoppet.nvim
  • 22. The extra thing ● neocomplete.vim development is over ● Because deoplete.nvim supports Vim8 ● You can try it ● Enjoy!