mcedit  - Full featured terminal text editor for Unix-like
       systems.


USAGE

       mcedit [[+number] file [-bcCdfhstVx?]]


DESCRIPTION

       Mcedit is a link to mc, the Midnight Commander, forcing it
       to  immediately start its internal editor. The editor is a
       terminal version of the cooledit standalone X Window  edi­
       tor.


OPTIONS

       +number
              Go   to the line specified by number (do not insert
              a space between the "+" sign and the number).

       -b     Forces black and white display.

       -c     Force color mode on terminals where mcedit defaults
              to black and white.

       -C <keyword>=<FGcolor>,<BGcolor>:<keyword>= ...
              Used  to  specify a different color set, where key­
              word is one of normal,  selected,  marked,  markse­
              lect,   errors,  reverse  menu,  menusel,  menuhot,
              menuhotsel and gauge. The colors are  optional  and
              are  one  of  black,  gray,  red, brightred, green,
              brightgreen,  brown,  yellow,   blue,   brightblue,
              magenta, brightmagenta, cyan, brightcyan, lightgray
              and white.  See the Colors section in mc.1 for more
              information.

       -d     Disables mouse support.

       -f     Displays  the compiled-in search paths for Midnight
              Commander files.

       -t     Used only if the code was compiled with  Slang  and
              terminfo:  it  makes the Midnight Commander use the
              value of the  TERMCAP  variable  for  the  terminal
              information  instead of the information on the sys­
              tem wide terminal database

       -V     Displays the version of the program.

       -x     Forces xterm mode.  Used  when  running  on  xterm-
              capable  terminals  (two  screen modes, and able to
              send mouse escape sequences).


Features

       The internal file editor provides most of the features  of

       limit of sixteen megabytes and edits  binary  files  flaw­
       lessly.  The  features  it  presently  supports are: Block
       copy, move, delete, cut, paste; 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
       (for the linux  console  only);  insert-overwrite  toggle;
       word-wrap; a variety of tabbing options; syntax highlight­
       ing for various file types; and an  option  to  pipe  text
       blocks through shell commands like indent and ispell.


Keys

       The  editor  is very easy to use and requires no tutoring.
       To see what keys do what,  just  consult  the  appropriate
       pull-down  menu.  Other  keys  are: Shift movement keys do
       text highlighting (Linux console only).   Ctrl-Ins  copies
       to  the  file ~/.cedit/cooledit.clip, and Shift-Ins pastes
       from   ~/.cedit/cooledit.clip.     Shift-Del    cuts    to
       ~/.cedit/cooledit.clip,  and  Ctrl-Del deletes highlighted
       text - all linux console only.  The  completion  key  (see
       mc.1) also does a hard return without an automatic indent.
       Mouse highlighting also works, and you  can  override  the
       mouse  as  usual by holding down the shift key while drag­
       ging the mouse to let normal terminal  mouse  highlighting
       work.

       To  define a macro, press Ctrl-R and then type out the key
       strokes you want to be executed. Press 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  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 func­
       tion. Once defined, the macro commands go  into  the  file
       ~/.cedit/cooledit.macros.   Do  NOT  edit this file unless
       you are not going to use macros again in the same  editing
       session,  because  Mcedit caches macro key defines in mem­
       ory.  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.

       F19 will format C code when it is highlighted. For this to
       work, make an executable file called .cedit/edit.indent.rc
       in your home directory containing the following:

              #!/bin/sh
              # Use $HOME instead of ~ if this doesn't work.
              # You may also have to use a different redirection
              # syntax for some machines.
              /usr/bin/indent -kr -pcs ~/.cedit/cooledit.block >& /dev/null


       C-p  will  run ispell on a block of text in a similar way.
       The file is .cedit/edit.spell.rc

              #!/bin/sh
              # Use $HOME instead of ~ if this doesn't work.
              # You may also have to use a different redirection
              # syntax for some machines.
              /usr/local/bin/ispell ~/.cedit/cooledit.block >& /dev/null
              cat /dev/null > ~/.cedit/cooledit.error


Redefining Keys

       Keys may be redefined from the Midnight Commander  options
       menu.


SYNTAX HIGHLIGHTING

       As  of  version  3.6.0,  cooledit has syntax highlighting.
       This means that keywords and contexts  (like  C  comments,
       string   constants,  etc)  are  highlighted  in  different
       colours. The following section explains the format of  the
       file ~/.cedit/syntax.

       The  file ~/.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  colour.  The
       file  is also divided into sections, each beginning with a
       line with the file command, followed by a regular  expres­
       sion.  The  regular expression dictates the file name that
       that set of rules applies to. Following this is a descrip­
       tion  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.

       A  section ends with the start of a new section. Each sec­
       tion is divided into contexts, and each  context  contains
       rules. A context is a scope within the text that a partic­
       ular set of rules belongs to.  For  instance,  the  region
       within  a C style comment (i.e. between /* and */) has its
       own colour. 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.

       A trivial C programming section might look like this:

       file .\*\\.c C\sProgram\sFile (#include|/\\\*)

       wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_

       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

       Each context starts with a line of the form:
       context [exclusive]  [whole|wholeright|wholeleft]  [lines­
       tart] delim [linestart] delim [foreground] [background]

       One exception is the first context. It must start with the
       command
       context default [foreground] [background]
       or else cooledit will return an error.

       The linestart option dictates that delim must start at the
       beginning of a line.

       The  whole  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
       wholechars command. The wholechars 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 wholeleft option, and simi­
       larly on the right. The left and right set  of  characters
       can be set separately with,
       wholechars [left|right] characters

       The  exclusive  option  causes the text between the delim­
       iters  to  be  highlighted,   but   not   the   delimiters


       Each rule is a line of the form:
       keyword  [whole|wholeright|wholeleft]  [linestart]  string
       foreground [background]

       Context or keyword strings are interpreted so that you can
       include tabs and spaces with the sequences \t and \s. New­
       lines and the \ are specified with \n and \\ respectively.
       Since  whitespace  is  used  as a separator, it may not be
       used explicitedly. Also, \* must be used to specify  a  *.
       The  *  itself  is  a  wildcard that matches any length of
       characters. For example,
         keyword         '*'      6
       colours all C single character constants green. You  could
       also have used
         keyword         "*"      6
       to colour string constants, except that the matched string
       may not cross newlines. The wildcard may  be  used  within
       context delimiters as well, but you cannot have a wildcard
       as the last or first character.

       Important to note is the line
         keyword  \\\n  24
       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.

       The  colours  themselves  are  numbered  0  to  26 and are
       explained below in FURTHER  BEHAVIORAL  OPTIONS.  You  can
       also   use   any   of   the   named  colors  specified  in
       /usr/lib/X11/rgb.txt, though only  one  word  versions  of
       them.  It  is  better  to stick to the numerical colors to
       limit use of the color palette.

       Comments may be included on a line of there own and  begin
       with a #.

       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. How­
       ever, do not ask for regular expression  support,  because
       this is flatly impossible.

       A useful hint is to work with as much as possible with the

       implementation can't cope with. Also remember that the aim
       of syntax highlighting is to make programming  less  prone
       to error, not to make code look pretty.


COLORS

       The  default  colors  may  be  changed by appending to the
       MC_COLOR_TABLE environment variable. Foreground and  back­
       ground colors pairs may be specified for example with:

       MC_COLOR_TABLE="$MC_COLOR_TABLE:editnormal=lightgray,black:editbold=yellow,black:editmarked=black,cyan"


OPTIONS

       Most  options can now be set from the editors options dia­
       log box. See the Options menu. The following  options  are
       defined in You can modify them to change the editor behav­
       ior, by editing the file.  Unless specified, a 1 sets  the
       option to on, and a 0 sets it to off, as is usual.

       use_internal_edit
              This option is ignored when invoking mcedit.

       editor_key_emulation
              1 for Emacs keys, and 0 for normal Cooledit keys.

       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    edi­
              tor_fake_half_tabs  to simulate a smaller tab spac­
              ing.

       editor_fill_tabs_with_spaces
              Never insert a  tab  space.  Rather  insert  spaces
              (ascii 20h) to fill to the desired tab size.

       editor_return_does_auto_indent
              Pressing return will tab across to match the inden­
              tation of the first line above that has text on it.

       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.

       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  pro­
              grams).  When  editing  between  text  and the left

              space  were 4, while actually using spaces and nor­
              mal tabs for an optimal fill.   When  editing  any­
              where else, a normal tab is inserted.

       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. eras­
              ing  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 cre­
              ate 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.


Miscellaneous

       (Scanf search and replace have previously not worked prop­
       erly.  With this release, problems with search and replace
       have been fixed.)

       You can use scanf search and replace to search and replace
       a  C  format  string.  First take a look at the sscanf and
       sprintf man pages to see what a format string is  and  how
       it  works.  An  example is as follows: Suppose you want to
       replace all occurrences of say,  an  open  bracket,  three
       comma  separated  numbers,  and  a close bracket, with the
       word apples, the third number, the word oranges  and  then
       the  second  number,  you would fill in the Replace dialog
       box as follows:

       Enter search string
       (%d,%d,%d)
       Enter replace string
       apples %d oranges %d
       Enter replacement argument order
       3,2

       The last line specifies that the third and then the second
       number are to be used in place of the first and second.

       It is advisable to use this feature with Prompt On Replace

       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.

       The editor also displays non-us  characters  (160+).  When
       editing  binary  files,  you  should set display bits to 7
       bits in the Midnight Commander options menu  to  keep  the
       spacing clean.


FILES

       /usr/mc.hlp

              The help file for the program.

       /usr/lib/mc/mc.ini

              The default system-wide setup for the Midnight Com­
              mander,  used  only  if  the  user  lacks  his  own
              ~/.mc.ini file.

       /usr/lib/mc/mc.lib

              Global  settings  for the Midnight Commander.  Set­
              tings in this file are global to any Midnight  Com­
              mander, it is useful to define site-global terminal
              settings.

       $HOME/.mc.ini

              User's own setup. If this file is present then  the
              setup  is  loaded  from here instead of the system-
              wide startup file.

       $HOME/.cedit/

              User's own temporary directory where block commands
              are processed and saved.


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 Comman­
       der for details on the License and the lack of warranty.


AVAILABILITY

       The latest  version  of  this  program  can  be  found  at
       ftp.nuclecu.unam.mx in the directory /linux/local and from
       Europe at sunsite.mff.cuni.cz in the directory /GNU/mc and
       at  ftp.teuto.de  in  the directory /lmb/mc.  The X Window

       /pub/Linux/apps/editors/X  or  at  argeas.argos.hol.gr  in
       /pub/unix/cooledit.


SEE ALSO

       cooledit(1), mc(1), gpm(1), terminfo(1), scanf(3).


AUTHORS

       Paul Sheer (psheer@obsidian.co.za) is the developer of the
       Midnight Commander's internal editor.


BUGS

       See  the  file  README.edit  in  the distribution for more
       information.


Man(1) output converted with man2html