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 Espressions - Advanced

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

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

Useful operators

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

How to learn

Happy 21st Birthday Vim

History

Some baby pictures

Pictures