REF VEDVARS Dan Perri & Aaron Sloman, 1989
Updated John Gibson, Feb 1995
COPYRIGHT University of Sussex 1995. All Rights Reserved.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<< VED GLOBAL VARIABLES >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
This REF file lists most of the global variables used by Ved. See
REF * VEDPROCS for a description of Ved procedures.
CONTENTS - (Use <ENTER> g to access required sections)
1 Introduction
2 Ved General Global Variables
3 Variables Associated With Each Ved File
4 Variables Associated With Ved Search and Substitution
5 Special Character Variables
5.1 General
5.2 Status Line
5.3 Cursors
---------------
1 Introduction
---------------
This file deals with the global variables which are used by Ved. For
information on other aspects of Ved see:
REF * DOCUMENTATION (Online documentation)
REF * VEDCOMMS (Ved <ENTER> commands)
REF * VEDPROCS (Procedures used to implement Ved)
REF * VEDTERMINALS (Screen control and key mappings)
REF * VEDSEARCH (Search and replace in Ved)
See also REF * WVED for variables and procedures controlling windowed
versions of Ved, i.e. XVed.
-------------------------------
2 Ved General Global Variables
-------------------------------
The following variables represent the state of the editor, or control
its behaviour. Variables concerned with search and substitution, or
graphic characters on the screen, are listed in a different section of
this file. See also the next section on variables representing the state
of each file.
ved_char_in_stream -> list [variable]
list -> ved_char_in_stream
List of buffered characters, strings or action procedures used
by * vedinascii and * vedgetinput. If this is non-empty,
vedgetinput and vedinascii will take action
procedures/characters from it first before calling
vedscr_read_input. See Ved Input and Output in REF * VEDPROCS
* vedinput provides a convenient way to add items to
ved_char_in_stream.
ved_last_char -> char [variable]
char -> ved_last_char
The last character read in by * vedprocesschar or
* vedgetproctable (and, where appropriate, inserted by
* vedinsertvedchar).
ved_nextsame_dot -> bool [variable]
bool -> ved_nextsame_dot
The boolean value controls whether ved_nextsame considers lines
that start with a dot as candidates for being the same. The
default is false. See HELP * ved_nextsame
ved_nextsame_limit -> int [variable]
int -> ved_nextsame_limit
The value of this variable controls searching by ved_nextsame.
See HELP * ved_nextsame
ved_pop_back_file -> bool_or_string [variable]
bool_or_string -> ved_pop_back_file
Controls the behaviour of Ved after successful completion of one
of the compilation commands ved_c, ved_c1, ved_x or ved_x1
(described in REF * VEDCOMMS). If the value of ved_pop_back_file
is a string, then after compilation Ved will return to that
named file, creating a new buffer if necessary; if the value is
<true> then Ved will return to the file from which the
compilation command was invoked; if <false> (the default) then
Ved will go wherever the output of the compilation went:
normally, output bypasses Ved and goes direct to the terminal
(the base window in XVed) in which case Ved will exit and return
you to the top-level prompt, but you can change the output
destination by assigning to the variable ved_chario_file.
ved_runtime_actions [variable]
List of actions (procedures) to be executed when Ved is first
run. See the entries for vedsetup and ved_runtime_apply in
REF * VEDPROCS for more details.
vedalwaysask -> bool [variable]
bool -> vedalwaysask
Holds a boolean which is used to determine whether or not Ved
files are to be automatically written on exit from Ved. If true
then Ved files are not automatically written when you leave
Poplog. Default is false, i.e. files are written if changed
vedargument -> string [variable]
string -> vedargument
When an <ENTER> command is obeyed, anything after the command
name is placed in vedargument as a string
vedautosave_min_preserve -> int [variable]
int -> vedautosave_min_preserve
The * ved_autosave utility, described in HELP * VED_AUTOSAVE
uses this variable to control whether a file is big enough for
an extra initial backup copy to be created under the control of
* vedautosave_preserve.
vedautosave_min_write -> int [variable]
int -> vedautosave_min_write
The * ved_autosave utility will write files only if they have at
least this number of changes. Default 0. See HELP * VED_AUTOSAVE
vedautosave_minutes -> num [active variable]
num -> vedautosave_minutes
This active variable controls the frequency of saving of files
that can be turned by * ved_autosave. num defaults to 5 minutes.
Updating it changes the timer interval. See HELP * ved_autosave
vedautosave_preserve -> item [variable]
item -> vedautosave_preserve
This variable, whose value should be a boolean, a string, an
integer or a procedure, controls whether the automatic saving
mechanism described in HELP * ved_autosave creates an initial
EXTRA backup file for each file edited during the current
session. It also controls how the saving is done. For full
details see the HELP file.
vedautowrite -> N_or_false [variable]
N_or_false -> vedautowrite
If given an integer N, will cause Ved to write changed files
after every N characters read from keyboard. If false don't.
vedbackers -> list [variable]
list -> vedbackers
Contains a list of pop11 reserved words which should be
'outdented' when justifying a program text. Used by ved_tidy.
(See also vedopeners, vedclosures, vedforwarders).
vedbufferlist -> list [variable]
list -> vedbufferlist
A list holding the ved file structure for each file being
edited. (See also vedupperfile, vedlowerfile, ved_current_file.)
vedcharinsert_attr [variable]
This integer variable (default 0) is used by the Ved character
inserting procedures vedcharinsert, vedinsertstring and
vedinsertvedchar. Any character attributes (bits 16-23) set in
this variable are or'ed into each character inserted.
vedclosers -> list [variable]
list -> vedclosers
Holds a list of pop11 reserved words and symbols, which indicate
the end of a region of indenting for automatic justification of
program files by VED_TIDY. (See also vedbackers, vedforwarders,
vedopeners.)
vedcommand -> string [variable]
string -> vedcommand
A string containing the full command typed in on the <ENTER>
command line. (See also * vedargument, HELP * VEDCOMMANDS.)
vedcrinteractive -> bool [variable]
bool -> vedcrinteractive
This boolean determines whether typing <RETURN> in an "immediate
mode" buffer will input the line on which it is typed. If
<false>, only ved_lmr can be used to input text (i.e. input the
marked range).
More specifically, it controls the behaviour of veddocr when
vedprocswaiting is true for the current buffer. veddocr is
called by vedcharinsert when a newline is inserted; if
vedprocswaiting is true (that is, there is a suspended
Ved-device process waiting for input on the current buffer), and
vedcrinteractive is true, then instead of inserting a newline,
veddocr passes the current line as input for the waiting
process.
See HELP * IM and 'Ved-Buffer Devices and "Immediate Mode"' in
REF * VEDPROCS for more details.
ved_current_file -> vedfile_struct [active variable]
vedfile_struct -> ved_current_file
An active variable which holds the ved file structure for the
file for which the Ved global variables are currently set. (See
'Variables Associated With Each Ved File' below.)
Accessing the variable returns the current file structure.
Updating it will cause all the Ved global variables
corresponding to a file (such as vedname, vedbuffer, etc) to be
set for the new file, after saving their values for the existing
file.
(See also vedbufferlist, vedupperfile, vedlowerfile.)
vedcreatemode -> int_or_false [variable]
int_or_false -> vedcreatemode
(Unix only) An integer or (default) false. In Unix, this
variable controls the protection for files created by Ved. If
vedcreatemode is an integer, Ved will temporarily set
pop_file_mode to that value whenever it creates a new version of
a file.
Note that this effective only when creating a new file, since
new versions of old files use the existing mode. See
* pop_file_mode for more details.
vedcurrentfile -> vedfile_struct [variable]
vedfile_struct -> vedcurrentfile
An ordinary variable holding the Ved file structure for the
current file. Don't use this variable; always use
ved_current_file instead. (In fact, accessing its value is OK,
but you should NOT assign to it -- this will mean the current
file is changed without changing the Ved global variables
associated with each file.)
veddelspaces -> bool [variable]
bool -> veddelspaces
A boolean used to control the joining of lines. If true (the
default) then Ved will delete leading spaces before joining the
current line to the preceding one. Also on breaking a line Ved
deletes spaces immediately to right of cursor.
vedediting -> bool [variable]
bool -> vedediting
Indicates whether Ved is in charge of the terminal.
vedescape -> char [variable]
char -> vedescape
A character indicating a function-key type sequence. Default 27,
which is ASCII <ESC>. This variable will demise shortly. (See
also vedquery vedescapetable, vednormaltable, REF * VEDVARS
/Variables associated with screen control)
vedescapetable -> vec [variable]
vec -> vedescapetable
When a key is pressed, the appropriate ASCII code is passed to
vednormaltable (See vednormaltable) to select the appropriate
action. If the code is the same as that held in vedescape (See
vedescape) then another character is read in, and vedescapetable
searched. This vector maps the second character to the
appropriate procedure. Used by vedprocesschar.
vedexpandchar -> char_or_false [variable]
char_or_false -> vedexpandchar
Holds either false (default) or a character which is used as a
trigger for the abbreviations mechanism. Whenever this character
is entered, the ASCII code of the next character entered is
passed as a key to the property table vedexpandchars, which
returns a procedure which, when invoked should return a string
to be spliced into the command line. Eg if vedexpandchar is set
to hold the character `^` and vedexpandchars contains an entry
mapping `a` to a procedure which leaves a string on the stack
which holds a ved command, eg '%ls' then <ENTER> ^a will cause
the command <ENTER> %ls to be executed. For fuller details see
HELP * VEDEXPAND
vedfiletypes -> list [variable]
list -> vedfiletypes
List of the possible suffixes for a filename, eg '.p', and the
associated effects on variables set at initialisation of Ved.
E.g. set vedcompileable to true if filename has suffix '.p'.
(See also HELP * VEDFILETYPES, HELP * VEDPROCS/vedsetfiletypes )
vedforwarders -> list [variable]
list -> vedforwarders
List of Pop-11 syntax words which should be indented when
automatically justifying program files using ved_tidy etc. (See
also vedbackers, vedclosers, vedopeners)
vedhardtabs -> bool [variable]
bool -> vedhardtabs
This variable (default true) controls whether tab characters in
a file buffer are treated as 'hard', i.e. whether Ved should
refuse to allow insertion or deletion of characters inside a
tab.
If vedhardtabs is false, then attempting to insert or delete a
character in the middle of tab will turn the whole tab into an
equivalent number of spaces first.
(Note that vedhardtabs applies only to tab characters already in
the buffer. It does not affect whether a tab character (rather
than spaces) is inserted when the tab key is pressed, or whether
tabs from a file are set up as tab characters (rather than
spaces) when a file is read in. Both these behaviours are
controlled by * vednotabs.)
vedinputfocus -> vedfile_struct [variable]
vedfile_struct -> vedinputfocus
This variable controls the file to which the top-level
input-reading loop of vedprocess will return, i.e. if this is
different from ved_current_file then vedinputfocus will be made
the current file. (This variable may also be <false>, in which
case the top-level loop will just set it to ved_current_file.)
vedinteractive -> bool [variable]
bool -> vedinteractive
A boolean set to true while inside a running "immediate mode"
process. (See also HELP * IM )
vedinvedprocess -> bool [protected variable]
bool -> vedinvedprocess
A boolean set true inside vedprocess, and always false outside
it. It is therefore equivalent to iscaller(vedprocess).
vedlastcommand -> comm_p [variable]
comm_p -> vedlastcommand
Variable used by system procedures -- contains the procedure for
the last Ved command executed.
vedlmr_errs_in_file -> bool_or_string [variable]
bool_or_string -> vedlmr_errs_in_file
Holds either a filename or a boolean and is used to control the
destination of error mishap messages. If false (default) then
the message goes to the base window only. If true, it is placed
in the current file, and if a filename, the mishap should be
directed to that file. (See also vedlmr_print_in_file for
destination of program output.)
vedlmr_print_in_file -> bool_or_string [variable]
bool_or_string -> vedlmr_print_in_file
Either a string (default is 'output.p') or a boolean, used to
direct output from a users program. If a string then output from
ved_lmr goes to file of that name. If true, then output goes to
current file. If false output merely goes on the base window.
(See also vedlmr_errs_in_file for destination of mishap
messages.)
vedlowerfile -> vedfile_struct_or_false [variable]
vedfile_struct_or_false -> vedlowerfile
Holds the Ved data structure for the file in the lower window,
or false if the screen is not split. (See also vedupperfile,
ved_current_file, vedbufferlist.)
vedmaxscrollhor -> int_or_p_or_false [variable]
int_or_p_or_false -> vedmaxscrollhor
vedmaxscrollvert -> int_or_p_or_false [variable]
int_or_p_or_false -> vedmaxscrollvert
These two variables determine whether vedcheck (see
HELP * VEDPROCS) scrolls or refreshes the screen to make the
cursor location visible. Each may have value <false> (which
causes a default to operate) or a procedure which returns an
integer, or an integer, determining the maximum amount of
horizontal (vedmaxscrollhor) or vertical (vedmaxscrollvert)
scrolling, respectively. (See also vedlineoffset,
vedcolumnoffset.)
vedmarkclasses -> assoc_list [variable]
assoc_list -> vedmarkclasses
Association list of marked-range names (words) to marking
procedures used by ved_mark_named_range. See
REF * ved_mark_named_range
vedmessage -> string [variable]
string -> vedmessage
The string holding the message to be displayed on the status
line. Once displayed, this string is reset to ''. When empty,
the name of the file is displayed instead.
vednonbreakfiles -> list [variable]
list -> vednonbreakfiles
List of file extensions (each a string) for which vedbreak
should be false. See HELP * VEDNONBREAKFILES
vednormaltable -> vec [variable]
vec -> vednormaltable
A table mapping characters received to their functions
(procedure, string, undef etc). If the entry for the character
is itself a table, eg if the control or escape characters are
received, then more keys are needed to determine the function
required. (See also vedescapetable)
vedopeners -> list [variable]
list -> vedopeners
A list of Pop-11 syntax words, which indicate the start of a
region of program text that should be indented. Used in
automatic justification by procedures such as ved_tidy etc. (See
also vedclosers, vedbackers, vedforwarders.)
vedprintingdone -> bool [variable]
bool -> vedprintingdone
A boolean that is set to true if printing occurs, indicating
that the screen has been corrupted and needs to be refreshed.
Used by vedrestorescreen. Never true in XVed.
vedquery -> char [variable]
char -> vedquery
Holds the character that is expected after vedescape (See
vedescape) to further specify the function required. (See also
vedquerytable.) Eg all the keypad functions on the V200s are
mapped onto the sequence <ESC> ? <CHARACTER>. By storing these
values in variables, it is possible to map them to different
characters for non ASCII terminals.
vedquerytable -> vec [variable]
vec -> vedquerytable
A vector holding the mapping table for characters received after
the key sequence vedescape and vedquery. Used to map the
characters to their functions (procedure, string, undef etc.)
(See also vednormaltable, vedescapetable, vedquery, vedescape )
vedreadintabs -> bool [variable]
bool -> vedreadintabs
If set true, causes tabs to be preserved in files read in to Ved
even if vednotabs is true. If vedreadintabs is true and any tabs
are found, then vednotabs is set false for that file, to
preserve the tabs. The default for vedreadintabs is true. (See
also * vednotabs, HELP * VEDREADINTABS.)
vedreadintrailspaces -> bool [variable]
bool -> vedreadintrailspaces
If this variable is false (the default), trailing spaces on the
ends of lines are stripped off when a file is read into Ved.
Trailing blank lines in a file are also discarded.
If vedreadintrailspaces is true, however, trailing spaces are
preserved by turning the last one on each line into a 'trailing
space' character. Trailing blank lines in a file are similarily
preserved, by replacing the last line with one containing just a
'trailing newline' character. (See Ved Special Characters:
Special Spaces Etc in REF * VEDPROCS.)
vedreadinplain -> bool_or_char [variable]
bool_or_char -> vedreadinplain
This variable (default false) controls whether Ved will
interpret certain sequences of control characters in files being
read in as character attributes/Ved graphics characters.
See REF * vedfile_line_repeater for more details.
vedstatusheaderlen -> int [constant]
This constant is the length of the header part of vedstatusline.
vedwriteoutplain -> bool [variable]
bool -> vedwriteoutplain
This variable (default false) controls whether Ved will
translate character attributes/Ved graphics characters to
sequences of control characters when writing out a file.
See REF * vedfile_line_consumer for more details.
vedrefreshneeded -> int_or_false [variable]
int_or_false -> vedrefreshneeded
An integer or (default) false, indicating the window line number
below which the screen should be refreshed when it is next
updated (usually when Ved is waiting for input). This is used to
prevent excessive refreshing of the screen on "dumb" terminals
for which * vednolinedelete is true.
vedscreencolumn -> int [variable]
int -> vedscreencolumn
Integer cursor position on the screen. (See also vedscreenline.)
vedscreenline -> int [variable]
int -> vedscreenline
Integer position (number of lines from the top) of cursor on
screen. (See also vedscreencolumn.)
vedscrollscreen -> bool [variable]
bool -> vedscrollscreen
A boolean used to control the screen up/down action. If true
(the default), then moving up or down the current file by a
whole page causes the screen to scroll. If false, the screen
does not scroll, but refreshes to the new page, which is faster
but less aesthetically pleasing.
vedsearchlist -> list [variable]
list -> vedsearchlist
Holds a list of directories (default is []). Should Ved be
called on a file which does not exist in the current directory,
then each of the directories named in vedsearchlist is examined
to see if the file exists there. Entries in vedsearchlist need
not be <directory> strings, they can be sublists, in which case
the first element is taken to be the <directory>. (See also
HELP * SYSSEARCHPATH.)
vedsetupdone -> bool [variable]
bool -> vedsetupdone
A boolean that is set true when Ved has been correctly set up.
(See also REF * VEDPROCS/vedsetup )
vedspacestring -> string [constant]
string -> vedspacestring
A string of one character - a space (i.e. ' ')
vedstartwindow -> int [active variable]
int -> vedstartwindow
For non-windowed Ved, the length in lines of the lower of Ved's
two windows. The default value is half the screen length, to
make both windows of equal size. Assigning a different value
will change the division between the two windows: most usefully,
doing
vedscreenlength -> vedstartwindow;
reduces the upper window to nothing, forcing a full screen
display for each file. If you try assigning a value greater than
vedscreenlength, it will be quietly truncated.
The ratio of vedstartwindow to the screen length is maintained
automatically if ever the screen length should change: this is
achieved by having vedstartwindow as an active variable.
Not used in XVed.
vedstatusbufferlimit -> int [variable]
int -> vedstatusbufferlimit
An integer which controls the number of lines saved in Ved
status buffer Ved saves old <ENTER> commands in the status
buffer. If the number of saved commands exceeds
vedstatusbufferlimit (default 60 - user assignable) then the
oldest command is deleted.
vedstatusshowcols -> bool [variable]
bool -> vedstatusshowcols
When true, vedsetstatus displays the current value of vedcolumn
in vedstatusline, instead of vedline. The command ved_cols
toggles the value of this variable.
vedupperfile -> vedfile_struct [variable]
vedfile_struct -> vedupperfile
In windowed Ved, holds the Ved file structure for the current
file (if it has a window); in non-windowed Ved, holds the file
structure for the file in the upper (or only) window. (See also
vedlowerfile, ved_current_file, vedbufferlist.)
vedv200escapetable -> vec [variable]
vec -> vedv200escapetable
vedv200normaltable -> vec [variable]
vec -> vedv200normaltable
vedv200querytable -> vec [variable]
vec -> vedv200querytable
The key binding tables for Visual 200s.
vedvarskeywords -> list [variable]
list -> vedvarskeywords
List of the pop11 keywords used to declare variables and
constants (eg vars, lconstant etc) which can be reassigned by
the user, and is used by automatic justification procedures such
as * ved_tidy. (See also HELP * JUSTIFY, * vedbackers
vedvedname -> string [variable]
string -> vedvedname
A string holding the name of the last file accessed using
ved_ved.
vedversions -> int_or_false [variable]
int_or_false -> vedversions
An integer or (default) false. This variable controls the number
of backup versions of a file to be kept on disk. If vedversions
is an integer, Ved will temporarily set pop_file_versions to
that value whenever it creates a new version of a file.
See * pop_file_versions for more details on backup files.
vedwiggletimes -> int [variable]
int -> vedwiggletimes
Controls how long the procedure vedwiggle wiggles the cursor.
Default is 5, set to a larger integer for fast terminals,
smaller for slow ones. See REF * vedwiggle
vedwriteallfiles -> bool [variable]
bool -> vedwriteallfiles
For system use.
vvedcut_dump -> list [variable]
list -> vvedcut_dump
The list of strings that formed the text deleted by ved_cut or
ved_ds. This list of strings can be restored to the file
immediately after the current cursor, by using ved_splice. (See
also HELP * YANK.)
vveddump -> list [variable]
list -> vveddump
List of all the lines of text deleted by (eg) ved_d, so that
they may be recovered. (See also HELP * YANK.)
vvedgotoplace -> int_or_string_or_false [variable]
int_or_string_or_false -> vvedgotoplace
Used to locate the cursor when a file is set on screen. It can
be an integer, in which case that line number is selected, a
string which is searched for, or the default false, to which it
is reset after use.
vvedlinedump -> string [variable]
string -> vvedlinedump
Contains the line most recently deleted by vedlinedelete as a
string. It is used to restore the line using ved_yankl. (See
also HELP * YANK.)
vvedworddump -> string [variable]
string -> vvedworddump
Contains the portion of line most recently deleted by one of the
delete procedures (vedclearhead, vedcleartail,
vedwordrightdelete, vedwordleftdelete) so that it may be
recovered using, for example, ved_yankw. (See also HELP * YANK.)
------------------------------------------
3 Variables Associated With Each Ved File
------------------------------------------
In Ved, a file is stored in a Ved file structure, which has a large
number of fields storing the values of Ved global variables associated
with the file.
Variables associated with a file, i.e, that change whenever the current
file changes, are described below. Note that not all of these are
actually stored in the file structure, since some can be derived from
others.
On the other hand, some variables that are stored in the file structure
do not appear below: one such is the internal stack of marked ranges
maintained by vedmarkpush and vedmarkpop.
Another is the variable subsystem, which determines for each file what
documentation lists will be searched by help commands, and what compiler
will be called by when loading a marked range in the file, etc.
subsystem is described in REF * SUBSYSTEM
(Two variables also not described below which are dependent on the
current file in windowed Ved (XVed) are vedscreenwidth and
vedscreenlength. In windowed Ved, making a file the current file will
set these appropriately for the window dimensions.)
The file structure for the current file is held in the active variable
ved_current_file; when you assign to this, it automatically saves the
globals in the current file structure, and then assigns all the globals
from the new file structure. To do the first part of this only (i.e to
save the globals in the current file without assigning a new one), use
ved_save_file_globals.
The values of the file globals can be set when a Ved file is first
initialised by the procedure vedveddefaults. They can also be controlled
by the user-definable list of information vedfiletypes, which tells Ved
what to assign to the variables when a file is created, read in from
disc, or when its name is changed (see HELP * VEDFILETYPES
HELP * INITIAL). The procedure that interprets this list is
vedsetfiletypes described in REF * VEDPROCS
(Note also that the procedure * is_vedfile_local allows you to specify
that the value of any variable is to be localised to a given Ved file.
The variable can thus maintain different values in different files.)
A Ved file structure is actually a standard full vector; the file
INCLUDE * VEDFILE_STRUCT defines macros for the subscripts of each field
in the vector (and indicates which global variables correspond to each
field). As Poplog develops, the actually number of variables/fields may
increase, but using only the macros in vedfile_struct.ph will ensure
upward compatibility.
ved_on_status -> bool [active variable]
bool -> ved_on_status
The value of ved_on_status is true if the cursor is on the
status line, false otherwise. Updating this variable will cause
the cursor to move to/from the status line.
When on the status line, the following variables are set for the
status line `file'.
¤ vedbreak
¤ vedbuffer
¤ vedcolumn
¤ vedcolumnoffset
¤ vedleftmargin
¤ vedline
¤ vedlineoffset
¤ vedpositionstack
¤ vedwindowlength
¤ vvedbuffersize
¤ vvedlinesize
¤ vvedmarkhi
¤ vvedmarklo
¤ vvedmarkprops
¤ vedwlineoffset
¤ vedwcolumnoffset
¤ vedwlinewidth
(The status line file also has its own stack of marked of ranges
manipulated by vedmarkpush and vedmarkpop.) The size of the
status line file is truncated whenever it exceeds
vedstatusbufferlimit.
Note that when switching files with ved_current_file, you
save/restore the state of files with respect to the status line,
i.e. a file saved `on status' will restore `on status'. However,
when saving a file's variables, ved_current_file (and
ved_save_file_globals) always save the file values of the above
variables, not the status ones.
When the cursor is on the status line, previous commands can be
examined, edited, and if necessary redone, by using the
vedcharup and vedchardown commands to move up and down. The
"mark range" commands (described in HELP * MARK) are also
available though only one line at a time is visible.
ved_on_status is most often changed by calling vedstatusswitch,
which also marks the left edge of the current Ved line, or
vedenter which also goes to a blank line at the end of the
status buffer.
vedonstatus -> bool [variable]
bool -> vedonstatus
An ordinary variable holding the `on status line' boolean. Don't
use this variable; always use ved_on_status instead. (In fact,
accessing its value is OK, but you should NOT assign to it --
this will mean the state is changed without changing the
associated Ved global variables correctly.)
vedbreak -> bool [variable]
bool -> vedbreak
Contains a boolean which controls automatic line breaking. If
true, then Ved will break lines (by moving whole words) to fit
into the current line width (held in vedlinemax). Default
controlled by value of * vednonbreakfiles.
vedbuffer -> vec [variable]
vec -> vedbuffer
A vector of (d)strings, each representing a line in the current
file. Note that the length of vedbuffer may be greater than the
number of lines in the file as extra blank lines (null strings)
are sometimes present at the end of the vector.
vedchanged -> int_or_false [variable]
int_or_false -> vedchanged
Contains either an integer count of the number of changes made
to the current file. If none have been made since the file was
last written, then it contains false. If false, ved_w etc will
not write the file.
vedcolumn -> int [variable]
int -> vedcolumn
The position of cursor on the current line.
vedcolumnoffset -> int [variable]
int -> vedcolumnoffset
An integer count of the number of columns a window has been
scrolled to the right. This value is also the number of the
column of the current file, displayed on the left hand side of
the window. (See also vedlineoffset, vedmaxscrollhor.)
vedcompileable -> bool [variable]
bool -> vedcompileable
Contains a boolean value which indicates whether or not a file
is a program file. Set to true if the current file name
satisfies * sysisprogfile, in which case the file may be
compiled. Otherwise false. Controls ved_x, ved_c, ved_l, etc.
vedcurrent -> string [variable]
string -> vedcurrent
A string giving the name under which the current buffer was
created.
As described in REF * VEDPROCS, Real-File and Pseudo-File
Buffers, a buffer whose name contains a space character is
interpreted as a 'pseudo file'. In this case, the actual name
under which the buffer was created is assigned to vedpathname,
and vedcurrent is set to be this string with the trailing
component (that is, the part following the last space character
in the name), replaced by sys_fname_namev applied to it. (In
other words, vedcurrent consists of vedpathname with any
directory pathname on the trailing component removed.)
veddirectory -> string_or_false [variable]
string_or_false -> veddirectory
For a Ved buffer corresponding to a real disk file, this
variable contains the directory path string that was prepended
to vedcurrent to get the file's full pathname (vedpathname).
That is, if vedcurrent is an absolute pathname then veddirectory
is nullstring, otherwise veddirectory is the value of
current_directory when the buffer was created.
If veddirectory is false, the buffer is a 'pseudo file' (see
Real-File and Pseudo-File Buffers in REF * VEDPROCS).
vedfileprops -> word_or_false [variable]
word_or_false -> vedfileprops
A word describing the type of the current file (e.g. "lib",
"include", "help", "ref", "teach", etc), and set by vedsysfile
when accessing documentation and library files. For an ordinary
user text or program file it is false.
If vedfileprops is a word containing a `.` character then XVed
will use the part preceding the `.` as the window class, and the
part following the `.` as the window type (e.g. ved_ls uses
"'Select.ls'").
If you wish to associate other information with a file you can
use a property created by * newvedfileprop.
vedindentstep -> int [variable]
int -> vedindentstep
An integer that controls the treatment of tab characters.
Default is 4, indicating that tab characters should be
represented by 4 spaces. It is used to control indentation and
tabs in ved_tidy. (See also vednotabs, HELP * vedindentstep.)
vedleftmargin -> int_or_p [variable]
int_or_p -> vedleftmargin
Contains either an integer or a procedure, which controls the
left margin. The default is 0. It controls line-breaks, the
action of the <RETURN> key, text justification etc. If it is a
procedure, then it should return a valid value for the left
margin when it is run, i.e.
p() -> int_margin
(See also HELP * VEDCOMMS /ved_margin.)
vedline -> int [variable]
int -> vedline
Line number of cursor position in the current file. Don't alter
it without calling vedtrimline to remove any extra spaces from
the right hand end. After altering, call vedsetlinesize to
update the variable vvedlinesize. (Calling vedjumpto does all
this for you.)
vedlinemax -> int [variable]
int -> vedlinemax
Integer holding the maximum line width. If vedbreak is true, the
lines are not allowed to exceed this length. (See also
vedbreak).
vedlineoffset -> int [variable]
int -> vedlineoffset
An integer count of the number of lines in the file that are
above the window. This value is also the line number of the top
visible line. (See also vedcolumnoffset, vedmaxscrollvert.)
vednamestring -> string [variable]
string -> vednamestring
This string is displayed as the default message on the status
line (i.e. when there is no other message to display), and
indicates the name of the current buffer in the form
EDITING: namestring
for a writeable buffer, or
EXAMINING: namestring
for one with vedwriteable false. In both cases, namestring
consists of vedcurrent with vedfileprops preceding it if the
latter is a word. (Note that if vedfileprops contains a `.`
character, only the part following the `.` is used in this
context.)
(In XVed, the namestring information goes into the window
manager title bar on each window. If you have title bars on your
windows and don't want the information duplicated on the status
line, you can turn it off by setting the application resource
ShowFileName to false. See Application Settings in REF * XVED.)
vedneedscompiling -> bool [variable]
bool -> vedneedscompiling
A boolean set true when a compileable file is altered. (See also
* vedcompileable.)
vednotabs -> bool [variable]
bool -> vednotabs
A boolean. If true, tabs are converted to spaces when the file
is read in or written. Also pressing tab key causes spaces to be
inserted. If false, tabs are preserved. (See also vedindentstep,
vedhardtabs, vedreadintabs. HELP * vednotabs gives more detailed
information.)
vedpathname -> string [variable]
string -> vedpathname
A string holding the full pathname for the current file, set up
initially from vedcurrent. If vedcurrent is an absolute
pathname, then vedpathname is set to vedcurrent; otherwise,
vedpathname is current_directory prepended to vedcurrent.
However (as described in REF * VEDPROCS, Real-File and
Pseudo-File Buffers), a buffer whose name contains a space
character is interpreted as a 'pseudo file'. In this case,
vedpathname is just set to the name under which the buffer was
created (and vedcurrent is derived from this, see * vedcurrent).
vedpositionstack -> list [variable]
list -> vedpositionstack
A list of saved cursor positions which represents the stack used
by the procedures vedpushkey and vedpopkey.
vedprocwait -> list [variable]
list -> vedprocwait
Contains a list of suspended processes waiting for Ved-buffer
device input from the current buffer. (Each list entry is a
vector containing the actual process record and some associated
data.)
vedprocswaiting returns true if this list contains at least one
live process (you should always use this to test vedprocwait
non-empty, because some of the entries may be for dead
processes).
See Ved-Buffer Devices and Immediate Mode in REF * VEDPROCS for
more details.
vedscreenoffset -> int [variable]
int -> vedscreenoffset
For non-windowed Ved, the integer line number on the screen of
the top of the current window (e.g. 0 for the top window, 12 for
the bottom window).
For windowed Ved (XVed), this is always 0.
vedstatic -> bool_or_int [variable]
bool_or_int -> vedstatic
Controls the mode of character insertion and deletion by
vedcharinsert, vedchardelete, etc.
If false (the default), characters are inserted into the current
buffer line by shifting existing text to the right (or for
deleting, shifting the text to the right leftwards to erase the
character).
If true, or an integer, new characters simply overwrite existing
text (and deleting simply blanks out character positions).
When vedstatic is an integer, its bits have the following
additional meanings:
Bit Meaning
--- -------
0 If set, prevents any character insertion or deletion
(calls to vedcharinsert, vedchardelete, etc will
produce the Ved error 'CHARACTER EDITING DISABLED').
1 If set, use an invisible text cursor (cursor
character `\s`) rather than vedscreenstaticcursor
(which is the default when vedstatic has a true
value). Only effective in XVed.
vedstatusline -> string [variable]
string -> vedstatusline
String holding complete status line.
vedwriteable -> bool [variable]
bool -> vedwriteable
A boolean which controls whether a file can be written to disc.
If false, Ved will not write the file. (See also vedchanged.)
vedwindowlength -> int [variable]
int -> vedwindowlength
The integer length of the current window in lines. This includes
the status line, so the number of actual file lines in the
window is vedwindowlength-1; when ved_on_status is true,
vedwindowlength is set to 2 to maintain the same relationship.
vedwlinewidth [variable]
vedwlineoffset [variable]
vedwcolumnoffset [variable]
These variables give positions/dimensions within the window that
differ when on the status line and off it.
vedwlinewidth
is the width available for file lines; this is always
vedscreenwidth - vedwcolumnoffset
vedwlineoffset
is the offset to the first file line on the window; this is
0 when on the status line, and 1 when off it.
vedwcolumnoffset
is the offset to the first file character on the window;
this is 10 when on the status line, and 1 when off it.
vvedbuffersize -> int [variable]
int -> vvedbuffersize
The integer length in lines of the current buffer (i.e. the
length of the current file).
vvedlinesize -> int [variable]
int -> vvedlinesize
Used size of current line. Don't alter. Set by vedsetlinesize.
vvedmarkhi -> int [variable]
int -> vvedmarkhi
The (integer) line number of the end of the marked range in the
current file.
vvedmarklo -> int [variable]
int -> vvedmarklo
The (integer) line number of the beginning of the marked range
in the current file.
vvedmarkprops -> bool [variable]
bool -> vvedmarkprops
Controls visibility of marked ranges. If false, then changes to
marked ranges are not shown on the screen. Used with procedures
vedmarkpush and vedmarkpop.
vvedpromptchar -> char_or_false [variable]
char_or_false -> vvedpromptchar
In documentation and 'immediate mode' files, this variable is
set to contain a 'prompt marker space' character (`\Sp` as a
Pop-11 character constant). In immediate mode, it is output
after the prompt, making it possible to distinguish actual
prompts from normal text.
When not false, various Ved procedures check for the presence of
vvedpromptchar in a line, and prevent certain operations when it
is found (e.g. stop insertion of text inside the prompt).
(See also HELP * IM.)
wvedwindow -> window [variable]
In windowed Ved (i.e. XVed), the window structure of the current
file, or false if it doesn't have one. In ordinary Ved, always
false.
--------------------------------------------------------
4 Variables Associated With Ved Search and Substitution
--------------------------------------------------------
See REF * VEDSEARCH for more details of the following variables used by
the Ved Search mechanism:
* vedwrapped * vedsafesubstitute
* ved_search_state * vvedfoundstring
------------------------------
5 Special Character Variables
------------------------------
The following variables contain special characters-with-attributes used
by Ved to display the status line, marked range, etc; many of these have
Ved graphics characters as their default values (see Ved Standard
Graphics Characters in REF * VEDPROCS).
You can use vedset chars ... endvedset to set any of these variables: in
this case, you omit the vedscreen- prefix on the name. See
HELP * VEDSET
5.1 General
------------
vedscreencontrolmark -> char [variable]
char -> vedscreencontrolmark
Character used to show that a control or other unprintable
character is at this place in the text.
Default value is `\Go`, i.e. a 'degree' sign.
vedscreentrailspacemark -> char [variable]
char -> vedscreentrailspacemark
Character used to show that this place in the text contains a
'trailing space' character (see Ved Special Space Characters in
REF * VEDPROCS).
Default value is `\[b3]S`, i.e. a bold S in colour 3 (inverse
video in monochrome).
vedscreennobreakspacemark -> char [variable]
char -> vedscreennobreakspacemark
Character used to show that this place in the text contains a
'no-break space' character (see Ved Special Space Characters in
REF * VEDPROCS).
Default value is `\s`, i.e. a space.
vedscreenpromptspacemark -> char [variable]
char -> vedscreenpromptspacemark
Character used to show that this place in the text contains a
'prompt-marker space' character (see Ved Special Space
Characters in REF * VEDPROCS).
Default value is `\s`, i.e. a space.
vedscreenformatspacemark -> char [variable]
char -> vedscreenformatspacemark
Character used to show that this place in the text contains a
'format-control space' character (see Ved Special Space
Characters in REF * VEDPROCS).
Default value is `\s`, i.e. a space.
vedscreenmoremark -> char [variable]
char -> vedscreenmoremark
Character used for to indicate that there is more text past the
end of the line on the screen.
Default value is `\G|`, i.e. a vertical line.
vedscreenrangemark -> char [variable]
char -> vedscreenrangemark
Character used to "mark" range of lines by vedmarklo and
vedmarkhi.
Default value is `\[b2]\G|`, i.e. a bold vertical line in colour
2.
vedscreencursorlinemark -> char [variable]
char -> vedscreencursorlinemark
Character put at left of current line when the cursor is on the
status line.
Default value is `\[b2]\G-`, i.e. a bold horizontal line in
colour 2.
vedscreencursorlinerangemark -> char [variable]
char -> vedscreencursorlinerangemark
Character put at left of current line if in marked range when
cursor is on status line (should therefore be a combination of
vedscreenrangemark and vedscreencursorlinemark).
Default value is `\[b2]\G+`, i.e. bold crossed horizontal and
vertical lines in colour 2.
5.2 Status Line
----------------
vedscreenstatus_-_mark -> char [variable]
char -> vedscreenstatus_-_mark
Character for horizontal line used to pad the status line (not
used in XVed).
Default value is `\G-`, i.e. a horizontal line.
vedscreenstatus_-|_mark -> char [variable]
char -> vedscreenstatus_-|_mark
Character shown after executing a command on the status line,
and (except in XVed) before the line/column number.
Default value is `\Grt`, i.e. a right-facing T-junction.
vedscreenstatus_|-_mark -> char [variable]
char -> vedscreenstatus_|-_mark
Character used after line/column number and before the command
section of the status line.
Default value is `\Glt`, i.e. a left-facing T junction.
vedscreenstatusinputmark -> char [variable]
char -> vedscreenstatusinputmark
Character which replaces the second-from-left
vedscreenstatus_-_mark on the status line when there are one or
more immediate-mode processes waiting for input on a buffer
(i.e. when vedprocswaiting() is true).
Default value is `\[f]I`, i.e. a flashing I.
vedscreenstatusnumattr -> char [variable]
char -> vedscreenstatusnumattr
The attributes part of this character is added to the line (or
column) number digits displayed on the left of the status line
(the actual character part is ignored).
When the column number is being displayed (that is, when
vedstatusshowcols is true), `\[1]` is or'ed to the attributes to
make the colour number odd.
Default value is `\[b]`, i.e. bold in colour 0 (and thus colour
1 when vedstatusshowcols is true).
5.3 Cursors
------------
Ved assigns these variables to * vedscreencursoron to change the text
cursor in different contexts. (Although whether or not it actually
changes is implementation dependent. Currently, they are only effective
in XVed. Note that the XVed window resource * cursorColor controls the
cursor colour when its character attributes specify the normal colour,
i.e. colour 0.)
vedscreennormalcursor -> char [variable]
char -> vedscreennormalcursor
Cursor set by vedgetinput when vedstatic is false: therefore
controls the normal cursor displayed by the Ved top-level loop
when not in static mode.
Default is `O`, i.e. a rectangular block.
(Note that vedgetinput will not assign to the cursor if it is
currently turned off, i.e. vedscreencursoron is false.)
vedscreenstaticcursor -> char [variable]
char -> vedscreenstaticcursor
Cursor set by vedgetinput when vedstatic is true: therefore
controls the normal cursor displayed by the Ved top-level loop
in static mode.
Default is `_`, i.e. an underscore-style cursor.
(Note that vedgetinput will not assign to the cursor if it is
currently turned off, i.e. vedscreencursoron is false.)
vedscreeninasciicursor -> char [variable]
char -> vedscreeninasciicursor
Cursor set by vedinascii; therefore controls the cursor
displayed by ved_get_reply, search and substitute, etc.
Default is `\[f]I`, i.e. a flashing I-beam.
+-+ C.all/ref/vedvars
+-+ Copyright University of Sussex 1995. All rights reserved.