Learning the vi Editor

Learning the vi EditorSearch this book
Previous: 12.4 InitializationChapter 12
vile -- vi Like Emacs
Next: 12.6 GUI Interfaces

12.5 Multiwindow Editing

vile is somewhat different from the other clones. It started life as a version of Micro-Emacs, and then was modified into an editor with the "finger-feel" of vi.

One of the things that versions of emacs have always done is handle multiple windows and multiple files; as such, vile was the first vi-like program to provide multiple windows and editing buffers.

As in elvis and vim, the :split command[2] will create a new window, and then you can use the ex command :e filename to edit a new file in the new window. After that, things become different, in particular the vi command mode keys to switch among windows are very different.

[2] That this works is an artifact of the fact that vile allows you to abbreviate commands. The actual command name is split-current-window.

<preface id="VI6-CH-0">
<title>Preface </title>

Text editing is one of the most common uses of any computer system, and
<command>vi</command> is one of the most useful standard text editors>
With <command>vi</command> you can create new files, or edit any exist>
 ch00.sgm                                                         top
# Makefile for vi book
# Arnold Robbins

CHAPTERS = ch00_6.sgm ch00_5.sgm ch00.sgm ch01.sgm ch02.sgm ch03.sgm \
	ch04.sgm ch05.sgm ch06.sgm ch07.sgm ch08.sgm
APPENDICES = appa.sgm appb.sgm appc.sgm appd.sgm

POSTSCRIPT = ch00_6.ps ch00_5.ps ch00.ps ch01.ps ch02.ps ch03.ps \
	ch04.ps ch05.ps ch06.ps ch07.ps ch08.ps \
=== Makefile =[modified]========================================= top ==

The split screen is the result of typing vile ch00.sgm followed by :split and :e Makefile.

Like vim, all windows share the bottom line for execution of ex commands. Each window has its own status line, with the current window indicated by having its status line filled with equal signs. The status line also acquires an I in the second column when in insert mode, and [modified] is appended after the filename when the file has been changed but not yet written out.

vile is also like emacs in that commands are bound to key sequences. Table 12.1 presents the commands and their key sequences. In some cases, two sets of key sequences do the same operation, for example, the delete-other-windows command.

Table 12.1: vile Window Management Commands


Key Sequence(s)



^O, ^X 1

Eliminate all windows except the current one.


^K, ^X 0

Destroy the current window, unless it is the last one.

edit-file, E, e

^X e

Bring given (or under-cursor, for ^X e) file or existing buffer into window.



Increase the size of the current window by count lines.


^A ^E

Move next window down (or buffer up) by count lines.


^A ^Y

Move next window up (or buffer down) by count lines.


^X ^L

Scroll window to left by count columns, half screen if count unspecified.


^X ^R

Scroll window to right by count columns, half screen if count unspecified.


^X o

Move to the next window.


z where

Reframe with cursor specified by where, as follows: center (., M, m), top  ([RETURN], H, t), or bottom (-, L, b).


^X O

Move to the previous window.


Change the current window to count lines. count is supplied as a prefix argument.


Return to window saved with save-window.


Mark a window for later return with restore-window.


^A ^D

Move next window down by count half screens. count is supplied as a prefix argument.


^A ^U

Move next window up by count half screens. count is supplied as a prefix argument.



Decrease the size of the current window by count lines. count is supplied as a prefix argument.


^X 2

Split the window in half; a count of 1 or 2 chooses which becomes current. count is supplied as a prefix argument.


Bring given file or existing buffer into window, mark it "view-only."



Display a list of the first nine buffers. A digit moves to the given buffer, __ moves to the most recently edited file.



Pop up/down a window showing all the vile buffers.

Previous: 12.4 InitializationLearning the vi EditorNext: 12.6 GUI Interfaces
12.4 InitializationBook Index12.6 GUI Interfaces

The UNIX CD Bookshelf NavigationThe UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System