You can also run shell commands from within vi. The :r! command works like :r, but instead of reading a file, it inserts the output of the given command into the buffer at the current cursor location. For example, if you use the command
:r! ls -F
you'll end up with
You can also ``shell out'' of vi, in other words, run a command from within vi, and return to the editor when you're done. For example, if you use the command
:! ls -F
the ls -F command will be executed, and the results displayed on the screen, but not inserted into the file which you're editing. If you use the command
:shell
vi will start an instance of the shell, allowing you to temporarily put vi ``on hold'' while you execute other commands. Just logout of the shell (using the exit command) to return to vi.