Cover
Copyright
Credits
About the Author
About the Reviewers
Table of Contents
Preface
Chapter 1: Getting Started with Vim
Getting Vim
vi, Vim, and friends
vi
STEVIE
Elvis
nvi
Vim
Vile
Compatibility
Vim is charityware
Common terminology
Summary
Chapter 2: Personalizing Vim
Where are the configuration files?
Changing the fonts
Changing color scheme
Personal highlighting
Example 1: Mark color characters after a certain column
Example 2: Mark tabs not used for indentation in code
Example 3: Preventing errors caused by IP addresses
A more informative status line
Toggle menu and toolbar
Adding your own menu and toolbar
buttons
Adding a menu
Adding toolbar icons
Modifying tabs
Work area personalization
Adding a more visual cursor
Adding line numbers
Spell checking your language
Adding helpful tool tips
Using abbreviations
Example 1: Using abbreviations for quick address insertion
Modifying key bindings
Summary
Chapter 3: Better Navigation
Faster navigation in a file
Context-aware navigation
Moving around within a code file
Moving in a code file
Navigating long lines
Faster navigation in Vim help
Faster navigation in multiple buffers
Open referenced files faster
Search and you will find
Search the current file
Example 1: Find the next occurrence of a word
Example 2: Search for a word under the cursor
Search in multiple files
Search the help system
X marks the spot
Visible markers—using signs
Hidden markers—using marks
Summary
Chapter 4: Production Boosters
Using templates
Using template files
Abbreviations as templates
Snippets with the snipMate script
Using tag lists
Easier taglist navigation
Other usages of taglists
Using autocompletion
Autocompletion with known words
Autocompletion using dictionary lookup
Omnicompletion
All-in-one completion
Using macro recording
Using sessions
Simple session usage
Satisfy your own session needs
Sessions as a project manager
Registers and undo branching
Using registers
The unnamed register
The small delete register
The numbered registers
The named registers
The read-only registers
The selection and drop registers
The black hole register
Search pattern register
The expression register
Using undo branching
Folding
Simple text file outlining
Using vimdiff to track the changes
Navigation in vimdiff
Using diff to track changes
Open files anywhere
Faster remote file editing
Summary
Chapter 5: Advanced Formatting
Formatting text
Putting text into paragraphs
Aligning text
Marking headlines
Creating lists
Formatting code
Autoindent
Smartindent
Cindent
Indentexpr
Fast code-block formatting
Auto format pasted code
Using external formatting tools
Indent
Berkeley Par
Tidy
Summary
Chapter 6: Basic Vim Scripting
Syntax-color schemes
Your first syntax-color file
Syntax regions
Color scheme and syntax coloring
Using scripts
Script types
Installing scripts
Uninstalling scripts
Script development
Script writing basics
Types
Variables
Conditions
Working with lists and dictionaries
Loops
Creating functions
Summary
Chapter 7: Extended Vim Scripting
Script structure
Script header
Script-loaded check
Script configuration
Key mappings
Functions
Putting it all together
Scripting tips
Gvim or Vim?
Which operating system?
Which version of Vim?
Printing longer lines
Debugging Vim scripts
Distributing Vim scripts
Making Vimballs
Remember the documentation
Using external interpreters
Vim scripting in Perl
Vim scripting in Python
Vim scripting in Ruby
Summary
Appendix A: Vim Can Do Everything
Vim games
Game of Life
Nibbles
Rubik's cube
Tic-Tac-Toe
Mines
Sokoban
Tetris
Programmers IDE
Mail program
Chat with Vim
Using Vim as a Twitter client
Appendix B: Vim Configuration Alternatives
Tips for keeping your vimrc file clean
A vimrc setup system
Storing vimrc online
Index