Understanding VI(M)

Kai König
Kai KönigPartner at Bitspark GmbH
1
@ k a i _ r i c h a r d
UNDERSTANDING VI(M)
2
@ k a i _ r i c h a r d
Currently on a mission to narrow the gap
between human thinking and computer
language
Kai Richard König
P A R T N E R @ B I T S P A R K
3
@ k a i _ r i c h a r d
Vi user for 10 years
Switched from textmate
I use VI(M) professionally for a long time
now
4
@ k a i _ r i c h a r d
Before falling in love with VI(M) I used
notepad++ and later textmate
5
@ k a i _ r i c h a r d
Manipulating text is the most fundamental skill a
programmer should have.
The better you are at it the faster you can
translate ideas and concepts into working code.
6
@ k a i _ r i c h a r d
VI(M) has a special
place among all
other editors
7
@ k a i _ r i c h a r d VI(M) has a special place among all other editors
8
@ k a i _ r i c h a r d VI(M) has a special place among all other editors
9
@ k a i _ r i c h a r d
What I hope you take away from this
> History of the first flamewar (emacs vs. vi)
> Understand the differences between emacs and vim
> And how to turn vim + shell into a workable IDE
10
@ k a i _ r i c h a r d
'Those who do not learn history are doomed to repeat it.'
11
@ k a i _ r i c h a r d
DEMO like it‘s 01.01.1970
12
@ k a i _ r i c h a r d
ed‘s ideas and limitation?
> Two distinct modes insert and command/normal
> No arrowkeys and no backspace
> Pain in the a$$ to work with
> No idea where the cursor is or what the document looks like
13
@ k a i _ r i c h a r d
A little History of Editors
ed sed
ex vi
emacs
1976
https://en.wikipedia.org/wiki/Editor_war
1991
vim
1970
14
@ k a i _ r i c h a r d
Operators and Motions are the building blocks
of text manipulation language in VIM
opertator:count:motion
d - delete
y - copy
c - change
/ - search
w - word
f - find
15
@ k a i _ r i c h a r d
The fundamental difference is how you execute
commands against text
In Emacs every command can be bound any keystroke –
e.g. `deleteWordUnderCursor()` can be CTRL+Shift+Y
In VI every keystroke is a command that can be
composed with other commands – e.g. `diw`
BTW: this resembles the UNIX philosophy more closely
16
@ k a i _ r i c h a r d
DEMO like it‘s 01.01.1990 – sort of
17
@ k a i _ r i c h a r d
You can turn VIM into an IDE with tmux and
some essential plugins
18
@ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins
Don't put anything in your .vimrc you don't understand!
https://dougblack.io/words/a-good-vimrc.html
19
@ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins
Don‘t be like me
20
@ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins
https://github.com/Shougo/dein.vim
21
@ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins
https://github.com/ctrlpvim/ctrlp.vim
https://github.com/scrooloose/nerdtree
22
@ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins
https://github.com/tmux/tmux
23
@ k a i _ r i c h a r d
You wont succeed if you don‘t practice – but
don‘t be to hard on your self.
VI is not difficult it‘s just uncommon because we
are so used to the ideas of emacs
Start slow and ease into it - when using the shell to
change code use VI from time to time.
Don‘t go crazy with plugins.
24
@ k a i _ r i c h a r d
Thanks
ʕ •ᴥ•ʔ
25
@ k a i _ r i c h a r d
Questions?
26
@ k a i _ r i c h a r d
Slides and Links
Twitter: @kai_richard
Github: https://github.com/kairichard/
LinkedIn: https://www.linkedin.com/in/kairichard/
1 of 26

Recommended

GraphQL + Third Party API = | Роман Сенин | Zlit Tech by
GraphQL + Third Party API = | Роман Сенин | Zlit TechGraphQL + Third Party API = | Роман Сенин | Zlit Tech
GraphQL + Third Party API = | Роман Сенин | Zlit TechZlit
103 views75 slides
Spelunking through JPEG with Racket (Sixth RacketCon) by
Spelunking through JPEG with Racket (Sixth RacketCon)Spelunking through JPEG with Racket (Sixth RacketCon)
Spelunking through JPEG with Racket (Sixth RacketCon)Igalia
232 views13 slides
Garbage collector и управление памятью в Go by
Garbage collector и управление памятью в GoGarbage collector и управление памятью в Go
Garbage collector и управление памятью в GoArtem Kovardin
1.5K views23 slides
Desktop e go! by
Desktop e go!Desktop e go!
Desktop e go!jefferson Otoni Lima
87 views40 slides
So you think you can pdb? by
So you think you can pdb?So you think you can pdb?
So you think you can pdb?Clayton Parker
1.4K views25 slides
Practical F# by
Practical F#Practical F#
Practical F#Ryan Riley
1.5K views44 slides

More Related Content

Similar to Understanding VI(M)

So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt... by
So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt...So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt...
So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt...Cloud Native Day Tel Aviv
337 views19 slides
[2020 git lab commit] continuous infrastructure by
[2020 git lab commit] continuous infrastructure[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructureRodrigo Stefani Domingues
94 views38 slides
Glimworm 21 11-13 (1) by
Glimworm 21 11-13 (1)Glimworm 21 11-13 (1)
Glimworm 21 11-13 (1)Paul Hopton
351 views43 slides
MyReplayInZen by
MyReplayInZenMyReplayInZen
MyReplayInZenViacheslav Eremin
129 views6 slides
Viacheslav Eremin interview about DOT NET (eng lang) by
Viacheslav Eremin interview about DOT NET (eng lang)Viacheslav Eremin interview about DOT NET (eng lang)
Viacheslav Eremin interview about DOT NET (eng lang)Viacheslav Eremin
134 views6 slides
Angular v2 et plus : le futur du développement d'applications en entreprise by
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseLINAGORA
794 views42 slides

Similar to Understanding VI(M)(20)

So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt... by Cloud Native Day Tel Aviv
So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt...So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt...
So Your OpenStack Cloud is Built... Now What's Next - Walter Bentley - OpenSt...
Glimworm 21 11-13 (1) by Paul Hopton
Glimworm 21 11-13 (1)Glimworm 21 11-13 (1)
Glimworm 21 11-13 (1)
Paul Hopton351 views
Viacheslav Eremin interview about DOT NET (eng lang) by Viacheslav Eremin
Viacheslav Eremin interview about DOT NET (eng lang)Viacheslav Eremin interview about DOT NET (eng lang)
Viacheslav Eremin interview about DOT NET (eng lang)
Viacheslav Eremin134 views
Angular v2 et plus : le futur du développement d'applications en entreprise by LINAGORA
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entreprise
LINAGORA794 views
So Your OpenStack Cloud is Built...Now What? by Tesora
So Your OpenStack Cloud is Built...Now What? So Your OpenStack Cloud is Built...Now What?
So Your OpenStack Cloud is Built...Now What?
Tesora120 views
Glimworm 21-11-2013 by relayr
Glimworm 21-11-2013Glimworm 21-11-2013
Glimworm 21-11-2013
relayr235 views
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe... by Altinity Ltd
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
OSA Con 2022 - What Data Engineering Can Learn from Frontend Engineering - Pe...
Altinity Ltd27 views
C plus plus for hackers it security by CESAR A. RUIZ C
C plus plus for hackers it securityC plus plus for hackers it security
C plus plus for hackers it security
CESAR A. RUIZ C929 views
Summer training PPT Manasv Singharia.pptx by shokeenk14
Summer training PPT Manasv Singharia.pptxSummer training PPT Manasv Singharia.pptx
Summer training PPT Manasv Singharia.pptx
shokeenk147 views
Hacking the Kinect with GAFFTA Day 1 by benDesigning
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
benDesigning6.4K views
Awesome application in 2014 by Codemotion
Awesome application in 2014Awesome application in 2014
Awesome application in 2014
Codemotion550 views
A peek into the world of WordPress plugin development by R-Cubed Design Forge
A peek into the world of WordPress plugin developmentA peek into the world of WordPress plugin development
A peek into the world of WordPress plugin development
vpTech - Practical F# in Finance by Amin Khansari
vpTech - Practical F# in FinancevpTech - Practical F# in Finance
vpTech - Practical F# in Finance
Amin Khansari660 views
really really really awesome php application with bdd behat and iterfaces by Giulio De Donato
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
Giulio De Donato2K views

Recently uploaded

Software evolution understanding: Automatic extraction of software identifier... by
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Ra'Fat Al-Msie'deen
10 views33 slides
nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
5 views7 slides
MS PowerPoint.pptx by
MS PowerPoint.pptxMS PowerPoint.pptx
MS PowerPoint.pptxLitty Sylus
7 views14 slides
HarshithAkkapelli_Presentation.pdf by
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdfharshithakkapelli
12 views16 slides
Top-5-production-devconMunich-2023.pptx by
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
8 views40 slides
Bootstrapping vs Venture Capital.pptx by
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptxZeljko Svedic
14 views17 slides

Recently uploaded(20)

Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Top-5-production-devconMunich-2023.pptx by Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app8 views
Bootstrapping vs Venture Capital.pptx by Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic14 views
How Workforce Management Software Empowers SMEs | TraQSuite by TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite5 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino6 views
Myths and Facts About Hospice Care: Busting Common Misconceptions by Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ10 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492143 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app7 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski12 views
JioEngage_Presentation.pptx by admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254556 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views
Airline Booking Software by SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta7 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi215 views

Understanding VI(M)

  • 1. 1 @ k a i _ r i c h a r d UNDERSTANDING VI(M)
  • 2. 2 @ k a i _ r i c h a r d Currently on a mission to narrow the gap between human thinking and computer language Kai Richard König P A R T N E R @ B I T S P A R K
  • 3. 3 @ k a i _ r i c h a r d Vi user for 10 years Switched from textmate I use VI(M) professionally for a long time now
  • 4. 4 @ k a i _ r i c h a r d Before falling in love with VI(M) I used notepad++ and later textmate
  • 5. 5 @ k a i _ r i c h a r d Manipulating text is the most fundamental skill a programmer should have. The better you are at it the faster you can translate ideas and concepts into working code.
  • 6. 6 @ k a i _ r i c h a r d VI(M) has a special place among all other editors
  • 7. 7 @ k a i _ r i c h a r d VI(M) has a special place among all other editors
  • 8. 8 @ k a i _ r i c h a r d VI(M) has a special place among all other editors
  • 9. 9 @ k a i _ r i c h a r d What I hope you take away from this > History of the first flamewar (emacs vs. vi) > Understand the differences between emacs and vim > And how to turn vim + shell into a workable IDE
  • 10. 10 @ k a i _ r i c h a r d 'Those who do not learn history are doomed to repeat it.'
  • 11. 11 @ k a i _ r i c h a r d DEMO like it‘s 01.01.1970
  • 12. 12 @ k a i _ r i c h a r d ed‘s ideas and limitation? > Two distinct modes insert and command/normal > No arrowkeys and no backspace > Pain in the a$$ to work with > No idea where the cursor is or what the document looks like
  • 13. 13 @ k a i _ r i c h a r d A little History of Editors ed sed ex vi emacs 1976 https://en.wikipedia.org/wiki/Editor_war 1991 vim 1970
  • 14. 14 @ k a i _ r i c h a r d Operators and Motions are the building blocks of text manipulation language in VIM opertator:count:motion d - delete y - copy c - change / - search w - word f - find
  • 15. 15 @ k a i _ r i c h a r d The fundamental difference is how you execute commands against text In Emacs every command can be bound any keystroke – e.g. `deleteWordUnderCursor()` can be CTRL+Shift+Y In VI every keystroke is a command that can be composed with other commands – e.g. `diw` BTW: this resembles the UNIX philosophy more closely
  • 16. 16 @ k a i _ r i c h a r d DEMO like it‘s 01.01.1990 – sort of
  • 17. 17 @ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins
  • 18. 18 @ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins Don't put anything in your .vimrc you don't understand! https://dougblack.io/words/a-good-vimrc.html
  • 19. 19 @ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins Don‘t be like me
  • 20. 20 @ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins https://github.com/Shougo/dein.vim
  • 21. 21 @ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins https://github.com/ctrlpvim/ctrlp.vim https://github.com/scrooloose/nerdtree
  • 22. 22 @ k a i _ r i c h a r d You can turn VIM into an IDE with tmux and some essential plugins https://github.com/tmux/tmux
  • 23. 23 @ k a i _ r i c h a r d You wont succeed if you don‘t practice – but don‘t be to hard on your self. VI is not difficult it‘s just uncommon because we are so used to the ideas of emacs Start slow and ease into it - when using the shell to change code use VI from time to time. Don‘t go crazy with plugins.
  • 24. 24 @ k a i _ r i c h a r d Thanks ʕ •ᴥ•ʔ
  • 25. 25 @ k a i _ r i c h a r d Questions?
  • 26. 26 @ k a i _ r i c h a r d Slides and Links Twitter: @kai_richard Github: https://github.com/kairichard/ LinkedIn: https://www.linkedin.com/in/kairichard/

Editor's Notes

  1. Beore using VI i used textmate and before that i think it was notepad ++
  2. Beore using VI i used textmate and before that i think it was notepad ++
  3. I can talk a little bit about vim and share my experience with you but not at all would I call my self an advance user. But manipulating text is the most fundamental skill a programmer should have. The better you are at changing things to match you internal concept/idea the faster you are at translating ideas into working code.
  4. Backspace wan‘t invented yet that is vim tried to be effcient
  5. Then came the mouse and changed everything. Because it is easy to learn and does not require remembering keystrokes and movements, it only needs visual cortex which costs less energy and is easier to use. Make the metaphore with the champions chips of remembering stuff and the one strategy they use to put stuff into imaganiary places. When you are not inserting new code what are you doing?
  6. There are many motions, word-motion, text-motions, line motions - but the underlying syntax of the language stays the same. To gether these from commands