Ex Quick Reference
Entering/leaving EX
| % ex name | edit name, start at end |
| %ex +n name | ... starting at line n |
| % ex -t tag | start at tag |
| %ex -r | list saved files |
| %ex -r name | recover file name |
| %ex name name ... | edit first; rest via :n |
| %ex -R name | read-onlymode |
| :x | exit, saving changes |
| :q! | exit, discaring changes (quit) |
Ex states
| Command | Normal and inital state. Input prompted for by :. Your kill character cancels partial command. |
| Insert | Entered by a, i and c. Arbitary text then terminates with line having only . character on it or abnormally with interrupt. |
| Open/visual | Entered by open or vi, terminates with Q or ^\. |
Ex cammands
| abbrev | ab |
| append | a |
| args | ar |
| change | c |
| copy | co |
| delete | d |
| edit | e |
| file | f |
| global | g |
| insert | i |
| join | j |
| list | l |
| map | |
| mark | ma |
| move | m |
| next | n |
| number | nu |
| open | o |
| preserve | pre |
| p | |
| put | pu |
| quit | q |
| read | re |
| recover | rec |
| rewind | rew |
| set | se |
| source | so |
| stop | st |
| substitute | s |
| unabbrev | una |
| undo | u |
| unmap | unm |
| version | ve |
| visual | vi |
| write | w |
| xit | x |
| yank | ya |
| window | z |
| escape | ! |
| lshift | < |
| print next | <CR> |
| resubst | & |
| rshift | > |
| scroll | ^D |
Ex Command Addresses
| n | line n |
| . | current |
| $ | last |
| + | next |
| - | n forward |
| +n | n forward |
| /pat | next with pat |
| ?pat | last with pat |
| x-n | n before x |
| x,y | x through y |
| 'x | marked with x |
| '' | previous context |
Specifying Terminal Type
| %setenv TERM type | csh and all version 6 |
| $ TERM=type;export TERM | version 7 |
See also rset(1)
Some Terminal Types
- 2621
- 2645
- 300s
- 33
- 37
- 4014
- 43
- 733
- 745
- act4
- act5
- adm3
- adm31
- adm3a
- c100
- dm1520
- dm2500
- dm3025
- dw1
dw2 - gt40
- gt42
- h1500
- h1510
- h19
- i100
- mime
- owl
- t1061
- vt52
Initialisation Options
| EXINIT | place set's here in environment var. |
| set x | enable option |
| set nox | disable option |
| set x=val | give value val |
| set | show changed options |
| set x? | show value of option x |
Useful Options
| autoindent | ai | supply indent |
| autowrite | aw | write before changing files |
| ignorecase | ic | in scanning |
| lisp | () {} are s-exp's | |
| list | print ^I for tab, $ at end | |
| magic | .|* special in patterns | |
| number | nu | number lines |
| paragraphs | para | macro names which start |
| redraw | simulate smart terminal | |
| scroll | command mode lines | |
| sections | sect | macro names... |
| shiftwidth | sw | for < >, and input ^D |
| showmagic | sm | to ) and } as typed |
| slowopen | slow | choke updates during insert |
| window | visual mode lines | |
| wrapscan | ws | around end of buffer? |
| wrapmargin | wm | automatic line splitting |
Scanning Pattern Formation
| ^ | beginning of line |
| $ | end of line |
| . | any character |
| \< | beginning of word |
| \> | end of word |
| [str] | any char in str |
| [^str] | any char not in str |
| [x-y] | any char betwene x and y |
| * | any number of preceding |
VI Quick Reference
Entering/Leaving VI
| vi name | edit name at top |
| vi +n name | ... at line n |
| vi + name | ... at end |
| vi -r | list saved files |
| vi -r name | recover name |
| vi name name ... | edit first; rest via :n |
| vi -t tag | start at tag |
| vi +/pat name | search for pat |
| view name | read-only |
| ZZ | exit from vi, saving changes |
| ^Z | stop vi for later resumption (suspend - use fg) |
The display
| Last line | error messages, echoing input to : / ? |
| @ lines | On screen only, not in file |
| ~ lines | lines past end of input |
| ^x | control characters, ^? Is delete |
| tabs | expand to spaces, cursor at last |
VI States
| Command | Normal and initial state. Others return here. ESC (escape) cancels partial command |
| Insert | Entered by a I A I o O c C s S R. Arbitary text then terminates with interrupt. |
| Last line | Reading input for : / ? or !; terminate with ESC of CR to execute, interrupt to cancel. |
Counts Before VI Commands
| line/column number | z G I | |
| scroll amount | ^D ^U | |
| replicate insert | a I A I | |
| repeat effect | most rest |
Simple Commands
| dw | delete a word |
| de | ... leaving punctuation |
| dd | delete a line |
| 3dd | del 3 lines |
| itextESC | insert text text |
| cwnewESC | change word to new |
| easESC | pluralise word |
| xp | transpose characters |
Interrupting/Cancelling
| ESC | end insert or incomplete command |
| ^? | (delete or rubout) interrupts |
| ^L | reprint screen if ^? scrambles it |
File Manipulation
| :w | write back changes |
| :wq | write and quit |
| :q | quit |
| :q! | quit discard changes |
| :e name | edit file name |
| :e! | reedit, discard changes |
| :e + name | edit name from end |
| :e +n | edit from line n |
| :e # | edit alternate file |
| ^[ | synonym for :e # |
| :w name | write file name |
| :w! name | overwrite file name |
| :sh | run shell, then return |
| :!cmd | run cmd, then return |
| :n | edit net file in args |
| :n args | specify new arg list |
| :f | show current file and line |
| ^G | synonym for :f |
| :ta tag | to tag file entry tag |
| ^] | :ta, following word is tag |
Positioning within a file
| ^F | forward screenfull |
| ^B | backward screenfull |
| ^D | scroll down half screen |
| ^U | scroll up half screen |
| G | goto line (end default) |
| /pat | next line matching pat |
| ?pat | last line matching pat |
| n | repeat last / or ? |
| N | reverse last / or ? |
| /pat+n | nth line after pat |
| ?pat?-n | nth line before pat |
| ]] | next section/function |
| [[ | previous section/function |
| % | find matching () { or } |
Adjusting the Screen
| ^L | clear and redraw |
| ^R | retype, eliminate @ lines |
| zCR | redraw, current at top |
| z- | ... at bottom |
| z. | at center |
| /pat/z- | pat line at bottom |
| zn. | use n line window |
| ^E | scroll window down one line |
| ^Y | scroll window up one line |
Marking and Returning
| `` | previous context |
| '' | ... at first non-white in line |
| mx | mark position with letter x |
| `x | to mark x |
| 'x | ... at first non-white line |
Line positioning
| H | home window line |
| L | last window line |
| M | middle window line |
| + | next line, at first non-white |
| - | previous line, at first non-white |
| CR | return, same as + |
| down arrow or j | next line, same column |
| up arrow or k | previous line, same column |
Character Positioning
| up arrow | |
| 0 | |
| $ | |
| l or right arrow | forwards |
| h or left arrow | backwards |
| ^H | same as back arrow |
| space | same as right arrow |
| fx | find x forwards |
| Fx | ... backwards |
| tx | upto x forward |
| Tx | ... backwards |
| ; | repeat last f F t T |
| , | inservse of ; |
| | | to specified column |
| % | find matching ( { ) or } |
Words, sentences, paragraphs
| w | word forward |
| b | ... backweard |
| e | end of word |
| ) | next sentence |
| } | next paragraph |
| ( | last sentence |
| { | last paragraph |
| W | blank delimited word |
| B | back W |
| E | end of W |
Commands for LISP
| ) | Forward s-expression |
| } | ... but don't stop at atoms |
| ( | Back s-expression |
| { | ... but don't stop at atoms |
Corrections during insert
| ^H | erase last character |
| ^W | erase last word |
| erase | same as ^H |
| kill | erase input this line |
| \ | escapes ^H, your erase, kill |
| ESC | ends insertion, back to command |
| ^? | interrupt, terminate insert |
| ^D | backtab over autoindent |
| ^V | quote non-printing character |
Inser and replace
| a | append after cursor |
| i | insert before |
| A | apend at end of line |
| I | insert before first non-blank |
| o | open line below |
| O | open above |
| rx | replace single char with x |
| R | replace characters |
Operators (double to affect lines)
| d | delete |
| c | change |
| < | left shift |
| > | right shift |
| ! | filter through command |
| = | indent for LISP |
| y | yank lines to buffer |
Miscellaneous Operations
| C | change rest of line |
| D | delete rest of line |
| s | substitute chars |
| S | substitute lines |
| J | join lines |
| x | delete chars |
| X | ... before cursor |
| Y | yank lines |
Yank and put
| p | put back lines |
| P | put before |
| "xp | put from buffer x |
| "xy | yank to buffer x |
| "xd | delete to buffer x |
Undo, redo, retrieve
| u | undo last change |
| U | restore current line |
| . | repeat last change |
| "dp | retrieve dth last delete |