1
Vi Editor for PeopleSoft DBA
VI Editor commands for PeopleSoft DBA
Movement Commands |
||
Character |
||
h, j, k, l | Left, down, up, right | |
Text |
||
w, W, b, B | Forward, backward by word | |
e, E | End of word | |
(, ) | Beginning of next, previous sentence | |
{, } | Beginning of next, previous paragraph | |
[[, ]] | Beginning of next, previous section | |
Lines |
||
0, $ | First, last position of current line | |
^ | First non-blank character of current line | |
+, - | First character of next, previous line | |
H | Top line of screen | |
M | Middle line of screen | |
L | Last line of screen | |
nH, nL | Line n from top, bottom of screen | |
Scrolling |
||
[Ctrl]F, [Ctrl]B | Scroll forward, backward one screen | |
[Ctrl]D, [Ctrl]U | Scroll down, up one-half screen | |
[Ctrl]E, [Ctrl]Y | Show one more line at bottom, top of window | |
z[Enter] | Scroll until line with cursor is at top of screen | |
z. | Scroll until line with cursor is at middle of screen | |
z- | Scroll until line with cursor is at bottom of screen | |
Searches |
||
/pattern | Search forward for pattern | |
?pattern | Search backward for pattern | |
n, N | Repeat last search in same, opposite direction | |
/, ? | Repeat previous search forward, backward | |
fx | search forward for character x in current line | |
Fx | search backward for character x in current line | |
tx | search forward for character before x in current line | |
Tx | search backward for character after x in current line | |
; | Repeat previous current-line search | |
, | Repeat previous current-line search in opposite direction | |
Line Number |
||
[Ctrl]G | Display current line number | |
nG | Move to line number n | |
G | Move to last line in file | |
:n | move to line number n | |
Marking Position |
||
mx | Mark current position as x | |
`x | Move cursor to x | |
`` | Return to previous mark or context | |
'x | Move to beginning of line containing mark x | |
'' | Return to beggining of line containing previous mark | |
|
||
Editing Commands |
||
Insert |
||
i, a | Insert text before, after cursor | |
I, A | Insert text at beginning, end of line | |
o, O | Open new line for text below, above cursor | |
Change |
||
r | Replace with next typed characer | |
~ | Change between uppercase and lowercase | |
cm | Change text block defined by movement command m (e.g., cw changes next word) | |
cc | Change current line | |
C | Change to end of line | |
R | Type over characters | |
s | Delete character and continue typing | |
S | Delete current line and continue typing | |
Delete, Move |
||
x | Delete character | |
X | Delete character to the left of the cursor | |
dm | Delete text block defined by movement command m (e.g., dw deletes next word) | |
dd | Delete current line | |
D | Delete to end of line | |
p, P | Put deleted text before, after cursor | |
"np | Put text from delete buffer number n after cursor (for last nine deletions) | |
Yank |
||
ym | Yank (copy) text block defined by movement command m (e.g., yw yanks next word) | |
yy, Y | Yank current line | |
"ayy | Yank current line into named buffer a | |
p, P | Put yanked text before, after cursor | |
"aP | Put text from buffer a before cursor | |
Other Commands |
||
. | Repeat last edit command | |
u | Undo last edit | |
U | Undo changes to current line | |
J | Join two lines | |
[Ctrl]L, [Ctrl]R | Redraw screen | |
Examples of ex Equivalents |
||
:d | Delete lines | |
:m | Move lines | |
:co or :t | Copy lines | |
:.,$d | Delete from current line to end of file | |
:30,60m. | Move lines 30 through 60 after current line | |
:.,/pattern/co$ | Copy from current line through line containing pattern to end of file | |
|
||
Invoking vi |
||
vi file | Invoke vi editor on file | |
vi file1 file2 | Invoke vi editor on files sequentially | |
view file | Invoke vi editor on file in read-only mode | |
vi -R file | Invoke vi editor on file in read-only mode | |
vi -r file | Recover file and recent edits after system crash | |
vi + file | Open file at last line | |
vi +n file | Open file at line number n | |
vi +/pattern file | Open file at pattern | |
ex file | Invoke ex editor on file from Unix | |
|
||
Other ex Commands |
||
ex Commands |
||
: | Invoke ex from vi editor | |
:sh | Create a new unix shell | |
[Ctrl]D | Return to editor from shell | |
:! command | Issue a unix command | |
:r newfile | Read contents of newfile into current file | |
:r !command | Read output of unix command into current file | |
Abbreviations |
||
:map x sequence | Define keystroke x as a command sequence | |
:unmap x | Disable map x | |
:map! x sequence | Define x as command sequence invoked in insert mode | |
:unmap! x | Disable insert mode map x | |
:ab abbr phrase | Abbreviate phrase as abbr; when abbr is typed in insert mode, it expands into phrase | |
:unab abbr | Disable abbreviation abbr | |
Setting Options |
||
:set option | Activate option | |
:set option=value | Assign value to option | |
:set nooption | Deactivate option | |
:set | Display options set by user | |
:set all | Display all options | |
:set option? | Display value of option | |
|
||
Exit and Save Commands |
||
ZZ | Save file and quit | |
: x | Save file and quit | |
:wq | Save (“write”) file and quit | |
:w | Save file | |
:w! | Save file (overriding protection) | |
:30,60w newfile | Save lines 30 through 60 as file newfile | |
:30,60w>> file | Append lines 30 through 60 to file file | |
:w %.new | Save current buffer named file as file.new | |
:q | Quit | |
:q! | Quit, discarding any changes | |
Q | Quit vi and invoke ex | |
:e file2 | Edit file2 without leaving vi | |
:e! file2 | Discard changes to current file, then edit file2 without leaving vi | |
:n | Edit next file | |
:e! | Discard all changes since last save | |
:e# | Edit alternate file | |
|
||
Special Symbols in ex |
||
. | Addressing symbol for current line | |
$ | Addressing symbol for last line of file | |
# | Alternate filename | |
% | Current filename | |
! | (after an ex command) override warning |
Have any useful commands that you want to share with others. Post them below and help others.
[…] If you’re unfamiliar with vi editor, here is a quick tutorial of basic commands. […]