Slide 1

Slide 1 text

NEOVIM

Slide 2

Slide 2 text

WHAT'S WRONG WITH VIM? > Nothing! > over 20 years old > 300K lines of "scary" C89 code > All code is Bram Mooleaner's responsibility > Lots of platform-specific code > All plugin code runs synchronously

Slide 3

Slide 3 text

WHAT DOES NEOVIM DO BETTER? > Aggressively refactor source code1 > Replace platform-specific code with libuv > Simplify maintenance > Split work between multiple developers > Provide a new plugin architecture based on coprocesses > Plugins can be written in any language without explicit support from the editor 1 https://github.com/neovim/neovim/wiki/Introduction

Slide 4

Slide 4 text

INSTALLING NEOVIM OSX brew tap neovim/neovim brew install --HEAD neovim Ubuntu sudo add-apt-repository ppa:neovim-ppa/unstable sudo apt-get update sudo apt-get install neovim Windows (experimental) See https://github.com/neovim/neovim/wiki/Installing-Neovim#windows

Slide 5

Slide 5 text

WHAT ELSE DO I NEED TO DO TO GET STARTED?

Slide 6

Slide 6 text

nvim

Slide 7

Slide 7 text

THERE BE DRAGONS

Slide 8

Slide 8 text

BUT I ALREAD HAVE A VERY COMPLICATED .vimrc ln -s ~/.vimrc ~/.nvimrc ln -s ~/.vim ~/.nvim alias vim="nvim"

Slide 9

Slide 9 text

DID YOU NOTICE A DIFFERENCE? ME EITHER

Slide 10

Slide 10 text

LET'S MAKE A FEW SMALL CHANGES

Slide 11

Slide 11 text

SYNTASTIC -> NEOMAKE

Slide 12

Slide 12 text

SYNTASTIC AND NEOMAKE > Syntax checking plugin for vim/ neovim > Runs files through an external syntax checker and displays the resulting errors on file save > JSHint > TSLint > Rubocop

Slide 13

Slide 13 text

VIM-PLUG

Slide 14

Slide 14 text

VIM-PLUG Similar to vundle, but super-fast! call plug#begin('~/.vim/plugged') Plug 'tpope/vim-fugitive' Plug 'tpope/vim-repeat' Plug 'garbas/vim-snipmate' " On-demand loading Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " Unmanaged plugin (manually installed and updated) Plug '~/my-prototype-plugin' " Add plugins to &runtimepath call plug#end()

Slide 15

Slide 15 text

THERE'S MORE!

Slide 16

Slide 16 text

:terminal Open a terminal in a neovim buffer

Slide 17

Slide 17 text

LOOKS COOL!

Slide 18

Slide 18 text

@NICKNISI