YAVI - Yet Another VI

YAVI is a console style text editor inspired by vi/vim, written originally 
in BlitzBasic many moons ago, but converted to BambooBasic as a test example 
(To see if I can trap some errors). I used to use it a lot for plain text files, 
and it's great to see it back in action! :)

It features three modes (Normal, Insert, and Command) for efficient text
editing and includes integrated file browsing and directory navigation.

It's rather tidy and a great "proper" old skool text editor! \o/

The keyboard shortcuts in YAVI are:

  Normal Mode:
  - h or Left Arrow - Move cursor left
  - j or Down Arrow - Move cursor down
  - k or Up Arrow - Move cursor up
  - l or Right Arrow - Move cursor right
  - i - Enter insert mode (insert before cursor)
  - a - Append (insert after cursor)
  - o - Open new line below and enter insert mode
  - x - Delete character under cursor
  - dd - Delete current line (press d twice)
  - Enter - Activate directory entry (when browsing)
  - : (Shift + ;) - Enter command mode

  Insert Mode:
  - ESC - Return to normal mode
  - Enter - Insert new line
  - Backspace - Delete character before cursor
  - Arrow keys - Move cursor
  - Any printable character - Insert character

  Command Mode:
  - :q - Quit (fails if file modified)
  - :q! - Force quit (discard changes)
  - :w - Save file (requires filename already set)
  - :wq - Save and quit
  - :w filename - Save to specified filename
  - :e filename - Load specified file for editing
  - :ls or :dir - List files in current directory
  - :cd path - Change to specified directory
  - :pwd - Show current working directory
  - ESC - Return to normal mode

  Directory Navigation:
  When browsing a directory (:ls or :dir):
  - Use arrow keys or h/j/k/l to navigate
  - Press Enter on a file to open it for editing
  - Press Enter on a directory to navigate into it
  - Press Enter on ".." to go up one directory level
  - The current line is highlighted in blue
  - Current working directory is shown at the top
  
The beauty about this is that it really showcases what BambooBasic can do:
  - modal text editing
  - file I/O
  - directory navigation
  - keyboard input handling
  - graphics rendering
  
  All tied together! :)