Open main menu

Wikibooks β

Learning the vi Editor/BusyBox vi

< Learning the vi Editor


BusyBox is a very popular program on many embedded Linux systems. In fact, someone working on an embedded Linux system is very likely to encounter BusyBox. BusyBox combines tiny versions of many common UNIX utilities into a single relatively small executable. One of the included utilities is a vi clone.

The BusyBox vi clone is limited. Among the limits are:

  • It does not support all common vi commands.
  • It supports the '!' command to execute a child process, but does not capture process output
  • It also lacks the normal vi crash recovery feature.
  • It always assumes a vt102 type terminal (emulator)
  • Only very few settings are configurable via :set
  • .exrc configuration and configuration via environment variables are not supported
  • Line marks are not correctly adjusted if lines are inserted or deleted before the mark.
  • Only whole-line undo (uppercase 'U'), no last-change undo (lowercase 'u') is supported.
  • Searches ignore case by default, but can be case sensitive using :set noignorecase
  • Command-counts need to prefix a command
  • command counts for a, c, i, r, y and several other commands are not supported.
  • A limited set of ex commands are supported.

In short, a lot of information in this vi tutorial is not applicable to BusyBox vi.

However, BusyBox vi also has some differences (considered by some to be enhancements) over classic vi:

  • Cursor navigation in insert and command mode
  • <INSERT> key changes to insert mode
  • No wrapping of long lines. Long lines are displayed via side-scrolling.


Learning the vi Editor: Getting acquaintedBasic tasksMaking your work easierAdvanced tasksDetailsVi clones (VimBasic navigationModesTips and TricksUseful things for programmers to knowEnhancing VimVim on WindowsVimL Script language, Vile, BB vi)vi Reference