mcedit(1)

mcedit(1)

mcd Home Page User Commands Index mcookie


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

USAGE
       mcedit [ 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
       -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
       common full screen editors. It has an extensible file size
       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
              cat /dev/null > ~/.cedit/cooledit.error

       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 (~/.cedit/mcsyntax for mcedit) is
       rescanned  on  opening  of a any new editor file. The file
       contains rules for highlighting, each of which is given on
       a  seperate  line, and define which keywords will be high-
       lighted to what colour. The file is also divided into sec-
       tions,  each  beginning with a line with the file command,
       followed by a regular expression. The  regular  expression
       dictates  the file name that that set of rules applies to.

       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

       wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_

       # default colors
       context default
         keyword  whole  if       yellow
         keyword  whole  else     yellow
         keyword  whole  for      yellow
         keyword  whole  while    yellow
         keyword  whole  do       yellow
         keyword  whole  switch   yellow
         keyword  whole  case     yellow
         keyword  whole  static   yellow

         keyword  whole  extern   yellow
         keyword         {        yellow
         keyword         }        yellow
         keyword         '*'      green

       # C comments
       context /\* \*/ brown

       # C preprocessor directives
       context linestart # \n red
         keyword  \\\n  yellow

       # C string constants
       context " " green
         keyword  %d    brightgreen
         keyword  %s    brightgreen
         keyword  %c    brightgreen
         keyword  \\"   brightgreen

       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 seperately with,
       wholechars [left|right] characters

       The exclusive option causes the text  between  the  delim-
       iters  to  be  highlighted,  but  not the delimiters them-
       selves.

       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 seperator,  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         '*'      green
       colours  all C single character constants green. You could
       also have used
         keyword         "*"      green
       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  yellow
       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.

       Comment 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 rule that would
       be useful, please email me with your request.

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  modifiy  them  to change the editor
       behaviour, 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 envoking 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
              editor_fake_half_tabs to  simulate  a  smaller  tab
              spacing.

       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 mar-
              gin,  moving  and  tabbing  will be as though a tab
              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  occurances  of  say,  an open bracket, three
       comma seperated 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
       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.

       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
       version    can    be    found    at   sunsite.unc.edu   in
       /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@icon.co.za  is  the developer of the
       Midnight Commander's internal editor.

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

mcd Home Page User Commands Index mcookie