Access of special characters

Kevin Buettner kev@primenet.com
Tue, 27 Feb 2001 23:02:16 -0700


On Feb 27,  9:37am, Robert N. Eaton wrote:

> Thanks, Shawn, I thought it was just me. I tried the alt+ method both at
> the bash prompt and in vi.

I haven't been following this thread closely, but vile and xvile (which
are vi-like editors) allow you to enter arbitrary 8-bit characters.  Below
is the relevant information from vile's help document.  Both vile and
xvile are available on Red Hat's Power Tools CD.  (But if you want
Perl support, you have to build it yourself.)  For more information
regarding this editor, see http://vile.cx.

8-Bit Operation
---------------
	vile allows input, manipulation, and display of all 256 possible
	byte-wide characters.  (Double-wide characters are not supported.)

	Output
	------
	By default, characters with the high bit set (decimal value 128 or
	greater) will display as hex (or octal; see "non-printing- octal"
	above) sequences, e.g.  \xA5.  A range of characters which should
	display as themselves (that is, characters understood by the user's
	display terminal) may be given using the "printing-low" and
	"printing-high" settings (see above).  Useful values for these
	settings are 160 and 255, which correspond to the printable range
	of the ISO-Latin-1 character set.

	Input
	-----

	There are basically three ways of getting 8-bit characters into
	a vile buffer:

	Directly -- if the user's input device (i.e. the terminal or
	    xterm) can generate all characters, and if the terminal
	    settings are such that these characters pass through
	    unmolested, then vile will happily incorporate them into the
	    user's text, or act on them if they are bound to functions.  On
	    an xterm, try "stty cs8 -parenb -istrip".  Real serial lines
	    may take more convincing, at both ends, but use that stty
	    command as a starting point.

	As numbers -- the ^V prefix (or, more correctly, the key bound to
	    the "quote-next-character" function), if followed by up to
	    three digits, will insert a character whose value is that
	    number (no greater than 255) into the buffer.  The number may
	    be entered in decimal (^VNNN), octal with a leading '0' (^V0NNN),
	    or hex with a leading 'x' (^VxNN).

	As digraphs -- Perhaps more useful to some people is using a set of
	    ":map!" commands to aid insertion of 8-bit text.  The file
	    "digraphs.rc" distributed with the vile source contains a set
	    of mappings which should aid the input of ISO 8859/1 text.  As
	    examples, the mappings in digraphs.rc allow one to type ^KU" or
	    ^Ku" to get an umlaut character, ^K12 to get the little '1/2'
	    symbol, ^KY- to get the Yen currency symbol, or ^K:- to get an
	    arithmetic division symbol.

	Users who have no need to enter 8-bit text may want access to the
	meta-bound functions while in insert mode as well as command mode.
	The mode "meta-insert-bindings" controls whether functions bound to
	meta- keys (characters with the high bit set) are executed only in
	command mode, or in both command and insert modes.  In either case,
	if a character is _not_ bound to a function, then it will be
	self-inserting when in insert mode.  (To bind to a meta key in the
	.vilerc file, one may specify it as itself, or in hex or octal, or
	with the shorthand 'M-c' where c is the corresponding character
	without the high bit set.

	(Although it is possible to edit and view all 256 characters, it is
	currently impossible to _search_ for a string that contains the NULL
	character, since this is used internally to terminate the search
	string.)