
The following README describes the X11 stuff.  The code, and this readme,
were provided by Dave Lemke...   -pgf 11/91
(I'm not trying to disassociate myself -- I just don't know much about X
or xvile yet...  :-)


============================================


Notes on X11 version of vile

- make sure estruct.h has X11 set (and no other display option)
- make sure the makefile has the proper SCREEN and LIBS

Using xvile:

- button actions

	1 - set cursor and buffer.  with a modifier, centers view around
		point.  motion is selection wipe.
	2 - pastes selection at current point.  with a modifier, pastes
		it at the mouse cursor
	3 - extends selection

see vile.hlp for a summary of the standard commands

current bugs & limitiations:

- selections are weak at best:
	- they stop displaying when the screen changes
	- there's no support for multi-click
	- there's no support for more than a screen's worth

- can get badly behind auto-repeated keys

===================================
notes:

add new functions for:
	 making new windows
	 - need to swap 'term' -- size diffs between windows
	 - add TextWindow to each WINDOW
	 - make sure mlwrite & friends use current window
	 	only
	- make sure multiple views on same buffer all update

fix:
	- charClass gets confused if it has quotes around it

	- '!!cmd' causes lots of confusion abotu editor state

	- X version seems to be reading keyboard

	- in vi, yank/kill goes to default buffer as well as named buffer.
    		vile only sends them to named buffer

	- autoindent, with leading spaces -- vi eats them, vile doesn't

        - cursor doesn't unlcear when in selection

        - talk to Saber -- use CUT_BUFFER0 as well as PRIMARY

	- support mouse selection of regions

display code:
	fix to understand multiple windows -- attach a TextWindow to 
	each WINDOW


selections:
	- handle it scrolling away (how do i trap that?)
		not simply.  there's no hook right now for scrolling 
		situations
		- maybe l_to_vline()?
	- > screen size

selection bugs:
	problem with Button1.  sets selection & point, which probably isn't
	what we want.  make one of them require a modifier?

screen dirt:
	'>' gets left behind sometimes when line was too long

optimize:

	keyboard -- flush (or ignore) extra commands?
		(lots of ^E,^Y pairs queue up)

	selections - use xor and FillRects when wiping (and otherwise?)

======================================
todo

what vile gives me in an xterm:
	- vi (more or less)
	- multiple 'windows' (split screen)
	- keyboard macros (nothing from .exrc, including map)
	- understands SIGWINCH

what xvile has:
	- the above
	- mouse control over the current window (with an option to center
		the chosen point)
	- rudimentary selections
		(best feature so far is that it always inserts the text; no
		string of bells if you forget to go into insert mode)
	- better display speed than xterm?
	- no problem with resizes
	- rudimentary ICCCM support
	- font & selection resource control
	- on-the-fly font change

what xvile should eventually have:
	- multiple X windows
	- better selections
		- support for when the screen scrolls (no existing hooks
			to attach to)
		- support for large (> screen size) selections
	- most of the basic command line options
	- use a toolkit, if it gets too fancy in the UI arena

long shot ideas:
	- color?  
		- its trivial to do, but does it mean anything
	- menus to make simple operations easier
		- i won't want them, but if enough people get interested,
		they might
	- scrollbars?
		- could be useful when in command mode, but probably
			just confusing when in insert mode

