460 строки
16 KiB
Groff
460 строки
16 KiB
Groff
.TH mcedit 1 "30 January 1997"
|
|
.SH NAME
|
|
mcedit \- Internal file viewer of GNU Midnight Commander.
|
|
.SH USAGE
|
|
.B mcedit
|
|
[\-bcCdfhstVx?] [+number] file
|
|
.SH DESCRIPTION
|
|
.LP
|
|
mcedit is a link to
|
|
.BR mc ,
|
|
the main GNU Midnight Commander executable. Executing GNU Midnight
|
|
Commander under this name requests staring the internal editor and
|
|
opening the
|
|
.I file
|
|
specified on the command line. The editor is based on the terminal
|
|
version of
|
|
.B cooledit
|
|
\- standalone editor for X Window System.
|
|
.SH OPTIONS
|
|
.TP
|
|
.I "+number"
|
|
Go to the line specified by number (do not insert
|
|
a space between the "+" sign and the number).
|
|
.TP
|
|
.I "\-b"
|
|
Force black and white display.
|
|
.TP
|
|
.I "\-c"
|
|
Force color mode on terminals where
|
|
.B mcedit
|
|
defaults to black and white.
|
|
.TP
|
|
.I "\-C <keyword>=<FGcolor>,<BGcolor>:<keyword>= ..."
|
|
Specify a different color set. See the
|
|
.B Colors
|
|
section in mc(1) for more information.
|
|
.TP
|
|
.I "\-d"
|
|
Disable mouse support.
|
|
.TP
|
|
.I "\-f"
|
|
Display the compiled-in search paths for GNU Midnight Commander files.
|
|
.TP
|
|
.I "\-t"
|
|
Used only if the code was compiled with Slang and terminfo: it makes
|
|
the Midnight Commander use the value of the
|
|
.B TERMCAP
|
|
variable for the terminal information instead of the information on
|
|
the system wide terminal database.
|
|
.TP
|
|
.I "\-V"
|
|
Display the version of the program.
|
|
.TP
|
|
.I "\-x"
|
|
Forces xterm mode. Used when running on xterm-capable terminals (two
|
|
screen modes, and able to send mouse escape sequences).
|
|
.PP
|
|
.SH FEATURES
|
|
The internal file editor provides most of the features of common full
|
|
screen editors. It has an extendable file size limit of sixteen
|
|
megabytes and edits binary files flawlessly. The features it presently
|
|
supports are: Block copy, move, delete, cut, paste;
|
|
.I key for key undo;
|
|
pull-down menus; file insertion; macro definition; regular expression
|
|
search and replace (and our own scanf-printf search and replace);
|
|
shift-arrow MSW-MAC text highlighting (if supported by the terminal);
|
|
insert-overwrite toggle; word-wrap; a variety of tabbing options; syntax
|
|
highlighting for various file types; and an option to pipe text blocks
|
|
through shell commands like indent and ispell.
|
|
.PP
|
|
.SH KEYS
|
|
The editor is easy to use and can be used without learning. To see what
|
|
keys do what, just consult the appropriate pull-down menu. Other keys
|
|
are: Shift movement keys do text highlighting,
|
|
.B Ctrl-Ins
|
|
copies to the file
|
|
.BR ~/.mc/cedit/cooledit.clip ,
|
|
and
|
|
.B Shift-Ins
|
|
pastes from
|
|
.BR ~/.mc/cedit/cooledit.clip .
|
|
.B Shift-Del
|
|
cuts to
|
|
.BR ~/.mc/cedit/cooledit.clip ,
|
|
and
|
|
.B Ctrl-Del
|
|
deletes highlighted text - all if supported by the terminal. Mouse
|
|
highlighting also works, and you can override the mouse as usual by
|
|
holding down the shift key while dragging the mouse to let normal
|
|
terminal mouse highlighting work.
|
|
.PP
|
|
The completion key (usually
|
|
.B "Alt-Tab"
|
|
or
|
|
.BR "Espace-Tab" )
|
|
completes the word under the cursor using the words used earlier in the
|
|
file.
|
|
.PP
|
|
To define a macro, press
|
|
.B Ctrl-R
|
|
and then type out the key
|
|
strokes you want to be executed. Press
|
|
.B Ctrl-R
|
|
again when finished. You can then assign the macro to any key you like
|
|
by pressing that key. The macro is executed when you press
|
|
.B Ctrl-A
|
|
and then the assigned key. The macro is also executed if you press
|
|
Meta, Ctrl, or Esc and the assigned key, provided that the key is not
|
|
used for any other function. Once defined, the macro commands go into
|
|
the file
|
|
.BR ~/.mc/cedit/cooledit.macros .
|
|
Do NOT edit this file if you are going to use macros again in the same
|
|
editing session, because
|
|
.B mcedit
|
|
caches macro key defines in memory.
|
|
.B mcedit
|
|
now overwrites a macro if a macro with the same key already exists,
|
|
so you won't have to edit this file. You will also have to restart
|
|
other running editors for macros to take effect.
|
|
.P
|
|
.B F19
|
|
will format C, C++, Java or HTML code when it is highlighted. An executable
|
|
file called
|
|
.B ~/.mc/cedit/edit.indent.rc
|
|
will be created for you from the default template. Feel free to edit it
|
|
if you need.
|
|
.PP
|
|
.B C-p
|
|
will run ispell on a block of text in a similar way. The script file
|
|
will be called
|
|
.BR ~/.mc/cedit/edit.spell.rc .
|
|
.PP
|
|
Keys can be redefined from the Midnight Commander options menu.
|
|
.PP
|
|
.SH SYNTAX HIGHLIGHTING
|
|
As of version 3.6.0,
|
|
.B cooledit
|
|
supports syntax highlighting. This means that keywords and contexts
|
|
(like C comments, string constants, etc) are highlighted in different
|
|
colors. The following section explains the format of the file
|
|
.BR ~/.mc/cedit/Syntax .
|
|
The file
|
|
.B ~/.mc/cedit/Syntax
|
|
is rescanned on opening of a any new editor file. The file contains
|
|
rules for highlighting, each of which is given on a separate line, and
|
|
define which keywords will be highlighted to what color. The file is
|
|
also divided into sections, each beginning with a line with the
|
|
.B file
|
|
command, followed by a regular expression. The regular expression
|
|
dictates the file name that that set of rules applies to. Following
|
|
this is a description to be printed on the left of the editor window
|
|
explaining the file type to the user. A third optional argument is a
|
|
regular expression to match the first line of text of the file. If
|
|
either the file name matches, or the first line of text, then those
|
|
rules will be loaded.
|
|
.PP
|
|
A section ends with the start of a new section. Each section is divided
|
|
into contexts, and each context contains rules. A context is a scope
|
|
within the text that a particular set of rules belongs to. For instance,
|
|
the region within a C style comment (i.e. between
|
|
.B /*
|
|
and
|
|
.BR */ )
|
|
has its own color. This is a context, although it will have no further
|
|
rules inside it because there is probably nothing that we want
|
|
highlighted within a C comment.
|
|
.PP
|
|
A trivial C programming section might look like this:
|
|
.PP
|
|
.nf
|
|
file .\\*\\\\.c C\\sProgram\\sFile (#include|/\\\\\\*)
|
|
|
|
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_
|
|
|
|
# default colors
|
|
context default
|
|
keyword whole if 24
|
|
keyword whole else 24
|
|
keyword whole for 24
|
|
keyword whole while 24
|
|
keyword whole do 24
|
|
keyword whole switch 24
|
|
keyword whole case 24
|
|
keyword whole static 24
|
|
keyword whole extern 24
|
|
keyword { 14
|
|
keyword } 14
|
|
keyword '*' 6
|
|
|
|
# C comments
|
|
context /\\* \\*/ 22
|
|
|
|
# C preprocessor directives
|
|
context linestart # \\n 18
|
|
keyword \\\\\\n 24
|
|
|
|
# C string constants
|
|
context " " 6
|
|
keyword %d 24
|
|
keyword %s 24
|
|
keyword %c 24
|
|
keyword \\\\" 24
|
|
.fi
|
|
.PP
|
|
Each context starts with a line of the form:
|
|
.br
|
|
\fBcontext\fP [\fBexclusive\fP] [\fBwhole\fP|\fBwholeright\fP|\fBwholeleft\fP]
|
|
[\fBlinestart\fP] \fIdelim\fP [\fBlinestart\fP] \fIdelim\fP [\fIforeground\fP] [\fIbackground\fP]
|
|
.br
|
|
|
|
One exception is the first context. It must start with the command
|
|
.br
|
|
\fBcontext\fP \fBdefault\fP [\fIforeground\fP] [\fIbackground\fP]
|
|
.br
|
|
or else \fBcooledit\fP will return an error.
|
|
|
|
The \fBlinestart\fP option dictates that \fIdelim\fP must start at
|
|
the beginning of a line.
|
|
|
|
The \fBwhole\fP option tells that delim must be a whole word. What
|
|
constitutes a whole word are a set of characters that can be
|
|
changed at any point in the file with the \fBwholechars\fP
|
|
command. The \fBwholechars\fP command at the top just sets the
|
|
set exactly to its default and could therefore have been omitted. To
|
|
specify that a word must be whole on the left only, you can use
|
|
the \fBwholeleft\fP option, and similarly on the right. The left and
|
|
right set of characters can be set separately with,
|
|
.br
|
|
\fBwholechars\fP [\fBleft\fP|\fBright\fP] \fIcharacters\fP
|
|
|
|
The \fBexclusive\fP option causes the text between the delimiters to be
|
|
highlighted, but not the delimiters themselves.
|
|
|
|
Each rule is a line of the form:
|
|
.br
|
|
\fBkeyword\fP [\fBwhole\fP|\fBwholeright\fP|\fBwholeleft\fP] [\fBlinestart\fP]
|
|
\fIstring\fP \fIforeground\fP [\fIbackground\fP]
|
|
.br
|
|
|
|
Context or keyword strings are interpreted, so that you can include
|
|
tabs and spaces with the sequences \\t and \\s. Newlines and the \\ are
|
|
specified with \\n and \\\\ respectively. Since whitespace is used as a
|
|
separator, it may not be used as is. Also, \\* must be used to specify
|
|
a *. The * itself is a wildcard that matches any length of characters.
|
|
For example,
|
|
.nf
|
|
keyword '*' 6
|
|
.fi
|
|
colors all C single character constants green. You could also have
|
|
used
|
|
.nf
|
|
keyword "*" 6
|
|
.fi
|
|
to color string constants, except that the matched string may not cross
|
|
newlines. \fIThe wildcard may be used within context delimiters as
|
|
well\fP, but you \fBcannot have a wildcard as the last or first character\fP.
|
|
|
|
Important to note is the line
|
|
.nf
|
|
keyword \\\\\\n 24
|
|
.fi
|
|
This line defines a keyword containing the \\ and newline characters.
|
|
Because keywords have a higher precedence than context delimiters, this
|
|
keyword prevents the context from ending at the end of a line if the
|
|
line ends in a \\ thus allowing C preprocessor directive to continue
|
|
across multiple lines.
|
|
.PP
|
|
The colors themselves are numbered 0 to 26 and are explained below in
|
|
\fBFURTHER BEHAVIORAL OPTIONS\fP. You can also use \fBany\fP of the named
|
|
colors specified in \fB/usr/lib/X11/rgb.txt\fP, though only one word
|
|
versions of them. It is better to stick to the numerical colors
|
|
to limit use of the color palette.
|
|
.PP
|
|
Comments may be included on a line of there own and begin with
|
|
a #.
|
|
.PP
|
|
Because of the simplicity of the implementation, there are a few
|
|
intricacies that will not be coped with correctly but these are a minor
|
|
irritation. On the whole, a broad spectrum of quite complicated
|
|
situations are handled with these simple rules. It is a good idea to
|
|
take a look at the syntax file to see some of the nifty tricks you can
|
|
do with a little imagination. If you can't get by with the rules I have
|
|
coded, and you think you have a rule that would be useful, please email
|
|
me with your request. However, do not ask for regular expression
|
|
support, because this is flatly impossible.
|
|
.PP
|
|
A useful hint is to work with as much as possible with the things
|
|
you \fIcan\fP do rather than try to do things that this
|
|
implementation can't cope with. Also remember that the aim of
|
|
syntax highlighting is to make programming less prone to error,
|
|
\fInot\fP to make code look pretty.
|
|
.PP
|
|
.SH COLORS
|
|
The default colors may be changed by appending to the
|
|
\fBMC_COLOR_TABLE\fP environment variable. Foreground and
|
|
background colors pairs may be specified for example with:
|
|
.PP
|
|
.nf
|
|
MC_COLOR_TABLE="$MC_COLOR_TABLE:\\
|
|
editnormal=lightgray,black:\\
|
|
editbold=yellow,black:\\
|
|
editmarked=black,cyan"
|
|
.fi
|
|
.PP
|
|
.SH OPTIONS
|
|
Most options can now be set from the editors options dialog
|
|
box. See the \fBOptions\fP menu. The following options are defined in
|
|
\fB~/.mc/ini\fP and have obvious counterparts in the dialog box.
|
|
You can modify them to change the editor behavior, by editing the file.
|
|
Unless specified, a 1 sets the option to on, and a 0 sets it to
|
|
off, as is usual.
|
|
.TP
|
|
.I use_internal_edit
|
|
This option is ignored when invoking
|
|
.B mcedit.
|
|
.TP
|
|
.I editor_key_emulation
|
|
1 for
|
|
.B Emacs
|
|
keys, and 0 for normal
|
|
.B Cooledit
|
|
keys.
|
|
.TP
|
|
.I editor_tab_spacing
|
|
Interpret the tab character as being of this length.
|
|
Default is 8. You should avoid using
|
|
other than 8 since most other editors and text viewers
|
|
assume a tab spacing of 8. Use
|
|
.B editor_fake_half_tabs
|
|
to simulate a smaller tab spacing.
|
|
.TP
|
|
.I editor_fill_tabs_with_spaces
|
|
Never insert a tab space. Rather insert spaces (ascii 20h) to fill to the
|
|
desired tab size.
|
|
.TP
|
|
.I editor_return_does_auto_indent
|
|
Pressing return will tab across to match the indentation
|
|
of the first line above that has text on it.
|
|
.TP
|
|
.I editor_backspace_through_tabs
|
|
Make a single backspace delete all the space to the left
|
|
margin if there is no text between the cursor and the left
|
|
margin.
|
|
.TP
|
|
.I editor_fake_half_tabs
|
|
This will emulate a half tab for those who want to program
|
|
with a tab spacing of 4, but do not want the tab size changed
|
|
from 8 (so that the code will be formatted the same when displayed
|
|
by other programs). When editing between text and the left
|
|
margin, moving and tabbing will be as though a tab space were
|
|
4, while actually using spaces and normal tabs for an optimal fill.
|
|
When editing anywhere else, a normal tab is inserted.
|
|
.TP
|
|
.I editor_option_save_mode
|
|
(0, 1 or 2.) The save mode (see the options menu also)
|
|
allows you to change the method
|
|
of saving a file. Quick save (0) saves the file by immediately,
|
|
truncating the disk file to zero length (i.e. erasing it)
|
|
and the writing the editor contents to the file. This method
|
|
is fast, but dangerous, since a system error during a file
|
|
save will leave the file only partially written, possibly
|
|
rendering the data irretrievable. When saving, the safe save (1)
|
|
option enables creation of a temporary file into which the
|
|
file contents are first written. In the event of an problem,
|
|
the original file is untouched. When the temporary file is
|
|
successfully written, it is renamed to the name of the original
|
|
file, thus replacing it. The safest method is create
|
|
backups (2). Where a backup file is created before any changes
|
|
are made. You can specify your own backup file extension in
|
|
the dialog. Note that saving twice will replace your backup
|
|
as well as your original file.
|
|
.PP
|
|
.SH MISCELLANEOUS
|
|
You can use scanf search and replace to search and replace a C format
|
|
string. First take a look at the
|
|
.B sscanf
|
|
and
|
|
.B sprintf
|
|
man pages to see what a format string is and how it works. Here's an
|
|
example: suppose that you want to replace all occurrences of an open
|
|
bracket, three comma separated numbers, and a close bracket, with the
|
|
word
|
|
.IR apples ,
|
|
the third number, the word
|
|
.I oranges
|
|
and then the second number. You would fill in the Replace dialog box as
|
|
follows:
|
|
.PP
|
|
.nf
|
|
.B Enter search string
|
|
(%d,%d,%d)
|
|
.B Enter replace string
|
|
apples %d oranges %d
|
|
.B Enter replacement argument order
|
|
3,2
|
|
.fi
|
|
.PP
|
|
The last line specifies that the third and then the second number are to
|
|
be used in place of the first and second.
|
|
.PP
|
|
It is advisable to use this feature with Prompt On Replace on, because
|
|
a match is thought to be found whenever the number of arguments found
|
|
matches the number given, which is not always a real match. Scanf also
|
|
treats whitespace as being elastic. Note that the scanf format %[ is
|
|
very useful for scanning strings, and whitespace.
|
|
.PP
|
|
The editor also displays non-us characters (160+). When editing
|
|
binary files, you should set
|
|
.B display bits
|
|
to 7 bits in the Midnight Commander options menu to keep the
|
|
spacing clean.
|
|
.PP
|
|
.SH FILES
|
|
@prefix@/share/mc/mc.hlp
|
|
.IP
|
|
The help file for the program.
|
|
.PP
|
|
.I @prefix@/share/mc/mc.ini
|
|
.IP
|
|
The default system-wide setup for GNU Midnight Commander, used only if
|
|
the user's own ~/.mc/ini file is missing.
|
|
.PP
|
|
.I @prefix@/share/mc/mc.lib
|
|
.IP
|
|
Global settings for the Midnight Commander. Settings in this file
|
|
affect all users, whether they have ~/.mc/ini or not.
|
|
.PP
|
|
$HOME/.mc/ini
|
|
.IP
|
|
User's own setup. If this file is present, the setup is loaded from
|
|
here instead of the system-wide startup file.
|
|
.PP
|
|
$HOME/.mc/ini
|
|
.IP
|
|
User's own setup. If this file is present then the setup is loaded
|
|
from here instead of the system-wide startup file.
|
|
.PP
|
|
$HOME/.mc/cedit/
|
|
.IP
|
|
User's own temporary directory where block commands are processed
|
|
and saved.
|
|
.PP
|
|
.SH LICENSE
|
|
This program is distributed under the terms of the GNU General Public
|
|
License as published by the Free Software Foundation. See the built-in
|
|
help of the Midnight Commander for details on the License and the lack
|
|
of warranty.
|
|
.SH AVAILABILITY
|
|
The latest version of this program can be found at
|
|
ftp://ftp.ibiblio.org/pub/Linux/utils/file/managers/mc/.
|
|
.SH SEE ALSO
|
|
cooledit(1), mc(1), gpm(1), terminfo(1), scanf(3).
|
|
.PP
|
|
.SH AUTHORS
|
|
Paul Sheer (psheer@obsidian.co.za) is the developer of
|
|
the Midnight Commander's internal editor.
|
|
.PP
|
|
.SH BUGS
|
|
Bugs should be reported to mc-devel@gnome.org
|