I see too many people using a series of commands like the ones that follow. Programmers do this when they write and compile programs. Writers use this when they're making a draft file and running it through the formatter. They're probably wasting a lot of time and effort:
%vi somefile... Edit somefile, then quit vi ... %someprog somefile... Process somefile ... %vi somefile... Edit somefile again ... %someprog somefile... Process somefile again ...
Each time they restart 
vi
, they have to reset options and move the cursor to the place they were working before. After they restart, 
vi
 has forgotten the previous search (the 
n
 command), the previous action (the 
.
 command), the previous regular expression, the named and numbered buffers...
If your system has 
job control (
12.8
)
, that'll solve all these problems. [1] Instead of quitting 
vi
, get into command mode and write your buffer with the 
:w
 command. Stop the editor with the CTRL-z command. Then, process the file. When you're ready to do more editing, bring your 
vi
 job back into the foreground with 
fg
. The editor will be just where it was.
[1] If it doesn't, you can still use a shell escape ( 30.26 ) .
Even better, you can set 
vi
's option called 
autowrite
. If you've made any changes to the buffer before you press CTRL-z, 
vi
 will automatically write the buffer. You won't need to remember to type 
:w
 before you stop the editor. You can set 
autowrite
 at a colon (
:
) prompt, but I set it in my 
.exrc
 file (
30.6
)
 instead.
[You don't absolutely have to write your file before suspending vi . It's a good piece of advice, but not required by the job control mechanism. Typing CTRL-z will suspend the editor whether you've written out your files or not. - TOR ]
-