jed supports two internal modes as well as user defined modes. The two internal modes consist of a “C” mode for C Language programming and a “Wrap” mode for ordinary text editing. Examples of user defined modes are Fortran mode and DCL mode.
Online documentation is provided for nearly every mode jed defines.
For help on the current mode, press Esc X and enter
describe_mode
. A window will appear with a short description of the
special features of the mode as well as a description of the variables
affecting the mode.
In this mode, text is wrapped at the column given by the WRAP
variable. The default is 78. The text does not wrap until the cursor goes
beyond the wrap column and a space is inserted.
Paragraph delimiters are: blank lines, lines that begin with either a
percent character, %, or a backslash character \
. This
definition is ideally suited for editing LATEX documents. However, it
is possible for the user to change this definition. See the discussion of
the hook, is_paragraph_separator
, in the section on hooks for
explicit details on how to do this.
The paragraph is formatted according to the indentation of the current line. If the current line is indented, the paragraph will be given the same indentation. The default binding for this function is Esc q.
In addition, a paragraph may be “narrowed” by the
narrow_paragraph
function which is bound to Esc N by default.
This differs from the ordinary format_paragraph
function described
above in that the right margin is reduced by an amount equal to the
indentation of the current line. For example:
This paragraph is the result of using the function ``narrow_paragraph''. Note how the right margin is less here than in the above paragraph.
Finally, if either of these functions is called from the keyboard with a prefix argument, the paragraph will be justified as well. For example, pressing Esc 1 Esc N on the previous paragraph yields:
This paragraph is the result of using the function ``narrow_paragraph''. Note how the right margin is less here than in the above paragraph.
See the discussion of format_paragraph_hook
in the section on hooks
for details on how this is implemented.
You have probably noticed that many key words in this document are quoted
in double quotes like “this is double quoted” and ‘this is single
quoted’. By default, the double quote key (") and single quote key (’) are
bound to the function text_smart_quote
. With this binding and in
wrap mode, the single quote key inserts a single quote with the “proper”
orientation and the double quote key inserts two single quotes of the
“proper” direction. To turn this off, rebind the keys to
self_insert_cmd
. Some modes already do this (e.g., EDT).
This brings up the question: if the double quote key is bound to
text_smart_quote
then how does one insert the character (")? The
most common way is to use the quoted_insert
function which, by
default, is bound to the single backquote (‘) key. This is the same
mechanism that is used to insert control characters. The other method is
to use the fact that if the preceding character is a backslash, \
,
the character simply self inserts. Again, this is ideal for writing
TEX documents.
C Mode facilitates the editing of C files. Much of the latter part of the
development of the jed editor was done using this mode. This mode may be
customized by a judicious choice of the variables C_INDENT
and
C_BRACE
as well as the bindings of the curly brace keys {
and }. Experiment to find what you like or write your own using the
S-Lang interface.
By default, the Enter key is bound to the function
newline_and_indent
. This does what its name suggests: inserts a
newline and indents. Again, some modes may rebind this key. In addition,
the keys {, }, and Tab are also special in this mode.
The Tab key indents the current line and the { and }
keys insert themselves and reindent. If you do not like any of these
bindings, simply rebind the offending one to self_insert_cmd
.
Finally, the key sequence Esc ; is bound to a function called
c_make_comment
. This function makes and indents a C comment to the
column specified by the value of the variable C_Comment_Column
. If
a comment is already present on the line, it is indented.
Fortran Mode is written entirely in S-Lang and is designed to facilitate the writing of Fortran programs. It features automatic indentation of Fortran code as well as automatic placement of Fortran statement Labels.
In this mode, the keys 0-9 are bound to a function
for_elebel
which does the following:
This function is very similar to the one Emacs uses for labels.