SlideShare a Scribd company logo
1 of 16
(Vi iMproved)
Coding With Vim
Presented By: Matthew Kosolofski
Agenda
● What The Heck Is Vim and Why Would I Want To
Use It?!
● I Just Want To Edit A File!
● Vim On Steroids
● Painful Quirks and Gotchas
● Always Vimproving
What The Heck Is Vim and Why
Would I Want To Use It?
An open source highly configurable
command line text editor
Available for all standard platforms
Customize once and transfer to any other machine
Works really well as an IDE
Best thing of all... ITS FREE!
(charitable donations)
I Just Want To Edit A File!
Normal Mode
<ESC>
● For performing edit commands
● Can always be reached from other modes by hitting
escape
Undo Change: u
Redo Change: <CONTROL>r
Delete Line: dd
Copy Line (yank): yy
Paste After Cursor From Delete/Copy Buffer: p
Repeat Command X Times: <NUMBER><COMMAND>
Repeat Last Command: .
Tab Current Line Contents Right: <SHIFT>>
Tab Current Line Contents Left: <SHIFT><
Auto Format: =
Search For Next Word Under Cursor: <SHIFT>*
Start Recording Macro: q<KEY>
Stop Recording Macro: <ESC>q
Play Macro: <SHIFT>@<KEY>
Auto Text Completion: <CONTROL>p
Select Line(s): <SHIFT><RIGHT CLICK HOLD AND DRAG>
Copy Selection To Clipboard:
<CONTROL><SHIFT> c OR <LEFT CLICK>
Paste From Clipboard: <CONTROL><SHIFT>p OR <LEFT CLICK>
Insert Mode
<ESC> i
● Direct keyboard edits
Select Mode
● Windows like operations
Reg Ex Search: <ESC>/<REGEX>
Reg Ex Replace: <ESC> :%s/<FIND>/<REPLACE>/gci
Save File: <ESC>:w
Close File: <ESC>:q
Force File Close: <ESC>:q!
Force Save: <ESC>:w!
Plugin Commands: <ESC>:<COMMAND>
View Vim Help File: <ESC>:help vim
View Bundle Help File:<ESC>:help<BundleName>
Command Mode
<ESC>: <ESC>/ <ESC>?
● Search/Replacements
● Opening, closing, saving files
● Plugin commands
Select Lines: <ARROW KEYS>
Tab Selected Line Right: <SHIFT>>
Tab Selected Line Left: <SHIFT><
Copy Selected Text To Buffer: y
Deleted Text To Buffer: d
Regex search on selected: /<REGEX>
Replace on selected text: :s/<FIND>/<REPLACE>/gci
Visual Mode
<ESC>v <ESC><CONTROL>v
● Edits with selection
But Wait... There's More Modes!!!!
Ex-Mode - Like command mode but limited
Six mixed modes of the modes you just learned
On Steroids
● If missing, simply create the file
● Where you customize your vim experience (plugins, key
mappings, custom macros, vim environment)
● Automatically loaded when you open a file with vim
VIMRC
Located at: ~/.vimrc
Plugins
Vundle - Plugin manager
Control P - Recursively search for files using regex
NerdTree - Directory listing viewer
vDebug - Code debugging using xDebug
cTags - Drill into code
tList - Source code structure
Syntastic - Syntax checker
There's probably a plugin for that!
VIMDIFF
vimdiff <file1> <file2>
● For diffing 2 or more files
● Comes with vim installation
● Leverage a bash script to vimdiff changed repo files.
(see my guthub account for an example)
Painful Quirks and Gotchas!
● “<CONTROL> S” Accepts key strokes but quits echoing.
Recover: <CONTROL> Q
● Not all terminal emulators are created equal (putty, bash).
Expected key mappings may be overridden but can be
changed in the terminal preferences.
● Steep Learning Curve
Always Vimproving
www.vim.org
vimtutor
Questions?
Twitter
@mkosolof
LinkedIn
https://www.linkedin.com/pub/matthew-kosolofski/34/814/238
GitHub
http://github.com/mkosolofski
SlideShare
http://www.slideshare.net/MatthewKosolofski

More Related Content

Viewers also liked

Understanding REST
Understanding RESTUnderstanding REST
Understanding RESTNitin Pande
 
Almost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without ProgrammingAlmost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without ProgrammingMichelle Minkoff
 
Kodar-lan - Text and editors Regular expression
Kodar-lan - Text and editors Regular expressionKodar-lan - Text and editors Regular expression
Kodar-lan - Text and editors Regular expressionTim Gremalm
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
 
Kodar-lan - Text and editors Character encoding and UTF-8
Kodar-lan - Text and editors Character encoding and UTF-8Kodar-lan - Text and editors Character encoding and UTF-8
Kodar-lan - Text and editors Character encoding and UTF-8Tim Gremalm
 
Scraping data from the web and documents
Scraping data from the web and documentsScraping data from the web and documents
Scraping data from the web and documentsTommy Tavenner
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2fishwarter
 
Kodar-lan - Text and editors Vi/Vim
Kodar-lan - Text and editors Vi/VimKodar-lan - Text and editors Vi/Vim
Kodar-lan - Text and editors Vi/VimTim Gremalm
 
The Django Web Application Framework
The Django Web Application FrameworkThe Django Web Application Framework
The Django Web Application FrameworkSimon Willison
 
Basic introduction to SOA
Basic introduction to SOABasic introduction to SOA
Basic introduction to SOAJoaquin Rincon
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsSolution4Future
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web ServicesAngelin R
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with PythonLarry Cai
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Martin Necasky
 
Cheat sheet - tmux (Terminal Multiplexer)
Cheat sheet - tmux (Terminal Multiplexer)Cheat sheet - tmux (Terminal Multiplexer)
Cheat sheet - tmux (Terminal Multiplexer)Tim Gremalm
 
A Comprehensive Introduction to Everything SOA
A Comprehensive Introduction to Everything SOAA Comprehensive Introduction to Everything SOA
A Comprehensive Introduction to Everything SOAMehmet Akyuz
 

Viewers also liked (18)

Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
 
Almost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without ProgrammingAlmost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without Programming
 
Using Vim
Using VimUsing Vim
Using Vim
 
Kodar-lan - Text and editors Regular expression
Kodar-lan - Text and editors Regular expressionKodar-lan - Text and editors Regular expression
Kodar-lan - Text and editors Regular expression
 
Soap vs rest
Soap vs restSoap vs rest
Soap vs rest
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDB
 
Kodar-lan - Text and editors Character encoding and UTF-8
Kodar-lan - Text and editors Character encoding and UTF-8Kodar-lan - Text and editors Character encoding and UTF-8
Kodar-lan - Text and editors Character encoding and UTF-8
 
Scraping data from the web and documents
Scraping data from the web and documentsScraping data from the web and documents
Scraping data from the web and documents
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
Kodar-lan - Text and editors Vi/Vim
Kodar-lan - Text and editors Vi/VimKodar-lan - Text and editors Vi/Vim
Kodar-lan - Text and editors Vi/Vim
 
The Django Web Application Framework
The Django Web Application FrameworkThe Django Web Application Framework
The Django Web Application Framework
 
Basic introduction to SOA
Basic introduction to SOABasic introduction to SOA
Basic introduction to SOA
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
 
Restful Web Services
Restful Web ServicesRestful Web Services
Restful Web Services
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with Python
 
Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)Web Services - Architecture and SOAP (part 1)
Web Services - Architecture and SOAP (part 1)
 
Cheat sheet - tmux (Terminal Multiplexer)
Cheat sheet - tmux (Terminal Multiplexer)Cheat sheet - tmux (Terminal Multiplexer)
Cheat sheet - tmux (Terminal Multiplexer)
 
A Comprehensive Introduction to Everything SOA
A Comprehensive Introduction to Everything SOAA Comprehensive Introduction to Everything SOA
A Comprehensive Introduction to Everything SOA
 

Similar to Coding In Vim

Similar to Coding In Vim (20)

Vi editor
Vi editorVi editor
Vi editor
 
Text editor In RHEL
Text editor In RHELText editor In RHEL
Text editor In RHEL
 
Linux fundamental - Chap 00 shell
Linux fundamental - Chap 00 shellLinux fundamental - Chap 00 shell
Linux fundamental - Chap 00 shell
 
Tuffarsi in vim
Tuffarsi in vimTuffarsi in vim
Tuffarsi in vim
 
Unix is my IDE
Unix is my IDEUnix is my IDE
Unix is my IDE
 
Tech talk 01.06.2017
Tech talk 01.06.2017Tech talk 01.06.2017
Tech talk 01.06.2017
 
Batch programming and Viruses
Batch programming and VirusesBatch programming and Viruses
Batch programming and Viruses
 
Emacs tutorial
Emacs tutorialEmacs tutorial
Emacs tutorial
 
Programming
ProgrammingProgramming
Programming
 
Tips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net EffectivelyTips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net Effectively
 
Linux programming - Getting self started
Linux programming - Getting self started Linux programming - Getting self started
Linux programming - Getting self started
 
Tmux quick intro
Tmux quick introTmux quick intro
Tmux quick intro
 
Unit 5 vim an advanced text editor
Unit 5 vim an advanced text editorUnit 5 vim an advanced text editor
Unit 5 vim an advanced text editor
 
Xdebug from a to x
Xdebug from a to xXdebug from a to x
Xdebug from a to x
 
Nithi
NithiNithi
Nithi
 
Windows 7 command prompt commands
Windows 7 command prompt commandsWindows 7 command prompt commands
Windows 7 command prompt commands
 
Unix Lec2
Unix Lec2Unix Lec2
Unix Lec2
 
Linux shell
Linux shellLinux shell
Linux shell
 
Linuxs1
Linuxs1Linuxs1
Linuxs1
 
unix-editors.pdf
unix-editors.pdfunix-editors.pdf
unix-editors.pdf
 

Recently uploaded

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Coding In Vim

  • 1. (Vi iMproved) Coding With Vim Presented By: Matthew Kosolofski
  • 2. Agenda ● What The Heck Is Vim and Why Would I Want To Use It?! ● I Just Want To Edit A File! ● Vim On Steroids ● Painful Quirks and Gotchas ● Always Vimproving
  • 3. What The Heck Is Vim and Why Would I Want To Use It? An open source highly configurable command line text editor Available for all standard platforms Customize once and transfer to any other machine Works really well as an IDE Best thing of all... ITS FREE! (charitable donations)
  • 4. I Just Want To Edit A File!
  • 5. Normal Mode <ESC> ● For performing edit commands ● Can always be reached from other modes by hitting escape Undo Change: u Redo Change: <CONTROL>r Delete Line: dd Copy Line (yank): yy Paste After Cursor From Delete/Copy Buffer: p Repeat Command X Times: <NUMBER><COMMAND> Repeat Last Command: . Tab Current Line Contents Right: <SHIFT>> Tab Current Line Contents Left: <SHIFT>< Auto Format: = Search For Next Word Under Cursor: <SHIFT>* Start Recording Macro: q<KEY> Stop Recording Macro: <ESC>q Play Macro: <SHIFT>@<KEY>
  • 6. Auto Text Completion: <CONTROL>p Select Line(s): <SHIFT><RIGHT CLICK HOLD AND DRAG> Copy Selection To Clipboard: <CONTROL><SHIFT> c OR <LEFT CLICK> Paste From Clipboard: <CONTROL><SHIFT>p OR <LEFT CLICK> Insert Mode <ESC> i ● Direct keyboard edits Select Mode ● Windows like operations
  • 7. Reg Ex Search: <ESC>/<REGEX> Reg Ex Replace: <ESC> :%s/<FIND>/<REPLACE>/gci Save File: <ESC>:w Close File: <ESC>:q Force File Close: <ESC>:q! Force Save: <ESC>:w! Plugin Commands: <ESC>:<COMMAND> View Vim Help File: <ESC>:help vim View Bundle Help File:<ESC>:help<BundleName> Command Mode <ESC>: <ESC>/ <ESC>? ● Search/Replacements ● Opening, closing, saving files ● Plugin commands
  • 8. Select Lines: <ARROW KEYS> Tab Selected Line Right: <SHIFT>> Tab Selected Line Left: <SHIFT>< Copy Selected Text To Buffer: y Deleted Text To Buffer: d Regex search on selected: /<REGEX> Replace on selected text: :s/<FIND>/<REPLACE>/gci Visual Mode <ESC>v <ESC><CONTROL>v ● Edits with selection
  • 9. But Wait... There's More Modes!!!! Ex-Mode - Like command mode but limited Six mixed modes of the modes you just learned
  • 11. ● If missing, simply create the file ● Where you customize your vim experience (plugins, key mappings, custom macros, vim environment) ● Automatically loaded when you open a file with vim VIMRC Located at: ~/.vimrc
  • 12. Plugins Vundle - Plugin manager Control P - Recursively search for files using regex NerdTree - Directory listing viewer vDebug - Code debugging using xDebug cTags - Drill into code tList - Source code structure Syntastic - Syntax checker There's probably a plugin for that!
  • 13. VIMDIFF vimdiff <file1> <file2> ● For diffing 2 or more files ● Comes with vim installation ● Leverage a bash script to vimdiff changed repo files. (see my guthub account for an example)
  • 14. Painful Quirks and Gotchas! ● “<CONTROL> S” Accepts key strokes but quits echoing. Recover: <CONTROL> Q ● Not all terminal emulators are created equal (putty, bash). Expected key mappings may be overridden but can be changed in the terminal preferences. ● Steep Learning Curve