Pointer Variables and Dynamic Allocation


Vim for programmers





Introduction




Modes


Important Minimal Essentials


Command Mode


Printing


Help


Simple File Commands


More File Commands


Bang Commands





Input Mode Commands




Change to input mode


Exit Input Mode


Change to input mode - Advanced


G commands - Advanced


More G commands - Advanced


Control commands in input mode - Advanced





Replace Mode Commands




Change to Replace Mode





Movement




Cursor Movement - Character


Cursor Movement - Word


Cursor Movement - Line


Cursor Movement - File


[Count] Movement


Screen Movement


Screen Movement - Advanced


More Cursor Movement - Advanced


Mark Movement (Advanced, but useful)


Jump Movement - Advanced





Searching




Search Options


Advanced Searching


Regular Expressions





Editing




Deleting character [can use counts]


Undo, redo, repeat


Command plus motion


Deleting lines [can use counts]


Cut and Paste


Swap


Copy (Command and motion) and Paste


Copy Buffers - Advanced


Replace a Character


Changing words [all take counts]


Changing lines [all take counts]


Text Objects - Advanced (but really useful)


More Text Objects - Advanced


Substitute Command - Substitute one string for another





Visual Mode - Highlighting




Three kinds of highlighted areas


Commands on Visual Areas


Commands on Visual Blocks


Other Visual Commands


Useful operators





Folding




Creating Folds


Opening and Closing Folds





History Windows




Command History Window - Advanced (but really useful)


Search History Window





Multifile Editing (Advanced, but few basics)




Editing another file


Split Windows


Tabbed Editing


:args





Configuration




Set Command


:options Command


Map Command





Vim Startup




Startup Files


Vimrc Commands - Colons not required

set nobackup      " backup files are useful, but they create clutter
filetype indent on  " do automatic indentation
filetype plugin on  " load filetype plugins
syntax enable       " turn on syntax highlighting
set ai              " autoindent 
set backspace=2     " backspace past newlines
set shiftwidth=4    " how much to shift on >>
set smarttab        " Enters shiftwidth spaces at line start when tab entered
set ignorecase      " Ignore case when searching
set smartcase       "    but, if case is used in the pattern, DON'T ignore it
noremap ; :         : Save a keystroke
remap q; q:         : Save another keystroke

Plugins


User Plugins


Filetype Plugins


User Filetype Plugins


User Filetype Plugin: java.vim

    set makeprg=javac\ % 
    ab pc public class <CR>{<CR><CR>}<UP><up><up><END><left>
    ab psvm public static void main(String[] args)<CR>{<CR><CR>}<UP><TAB><TAB>
    ab sop System.out.println();<LEFT><LEFT>
    ab fori for (int i = 0; i < X; i++)<CR>{<CR><CR>}<UP><TAB><TAB>

Quickfix window


Input Mode Completion


What happend to my paste??





References




My Language Summary