---
name: "mined"
section: "1"
platform: "linux"
package: "mined"
version: "2000.15.4-1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/mined"
---

# mined(1)

powerful text editor with extensive Unicode and CJK support

## NAME

mined - powerful text editor with extensive Unicode and CJK support

## SYNTAX

mined  \[ -/+options \] \[ +line \] \[ +/search \] \[ files ... \]

xmined ...\
 umined ...

wined ...

minmacs ...\
 mstar ...\
 mpico ...

## DESCRIPTION

Mined is a text editor with

### Good interactive features

- •

  Intuitive user interface

- •

  Logical and consistent concept of navigating and editing text  (without ancient line-end handling limitations or insert/append confusion)

- •

  Supports various control styles:

  - •

    Editing with command control, function key control, or menu control

  - •

    Navigation by cursor keys, control keys, mouse or scrollbar

- •

  Concise and comprehensive menus (driven by keyboard or mouse)

- •

  "HOP" key paradigm doubles the number of navigation functions  that can be most easily reached and remembered by  intuitively amplifying the associated function

- •

  Immediate adjustment if the window size is changed, in any  state of interaction

### Versatile character encoding support

- •

  Extensive Unicode support, including double-width and combining characters, script highlighting,  various methods of character input support  (mapped keyboard input methods, mnemonic and numeric input), supporting CJK, Vietnamese, Hebrew, Arabic, and other scripts

- •

  Extensive accented character input support, including  multiple accent prefix keys.

- •

  Support for Greek (monotonic and polytonic).

- •

  Support for Cyrillic accented characters.

- •

  Support of bidirectional terminals, Arabic ligature joining

- •

  East Asian character set support: handling of major CJK encodings  (including GB18030 and full EUC-JP with combining characters)

- •

  Support for a large number of 8 bit encodings  (with combining characters for Vietnamese, Thai, Arabic, Hebrew)

- •

  Support of CJK input methods by enhanced keyboard  mapping including multiple choice mappings (handled by a pick list menu); characters in the pick list being sorted by relevance of Unicode ranges

- •

  Han character information with description and pronunciation

- •

  Auto-detection of text character encoding, edits files with  mixed character encoding sections (e.g. mailboxes), transparent handling and auto-detection of UTF-16 encoded files

- •

  Auto-detection of UTF-8 / CJK / 8 bit terminal mode and detailed features (like different Unicode width and combining data versions)

- •

  Comprehensive and flexible (though standard-conformant) set of  mechanisms to specify both text and terminal encodings  with useful precedences.

- •

  Flexible combination of any text encoding with any terminal encoding.

- •

  Encoding support tested with: xterm, mlterm, rxvt,  cxterm, kterm, hanterm,  KDE konsole, gnome-terminal, Linux console,  cygwin console, MinTTY, PuTTY

### Many useful text editing capabilities

- •

  Many text editing features, e.g. paragraph wrapping,  auto-indentation and back-tab, smart quotes (with  quotation marks style selection and auto-detection)  and smart dashes

- •

  Search and replacement patterns can have multiple lines

- •

  Cross-session paste buffer (copy/paste between multiple  - even subsequent or remote - invocations of mined)

- •

  Optional Unicode paste buffer mode with implicit conversion

- •

  Marker stack for quick return to previous text positions

- •

  Multiple paste buffers (emacs-style)

- •

  Program editing features, HTML support and syntax highlighting,  identifier and function definition search, also across files;  structure input support

- •

  Text and program layout features; auto-indentation and  undent function (back-tab), numbered item justification

- •

  Systematic text and file handling safety, avoiding loss of data

- •

  Visible indications of special text contents  (TAB characters, different line-end types, character  codes that cannot be displayed in the current mode)

- •

  Full binary transparent editing with visible indications  (illegal UTF-8 or CJK, mixed line end types, NUL characters, ...)

- •

  Print function that works in all text encodings

- •

  Optional password hiding

- •

  Optional emacs command mode

### Small-footprint operation and portability

- •

  Plain text mode (terminal) operation, supporting wide range of terminals

- •

  Instant start-up

- •

  Runs on many platforms: Unix (Linux/Sun/HP/BSD/Mac and more), DOS (djgpp), Windows (cygwin, Interix)

- •

  Makefiles also support legacy systems

This manual contains the main topics

- •

  Command line options

- •

  Editing text with mined, an overview

  - •

    Keypad layout

  - •

    The HOP function

  - •

    Mouse control and Menus

  - •

    Paste buffers

  - •

    Text position marker stack

  - •

    Paragraph justification

  - •

    Auto indentation and Structure input support

  - •

    Search and replace multiple lines

- •

  Overview: input support features

- •

  Handling files with mined

  - •

    Tags file support

  - •

    Data security

  - •

    Line end modes and binary-transparent editing

  - •

    Memory of file position and editing style parameters

  - •

    Version control integration

  - •

    Printing

- •

  Working with mined

  - •

    Mode indication flags

  - •

    Structured editing support

  - •

    Password hiding

  - •

    Visible indication of line contents

  Language support

- •

  Character handling support

  - •

    Combining characters

  - •

    Character information display

  - •

    Character conversion features

  - •

    Smart quotes

- •

  Character input support

  - •

    Accented and mnemonic input support

  - •

    Combining character input

  - •

    Special character input shortcuts

  - •

    Character input mnemonics

  - •

    Keyboard Mapping and Input Methods

- •

  Character encoding support

  - •

    Auto-detected character encodings

  - •

    CJK and mapped 8 bit encoding support

  - •

    Combining characters

- •

  Unicode support

  - •

    Character input support

  - •

    Encoding conversion support

  - •

    Bidirectional terminal support

  - •

    Joining characters

- •

  CJK support

  - •

    CJK input method support

  - •

    Han character information display

- •

  Terminal encoding support Mined Command reference (command and key function assignments)

  - •

    Cursor and screen motion

  - •

    Entering text

    - •

      Input support commands

  - •

    Modifying text

  - •

    Text block and buffer operations

  - •

    Search

  - •

    File operations

  - •

    Menu

  - •

    Miscellaneous

  - •

    MSDOS only

  - •

    emacs mode

  - •

    WordStar mode

- •

  Environment interworking and configuration hints

  - •

    Mined runtime support library

  - •

    Terminal environment

    - •

      Locale configuration

    - •

      PC terminals

    - •

      Terminal setup

    - •

      Terminal interworking problems

  - •

    Keyboard Mapping / Input Method pre-selection

  - •

    Smart Quotes style configuration

  - •

    Han info configuration

  - •

    Common paste buffer configuration

  - •

    Keypad configuration

  - •

    Printing configuration

  - •

    Mined configuration

  - •

    MSDOS-only notes

- •

  Environment variables

- •

  Author and Acknowledgements

Online help is also available.

## Command line options

Mined can be invoked

- •

  with or without list of file names

- •

  reading from a pipe (reading text from standard input)

- •

  writing into a pipe (writing edited text to standard output)

- •

  using a script that starts it in a new window

### Examples

- mined x

  edits the file x

- mined x y z

  edits files x, y, and z

- cmd \| mined

  edits the output of program cmd;  a file name for saving can be given later

- mined x \> y

  takes the contents of file x and edits it  for writing into y

- mined \| mail nn

  edits a text to be mailed

- cmd1 \| mined \| cmd2

  modifies text within a pipe between  program cmd1 (output)  and cmd2 (as input)

- minmacs ...

  runs mined in emacs-compatible command mode (like mined -e)

- mstar ...

  runs mined in WordStar-compatible command mode (like mined -W)

- mpico ...

  runs mined in pico-compatible command mode (alpha)

- xmined ...

  starts a new terminal window (xterm or rxvt, depending on  current TERM variable setting) and invokes mined in it

- umined ...

  starts a new terminal window in UTF-8 mode (xterm or rxvt,  depending on font availability and usage capabilities)  and invokes mined in it

- wined ...

  (on Windows) starts mined in a separate terminal  session, using MinTTY if available, otherwise rxvt  (stand-alone version), either not needing X Windows; the script applies Windows look-and-feel, and configures  MinTTY to run in UTF-8 mode; the command is provided both  as a cygwin script wined and a Windows  command script wined.bat

### Startup options

- \+number

  Mined positions to the given line number.

- \+/expr

  Mined initially searches for the given search expression.

- \-v

  Mined starts in view only mode. The text cannot be modified.

- \\-\\-

  Restricted mode (tool mode): no other files can be edited  or otherwise affected.

- \++

  End of options; subsequent file name can start with  "-" or "+".

- \+x

  Make new files executable (Unix). →NEW→  When cloning a file (with Save As or a similar feature),  or if permissions are restricted by the environment  (umask setting in Unix), executable permission is set  only where also read permission is set.

### Line end handling (transparent and transforming)

- \-r

  Convert MSDOS line ends (CR LF) to Unix line ends (LF) (stripping CR at line ends). Can be combined with -R →NEW→  or +R. Also sets line end type for new files to LF for the djgpp  version (which defaults to CR LF).

- \+r

  →NEW→  Convert Unix line ends (LF) to MSDOS line ends (CR LF) (adding CR at line ends). Can be combined with -R or +R. Also sets line end type for new files to CR LF.

- \-R

  Convert Mac line ends (CR) to Unix line ends (LF). →NEW→  Can be combined with -r or +r.

- \+R

  Recognise Mac line ends (CR) and indicate them on display; nothing is transformed with this option. →NEW→  Can be combined with -r or +r.

- \+u-u

  Interpret Unicode line separator and paragraph separator  as normal characters, not line ends (handling them as  line ends was previously enabled with  -uu and is now on by default).

### Character set and character handling

- \-u *(character set)*

  Interprets edited text as UTF-8,  disables UTF and CJK auto detection.\
   Synonym of -EU.

- \-l *(character set)*

  Interprets edited text as Latin-1,  disables UTF and CJK auto detection. (Used to be +u which is  still valid for compatibility.)\
   Synonym of -EL.

- \+u-u *(character handling)*

  Interpret text as UTF-8, but interpret Unicode line  separator and paragraph separator as normal  characters, not line ends.

- \-c *(character handling)*

  Selects separated display mode for combined characters  (separating base character and combining characters). This mode can also be toggled from the Options menu or  by clicking on the Combining flag (next to the  character encoding flag) in the flags area.

- \-b *(character handling)*

  Toggle "poor man's bidi" mode:  input support for right-to-left scripts, based on  Unicode script ranges. (Enabled by default unless the terminal is detected to  be in bidi mode; so e.g. in mlterm, poor man's bidi  is disabled by default.)

- \-EX *(character set)*

  Where X is one of B/G/C/J/S/K/H: Selects one of the  supported CJK character encodings for text interpretation  and disables auto-detection of CJK encodings. For details, see CJK encoding support. For more details on supported encodings, see the  Character encoding flags listing  in the Mode indication flags section.

- \-EX *(character set)*

  Where X is one of U/L or another 1-letter character  encoding tag: Selects Unicode/UTF-8, Latin-1, or one  of the other supported character encodings for  text interpretation. For details on supported encodings, see the  Mode indication flags listing.

- \-E=charmap *(character set)*

  Where charmap is a character encoding name (as  reported by the locale charmap command): Selects the respective character encoding for  text interpretation. For details on locale-related character encoding configuration,  see Locale configuration.

- \-E.suffix *(character set)*

  Where suffix is a character encoding suffix ("codeset")  as used in locale names: Selects the respective character encoding for  text interpretation. For details on locale-related character encoding configuration,  see Locale configuration.

- \-E:flag *(character set)*

  Where flag is a 2-letter indication used by mined to  indicate the respective text encoding in the Encoding flag: Selects the respective character encoding for  text interpretation. For details on supported encodings and their flags,  see the Mode indication flags listing.

- \-Eu *(buffer encoding)*

  Enables Unicode buffer mode which always maintains the  Copy/Paste buffer in Unicode, thus facilitating conversion  between different encodings being edited. For details, see  Unicode Copy/Paste buffer conversion.

- \-E? *(character set)*

  →NEW→  Determine the encoding(s) of the text file(s) given  as parameters by auto-detection, print out the  information and quit.

- \-KX *(input method handling)*

  Configure the Space key to perform a certain function  in keyboard mapping selection menus  ("CJK input method pick lists"), where X is one of:\
    'n' to navigate to the next choice (like cursor-right), \
    'r' to navigate to the next row (like cursor-down), \
    's' to select the current choice (like Enter).

- \-K=im-im *(input method selection)*

  →NEW→  Select input method and/or standby input method (for  quick switching with Alt-k). The syntax is the same as for the optional environment  variable MINEDKEYMAP (see below).

- \+K *(input method handling)*

  (Obsolete with 2000.15 since keyboard mapping is always  enabled by default.) Enable keyboard mappings (input methods) even in 8-bit  terminal or when editing an 8-bit encoded file; the  characters thus entered will mostly only be displayed  by substitute indications (as most characters anyway  when editing files in an 8-bit terminal not matching the  character set).

### Terminal mode

- \-U *(terminal mode)*

  Toggles UTF-8 screen handling assumption, i.e. selects  UTF-8 screen handling unless UTF-8 keyboard input is  already selected (by another -U  option or environment setting). In the latter case, -U  deselects UTF-8 terminal operation. This option should normally not be used as the mode should  be configured in the environment (see  Locale configuration).

- \+U *(terminal mode)*

  Selects UTF-8 screen handling. Note that none of the options -U  or +U needs to be used if  the environment is correctly configured to indicate  UTF-8 as it should (see  Unicode handling / Terminal environment).\
   Also, mined performs auto-detection of UTF-8 terminal  encoding and UTF-8 terminal features (different width  data versions, handling of double-width, combining and  joining characters), so even if the environment is  not correctly configured, mined should work without  this explicit terminal mode parameter.

- \+UU *(terminal mode)*

  Selects bidirectional terminal support.  This mode implies UTF-8 and also assumes that Arabic  ligature joining (of LAM/ALEF combinations) is  applied; it will be handled by mined accordingly.

- \+UU-U *(terminal mode)*

  Selects bidirectional terminal support  without Arabic ligature joining (like MinTTY).

- \-cc *(terminal mode)*

  Assumes that the terminal does not support combining characters. By default - unless otherwise detected - mined assumes  that combining characters work on UTF-8 terminals and  do not work in CJK terminals.

- \+c *(terminal mode)*

  Assumes that the terminal supports combining characters. This is enabled by default for UTF-8 terminals, and  disabled by default for CJK terminals, unless otherwise  detected.

- \+EX *(terminal mode)*

  Where X is one of B/G/C/J/S/K/H: Assumes a CJK encoded  terminal in one of the supported CJK character encodings. For details, see CJK encoding support.

- \+EX *(terminal mode)*

  Where X is one of g/c/j: Assumes a CJK encoded terminal  in one of the CJK character encodings like G/C/J and  also assumes that the terminal cannot display GB18030  4-byte encodings, CNS 4-byte encodings, EUC-JP 3-byte  encodings, respectively.

- \+EX *(terminal mode)*

  Where X is one of U/L or another 1-letter character  encoding tag: Assumes a Unicode/UTF-8 or Latin-1  encoded terminal, respectively, or an 8-bit terminal  running one of the other supported character encodings. For details on supported encodings, see the  Mode indication flags listing. For details on terminal encoding support, see  Terminal encoding support.

- \+E=charmap *(terminal mode)*

  Where charmap is a character encoding name (as  reported by the locale charmap command): Assumes the terminal to have the respective encoding. For details on locale-related character encoding configuration,  see Locale configuration.

- \+E.suffix *(terminal mode)*

  Where suffix is a character encoding suffix ("codeset")  as used in locale names: Assumes the terminal to have the respective encoding. For details on locale-related character encoding configuration,  see Locale configuration.

- \+E:flag *(terminal mode)*

  Where flag is a 2-letter indication used by mined to  indicate the respective encoding as text encoding in  the Encoding flag: Assumes the terminal to have the respective encoding. For details on supported encodings and their flags,  see the Mode indication flags listing.

- \+E? *(terminal mode)*

  →NEW→  Determine the terminal encoding and further terminal  encoding features and properties by auto-detection,  print out the information and quit.

- \-C *(character set and terminal mode)*

  (Deprecated.) Turns a subsequent -E option  (with a single-letter CJK tag) effectively into a  combined -E and  +E option. So mined assumes the given CJK encoding for both  terminal encoding (unless overridden by UTF-8 terminal  auto-detection) and text encoding. Can be used for quick indication of CJK terminals  (e.g. cxterm, kterm, hanterm) if locale environment  is not properly set.

- \+C *(terminal mode)*

  Displays unknown characters on CJK terminal: Assumes a CJK encoded terminal (e.g. cxterm, kterm, hanterm;  more specific encoding specification is advisable), and  characters encoded in a CJK encoding format are  displayed transparently even if they do not map to a  valid Unicode character.

- \+CC *(terminal mode)*

  Displays invalid characters on CJK terminal: Implies +C, but even  character codes that do not match the encoding scheme  (e.g. wrt. to specified byte ranges) are written  transparently to the terminal.

- \+CCC *(terminal mode)*

  Displays extended characters on CJK terminal: Implies +CC and overrides  auto-detection of the terminal capability to display  CJK 3-byte / 4-byte codes which would by default  suppress their display if the terminal does not support them.

- \+D *(keyboard assignment)*

  Setup xterm (by sending dynamic configuration codes) to  apply two useful keyboard handling modes: Del key on small keypad sends DEL character rather  than an escape sequence and can thus be distinguished  from the Del key on the big (numeric) keypad. Prepend ESC to character if pressed with the Alt or Meta  key in order to enable Alt-commands (e.g. Alt-f to  open the file menu, Alt-Shift-H to enter HTML markers etc). (Unfortunately this cannot be done by default as it cannot  be undone because the previous state cannot be detected.) (This xterm setting should rather be configured permanently  as suggested in the sample file Xdefaults.mined  in the Mined runtime support library.)

### Information display

- \+?c

  →NEW→   Enable character code information display on status line.

- \+?X

  →NEW→   Enable character code information display (implies +?c)  with additional information, where X is one of:

  - •

    s: Unicode script

  - •

    n: Unicode character name

  - •

    d: Unicode character decomposition

  - •

    m: mined input mnemonics available for this character

  Note: setting any of these options may disable some others  as not all combinations are considered useful.

- \+?h

  →NEW→   Enable full Han character information display as a popup. In addition to the character description, a set of  pronunciations can be selected with the variable MINEDHANINFO.

- \+?x

  →NEW→   Enable compact Han character information on status line. In addition to the character description, a set of  pronunciations can be selected with the variable MINEDHANINFO.

- \+?f

  →NEW→   Enable file and position information display on status line. (On by default since mined 2000.15.) Note that when editing a file that does not fit  completely in memory (e.g. large file on old system),  this option may cause considerable swapping. In that  case, disable the feature with -?f.

- \-?X

  →NEW→   Deselect the respective +? option.

### Editing behaviour

- \-w

  Recognise fewer places as word boundaries for word skip  and delete commands.

- \-a

  Append mode: Append to text buffer or external file for  copy/delete commands instead of replacing it.

- \+j

  Set justification level 1 (or increment level  previously set by environment variable to 1 or 2): Level 1 initially enables automatic word wrap at line  end when typing over right margin. Can be changed by clicking on the j/J flag.

- \+jj

  Set justification level 2: Level 2 initially enables automatic word wrap at line  end when typing within paragraph; buggy. Can be changed by clicking on the j/J flag.

- \-j

  Set justification level 1 or 2 (other than previously  set). Can be changed by clicking on the j/J flag.

- \-T

  When moving vertically over a Tab character, stay  →NEW→   left of the Tab column range (on the Tab character). The default depends on the previous position. Also, stay left on a wide character when moving  vertically over it.

- \+T

  →NEW→   When moving vertically over a Tab character, stay right of  the Tab column range (behind the Tab character). The default depends on the previous position.

### Appearance

- \-QX

  Select menu border style, where X is one of

  - •

    s: simple border,

  - •

    r: rounded corners,

  - •

    f: fat border,

  - •

    d: double border,

  - •

    a: ASCII border (can be combined with another option -Qs or -Qr),

  - •

    v: VT100 alternate character set graphics border,

  - •

    @: reverse blank border (deprecated),

  - •

    1: (or another digit) add a margin between menu  borders and contents (can be combined with any  other -Q option),

  - •

    Q: stylish selection bar for navigating menu items, see image (can be combined with another option  -Qs or  -Qr or  -Qf or  -Qd).

  - •

    q: disable stylish selection bar

  Mined sets an appropriate default based on its  assumptions of the terminal capabilities.

- \-O

  →NEW→   Disable script colour highlighting (for Greek, Cyrillic...).

- \+O

  →NEW→   Enable script colour highlighting (for Greek, Cyrillic...). (Disabled by default in dark terminals.)

- \-f

  Restrict usage of graphic characters: use cell-grained  scrollbar, simple menu borders, no fancy menu bar for  highlighting the selected menu item.

- \-ff

  Further restrict usage of graphic characters:  no Unicode box drawing graphic characters for menu borders.

- \-fff

  Further restrict usage of graphic characters:  no graphic characters (including VT100 block graphics)  for menu borders.

- \-F

  Assume a screen font with limited coverage of special  symbols and restrict usage of special marker  characters for display of line indications. (This is  needed e.g. for KDE konsole or for xterm using  TrueType fonts.)\
   Interpretation of the MINEDUTF\* environment variables is suppressed.

- \-FF

  Assume a screen font with even more limited coverage  of special symbols and restrict usage of special characters  for indication of selected menu items.

- \+F

  →NEW→  Revert the effect of one -F  option (e.g. preconfigured in the environment variable  MINED) or a corresponding assumption of mined about  the specific terminal which would limit font usage.

- \+FF

  →NEW→  Fully enable usage of characters for special indications.

### Further mode selection, interface and display behaviour

- \-4

  Set Tab size to 4 rather than 8. The effective Tab size can also be toggled while  editing with the ESC T command.

- \-8

  Set Tab size to 8. (May be used on command line to override  Tab size being set to 4 be MINED environment variable.) The effective Tab size can also be toggled while  editing with the ESC T command.

- \-+4

  Set spacing Tab with size 4; a Tab input character  will be expanded to an appropriate number of spaces. To enter a real Tab character, type Ctrl-V Tab (^V^I). The effective Tab size can also be toggled while  editing with the ESC T command. Tab expansion mode can also be toggled while editing  with the HOP ESC T command.

- \-+8

  Set spacing Tab with size 8; a Tab input character  will be expanded to an appropriate number of spaces. To enter a real Tab character, type Ctrl-V Tab (^V^I). The effective Tab size can also be toggled while  editing with the ESC T command. Tab expansion mode can also be toggled while editing  with the HOP ESC T command.

- \-P

  Hide passwords; enables hidden display of one word  behind the string "assword" in a line (to accommodate  for "password" or "Password"): hidden characters are  indicated by reverse "\*" characters. By default, this mode is activated when editing a file  whose name starts with ".".

- \+P

  Unhide passwords; always display them.

- \-LN

  (N is a number) Define mouse wheel movement to scroll  by N lines (default 3). Ctrl-mouse-wheel always scrolls by 1 line. Shift-mouse-wheel scrolls by 1 page. →NEW→   Mouse-wheel on the scrollbar scrolls by half a page.

- \-e

  Select emacs mode. This assigns  functions to control keys, M-X commands (ESC commands,  using the "meta" key as emacs calls the Alt prefix)  and C-X commands as defined by the emacs editor. Also  the emacs paste buffer ring and cut/paste behaviour is  enabled.

- \-V

  Place cursor before pasted region after paste commands. (If this option is enabled already, -V acts like -VV.)

- \-VV

  Like -V, and disable emacs-style paste buffer  functions for "delete word" and "delete to end of  line" commands (^T, ^K).

- \+V

  Place cursor behind pasted region after paste commands. (If this option is enabled already, +V acts like +VV.)

- \+VV

  Like +V, and enable emacs-style paste buffer functions  for "delete word" and "delete to end of line" commands  (^T, ^K).

- \-W

  Select WordStar mode. This  configures WordStar command key layout and enables  many functions of the ^K, ^O, and ^Q menus.

- \-B

  Enforce the Del control character to delete left,  Backspace to move left. Should normally not be used, see  "Automatic backspace mode adaptation" below.

- \+k

  →NEW→  Enforce usage of terminal "keypad mode" which switches  the numeric keypad to send "application keypad" escape  sequences. This is normally not needed. On certain  terminals, mined will automatically use this mode (e.g.  Linux console), and in terminal emulators it is usually  not needed unless you are running a misconfigured  X windows system in which case you can enable  distinguished keypad functions by using the NumLock  function of the keyboard and switching on this option.

- \-k

  Assign the more usual functions "goto line beginning",  "goto line end" and "delete character" to the Home,  End and Del keys of the right keypad ("numeric keypad"). The (assumedly more useful) mined default is to assign  the frequently used paste buffer functions (mark,  copy, cut) to these keys.\
   In turn, the assigned functions of the Home and End keys  of the small keypad ("editing keypad") are exchanged to  provide the other function than on the right keypad,  respectively - provided the terminal and its configuration  support this distinction.\
   Also Alt-Home/End is assigned the respective other  functions so the most useful keypad functions should  always be quite easily available.\
   Regardless of this switching, mined tries to map  fixed functions to modified Home and End keys: Ctrl-Home/End for line begin/end movement (both keypads),  Shift-Home/End for the paste buffer copy functions  (small keypad) - provided the terminal, its mode and  configuration support distinction of modified keypad keys.\
   See also the section on Keypad layout  for a motivating overview of the mined keypad  assignment features and options.\
   About terminal support and configuration, see  Keypad configuration for further hints.

- \+\*

  →NEW→  Enable enhanced mouse control: Menu items can be navigated with the mouse without  button pressed. Enabled by default for MinTTY, xterm, gnome-terminal.

- \-\*

  Disable enhanced mouse control (if enabled by default  or by previous option), otherwise disable mouse support  altogether.

- \-\*\*

  Disable mouse support altogether.

- \-M

  Suppress display of menu header line (including flags). Pull-down and pop-up menus can still be opened with  keyboard commands. →NEW→  Mouse control remains enabled.

- \-oN

  Select scrollbar display mode. N=0 disables the scrollbar (may speed up editing on  slow remote lines), N=1 enables cell-grained  scrollbar display, N=2 (default) enables finer-grained  scrollbar display on a UTF-8 terminal.

- \-oo

  Selects old (until 2000.14) left/right click behaviour on scrollbar.

- \-o

  Toggles the scrollbar.

- \-p

  Enables distinguished display of line ends and  paragraph ends with different symbols.

- \-X

  Disables display of the filename in the window title bar.

- \-s

  Stay with cursor in top line after page down  or bottom line after page up instead of center line.

- \-S

  Use scrolling for page up/down.

- \-dN

  Apply delay between lines of page output to achieve  visually effective display build-up which may help to quickly  focus on the new cursor position (the screen output is  displayed starting from the cursor position, proceeding  to the screen edges).\
  \
   	If N lies between '0' and '9', the respective number of  milliseconds is applied between display of two lines. If N='0', still an output flush is performed. If N='-', no delay at all is applied though still the order  of display output is from cursor position to edges.\
  \
   	*Default*: '-'; configuration is currently disabled  in the Unix version as 'usleep' doesn't seem to be very  portable.

- \+p

  Enables support for proportional display fonts.  (Not really tested as there doesn't seem to exist a  terminal emulator that handles proportional fonts and  cursor positioning correctly.)

All options are also looked for in the environment variable MINED.

## Editing text with mined

Mined is always in insert mode. Commands are single control  characters, double key commands starting with ESCAPE, and a  collection of function keys (for various types of keyboards and  terminals). As a specialty, note the prefixing 'HOP KEY' which  amplifies the effect of certain commands "just as you would expect";  this provides for more command flexibility without having to  remember too many keys. It is described in a separate section  below.

### Keypad layout

Control key layout for basic movement functions is topographic  on the left-hand side of the keyboard (an idea originating  from early editors, when keyboards didn't have cursor keypads). (Although using a cursor block is more comfortable, a simple  set of control key assignments is useful as a fallback on  terminals or remote connections with reduced functionality.)

The right-hand cursor block of typical keyboards is assigned  the most important movement and paste buffer functions.

- **Keypad assignment features:**

  - •

    central placement of HOP key (see below)

  - •

    integration of frequently used copy/paste functions

`                        +------+------+------+`\
\
 `                        | (7)  | (8)  | (9)  |`\
\
 `                        | Mark |  ^   | PgUp |`\
\
 `                        +------+------+------+`\
\
 `                        | (4)  | (5)  | (6)  |`\
\
 `                        | <-   | HOP  |  ->  |`\
\
 `                        +------+------+------+`\
\
 `                        | (1)  | (2)  | (3)  |`\
\
 `                        | Copy |  v   | PgDn |`\
\
 `                        +------+------+------+`\
\
 `                        | (0)         | (.)  |`\
\
 `                        | Paste       | Cut  |`\
\
 `                        +------+------+------+`\

	Note that the mined keypad function assignment as shown here  deviates from the more usual assignment of Home/End to  "move to beginning/end of line" and Del to "delete character". This is deliberately designed to provide more useful functions  to easily available keys, while e.g. line movement can also  easily be achieved with HOP cursor-left or HOP cursor-right,  respectively, and - depending on the terminal configuration -  character deletion may still be done with the small keypad Del key.\
 This keypad function assignment gives you the  *best benefit of keypad usage* and is thus considered  much more useful than the commonly expected "standard assignment"  although now and then a user is irritated by it. As there is often a conflict between the mined keypad assignment  and commonly expected function assignments of some keypad keys,  mined tries to conciliate this issue as follows:

- •

  Alt-Home/End/Del is mapped to the more common  Home/End/Del function assignments (line navigation and  character deletion).

- •

  Mined assigns different functions to the Home/End/Del  keys on the numeric keypad and the similar keys on the  small keypad (whenever possible with the terminal) in order  to avoid the waste of resources by the usually redundant  mapping of these two keypad blocks.

- •

  The -k option switches  keypad function assignments:\
   Home/End/Del of the numeric keypad invoke line  navigation and character deletion.\
   Alt-Home/End/Del invoke the paste buffer functions.\
   Also small keypad Home/End/Del keys are exchanged  accordingly.

- •

  Using Del without a paste buffer gives an  additional hint on alternative usage.

- •

  Regardless of -k mode,  Ctrl-Home/End/Del is mapped to the line navigation and  character deletion functions, while Shift-Home/End/Del  is mapped to the paste buffer functions.

- •

  *Note:* Keypad function assignments as described  depend on terminal support to distinguish all involved  keys and modifiers which is unfortunately not always  the case.\
   Terminal support for proper distinction of different  keypads and modified keys may be enhanced by appropriate  terminal configuration, see the manual section on  Keypad configuration.

### The HOP function

This function, triggered by any of the HOP keys, amplifies (or  modifies) functions as listed below. To achieve the combined  function, first press any key that is assigned the HOP  function, then any key assigned the second function:

- HOP *char left*

  move cursor to beginning of current line

- HOP *char right*

  move cursor to end of current line

- HOP *line up*

  move cursor to top of screen

- HOP *line down*

  move cursor to bottom of screen

- HOP *scroll up*

  scroll half a screen up

- HOP *scroll down*

  scroll half a screen down

- HOP *page up*

  move to beginning of file

- HOP *page down*

  move to end of file

- HOP *word left*

  move cursor to previous ";" or "."

- HOP *word right*

  move cursor to next ";" or "."

- HOP *delete tail of line/line end*

  delete whole line

- HOP *delete whole line*

  delete tail of line

- HOP *delete previous character*

  delete beginning of line

- HOP *set mark*

  go to mark

- HOP *search*

  search for current identifier

- HOP *search next*

  repeat previous (last but one) search

- HOP *copy/cut*

  copy or cut, but append to buffer

- HOP *save buffer*

  save buffer, but append to file

- HOP *paste buffer*

  paste "inter-window buffer",  which is the last saved buffer by any invocation  of mined on the same machine by the same user.

- HOP *edit next file*

  edit last file

- HOP *edit previous file*

  edit first file

- HOP *exit current file*

  exit mined

- HOP *suspend*

  suspend without writing file

- HOP *show status line*

  toggle permanent status line

- HOP *enter HTML tag*

  embed copy area in HTML tags

While a pull-down or pop-up menu is open, any HOP key or the  Space key or the middle mouse button toggles the HOP amplifier  for a function subsequently invoked in the menu; the menu  redisplays with function names changed where applicable.

### Character-oriented navigation and editing

From the traditional restriction of Unix tools to the line as a  unit of operation, other editors have derived a line-oriented  movement and insertion paradigm which is a nuisance for  anyone who wants an editor with decently intuitive operation.\
\
 	Mined handles the end-of-line character like any ordinary  character during movement and editing operations. Also search and replace strings can contain line ends.

### Mouse control and menus

All versions of mined (Unix, DOS/Windows) support mouse operation.\
\
 	Mouse control operates on pull-down and pop-up menus, flags,  the text area, the bottom line, and the scroll bar,  in order to provide the most useful functions and menu-driven  command selection at hand.

*Summary of mouse functions*:

- In text area:

  - •

    left click moves the text cursor to the mouse position

  - •

    left click-drag-release selects a text area and copies it  to the paste buffer

  - •

    middle click display the text status line

  - •

    right click pops up the quick menu

  - •

    mouse wheel scroll scrolls by N lines (default 3, adjust  with option -L) Ctrl-mouse-wheel always scrolls by 1 line. Shift-mouse-wheel scrolls by 1 page. →NEW→   Note: Mouse-wheel on the scrollbar scrolls by half a page.

- On scroll-bar:

  - •

    left click →NEW→   moves one page towards the mouse position (as seen  from the current scrollbar position marker)\
     or (with option -oo) moves one page down

  - •

    middle click moves to text position in file corresponding to  relative mouse position on scrollbar

  - •

    →NEW→  left click-drag moves text position in file with moving relative  mouse position on scrollbar

  - •

    right click →NEW→   moves one page away from the mouse position (as seen  from the current scrollbar position marker)\
     or (with option -oo) moves one page up

  - •

    mouse wheel scroll →NEW→   scrolls by half a page

- On bottom line (status line):

  - •

    left click moves one page down

  - •

    middle click displays the text status line

  - •

    right click move one page up

- On pull-down menu header (in left menu area of upper line):

  - •

    left or right click →NEW→  or mouse wheel scroll opens menu

  - •

    middle click opens menu with HOP-modified functions

- On flag indication (in right flag area of upper line):

  - •

    middle click toggles flag

  - •

    left click *(deprecated)* toggles flag (should open menu in a future version)

  - •

    right click →NEW→  or mouse wheel scroll opens flag menu

- On open menu

  - •

    mouse wheel scroll navigates in menu

  - •

    →NEW→  mouse movement *(without holding button)* navigates in menu *- enabled by default in MinTTY, xterm, gnome-terminal;* *may be controlled with -\**  */ +\* command line options*

  - •

    left click invokes menu item pointed to with the mouse

  - •

    left or right drag *(holding button down after opening the menu)* navigates in menu

  - •

    left or right release *(after mouse dragging)* invokes selected menu item

  - •

    middle click toggles HOP modifier

  - •

    Ctrl-mouse-wheel →NEW→   switches to next or previous menu

	*Configuration hint*: To enable mouse operation in a  Windows console window, deactivate "QuickEdit mode" in the  properties menu.

### Menus

Mined provides three kinds of menus, all can be opened with  either mouse clicks or commands. The menus offer the most important editing functions (apart  from simple movement). Some menus have their items grouped into sections, some of which  have subtitles.\
 The HOP flag can be toggled while a menu is open with any  of the HOP key, ^G, Space, or the middle mouse button. When a pull-down menu is opened with the middle mouse button,  the HOP variation is initially triggered, offering the HOP  variations of the menu items.\
 The three menu groups are used as follows:

- •

  A *pull-down menu* is opened by clicking the mouse  on the menu header (in the left part of the top screen line)  →NEW→  or scrolling the mouse wheel on this header.\
   *Shortcut:* Each pull-down menu can also be opened  with ESC or Alt and the small initial letter of the menu  header (Alt-f or ESC f for the file menu etc.).

- •

  A *flag menu* is opened by clicking the  right mouse button on a flag indication in the flags area  (right part of the top screen line)  →NEW→  or scrolling the mouse wheel on it. The flag menus have optional markers in front of each item  showing which items are currently active.\
   *Shortcut:* The Info menu, Input Method (Keyboard  Mapping) menu, Smart Quotes menu, Encoding menu can also be  opened with Alt-F10, ESC I or Alt-I, ESC K or Alt-K, ESC Q or  Alt-Q, ESC E or Alt-E, respectively.

- •

  The *pop-up menu* is placed above the text area and  can be opened with a right-click or Alt-Space (ESC Space).

### Menu navigation

When a menu is open, the cursor-left or cursor-right keys  cycle through the pull-down and flag menus. Alt-cursor-left and Alt-cursor-right navigate quickly between  the two sets of menus (pull-down or flag menus).\
 When a sub-menu is open, cursor-left goes back to the  parent menu, cursor-right opens its next menu to the right.

There are three methods to navigate within a menu:

- •

  With the keyboard: open menu as described above, navigate  with cursor keys or by typing the first letter of the desired  menu item (which cycles through all items starting with that  letter, or  →NEW→   containing a word starting with that letter); activate menu item with Enter key.

- •

  With mouse clicks: open menu with click (and release)  mouse button, switch to other menu with another click, click  on item to activate it. The mouse wheel may be used to navigate  menu items.

- •

  With mouse dragging: open menu with mouse button (left or  right), browse menus and items with button held down, activate  selected item with releasing mouse button.

Methods may be mixed, e.g. open a menu with either mouse click  or keyboard, navigate with mouse wheel, then select with Enter.

When selecting a menu item, in most cases the associated function  is carried out and the menu closed afterwards. →NEW→   In some cases, an option is toggled and the menu stays open  (esp. in Info menu: Han info pronunciation selection,  character information "with" attributes selection).

	*Scrollable menus:* In a low-height terminal (e.g. 24 lines),  longer menus (especially the Encoding menu and the Input Method  menu) may not fit on the terminal. All menus are scrollable  with cursor keys, including Page Down/Up, Home, End keys.\
 When the window size is changed, open menus are closed in  order to prevent resizing and repositioning problems; this is  planned to be enhanced in a future version.

### Hints

	*Note:* Your mouse driver or Windows system may be  configured to generate multiple (e.g. 3) mouse wheel events on  one mouse wheel movement (e.g. with Windows). An option  -L1 could compensate for that  scaling (as mined applies a mouse wheel factor by itself which  is 3 by default).

	*Layout configuration:* See Menu  display below for configuration of menu appearance.

	*Configuration hint:* On Unix, in order to make Alt work  as a modifier, set the xterm resource metaSendsEscape to true  and the rxvt resource meta8 to false as suggested in the  example file Xdefaults.mined in the  Mined runtime support library. (With older versions of xterm, setting eightBitInput to false  may be required instead; this xterm option doesn't actually  disable 8 bit input as its name might suggest.) With xterm, this setting can also be enforced dynamically with  the +D option.

### Inter-window paste buffer

Mined can perform copy/paste operations within different  editing sessions (parallel or subsequent invocations of mined):  The command HOP Ins (e.g. ^G ^P) will insert the most  recent paste buffer copied or cut in any of the user's mined  sessions. This can also work remotely in a network; to configure this  features, see  Common paste buffer configuration.

### Multiple paste buffers

Mined provides emacs-style multiple paste buffers that  are organised as a buffer ring. Every buffer cut or copy  operation (that places the text between the marked and the  current position to the buffer) creates a new buffer and  stacks it to the list of buffers. If the feature "deleted word/line appends to buffer" is enabled  (+VV) the commands delete-end-of-line  (^K), delete-word (^T) and delete-end-of-sentence (currently  emacs mode only) append to the top buffer (disabled with the  option -VV).\
 To paste a non-top-most buffer, paste the most recent buffer  first as usual, then use the buffer-ring command  (Alt-Ins or Ctrl-F4, or M-y in emacs mode) to  exchange the pasted text with the previous buffer. This  can be repeated, going down the stack of buffers, and at  its bottom, starting over from the top again.

### Text position markers

A default marker for quick use and additional 10 numbered  text markers are available. \
 Marker 0 has a special function: 1. it is set when opening a  file at the memorized position, 2. whenever a new current  marker is set, the previous one is pushed to marker 0.

### Text position marker stack

In addition to the explicit text markers,  mined implicitly maintains a marker stack to support navigation  and orientation when browsing files. Whenever a command moves the position by a far distance  (Go to marker, Go to line, Go to file beginning/end,  Go to next/previous file, Search functions including Search  identifier definition across files, Replace with confirm), the  current position is first pushed to this stack. Later, in order to return to the previous position, use  the command ESC Enter (Alt-Enter) to move along the positions  in the marker stack. The command HOP ESC Enter (HOP Alt-Enter) moves again forward  along the stack.

### Paragraph justification / word wrap

Manual paragraph line/word wrap is invoked with the  justify command (ESC j or ESC J); it justifies the current  paragraph (wraps its lines/words) according to the effective  margins and paragraph termination mode.\
 *Clever justification*: With ESC j, mined automatically  determines left margins depending on the current paragraph and  line contents. Heuristic detection of numbered items will trigger  automatic indentation.\
 *Normal justification*: With ESC J, mined justifies  strictly according to the margin values currently configured.\
 See commands listing below "ESC j"  for margin setting commands.

*Paragraph termination modes*: Two different definitions of paragraph end are available.

- •

  The primary mode is to add a space at the end of each line  when the paragraph continues and to end the line without  space where the paragraph ends. This seems an intuitive  way and as a big advantage over other approaches, it is  transparent with respect to visual formatting, i.e. no  text property is required that would affect visual layout  of the text.\
   *Note*: Additional visual support of paragraph end  detection is available with the mined option -p that  distinguishes paragraph/line end display.

- •

  The other word-wrap mode is to add an empty (blank-only)  line after each paragraph. Obviously this imposes more  additional requirements on text formatting discipline and  reduces freedom of text layout.

The mode in effect is indicated in the mode indication display;  see description there.

### Auto indentation

By default, mined acts in auto-indent mode: When you enter a  newline, the following line will be filled with the same  prefix of space characters (Space or Tab) as the current one. This option can be toggled from the Options menu. A new line without auto indentation can be entered  with the ^O command.

	Auto indentation is automatically suppressed if text is entered  very fast (by heuristic detection of input speed) in order to  allow unmodified copy and paste using terminal mouse functions.

### Structure input commands

A pair of parentheses with matched indentation can be entered  by prefixing a parenthesis character with HOP. For example, HOP "{" would enter a pair of "{" "}", both  auto-indented on their respective new line. Other pairs are  "(" ")", "\[" "\]", "\<" "\>".\
\
 	HOP "/" enters an indented Javadoc comment frame.

### Back-Tab (Undent function / reverse indent)

A Backarrow key from a position that is only preceded by white  space on the line and on the line above will revert the input  position to the previous matching indentation level. To avoid auto-undentation ("Delete single"), use  Ctrl-Backarrow or F5 Backarrow to delete only one character left. (Ctrl-Backarrow only works if configured in your X  configuration, see the example configuration file  Xdefaults.mined in the Mined  runtime support library.)

### Tab expansion

With one of the options -+4 or -+8, a Tab key input will be  expanded to an appropriate number of Space characters instead  of inserting a Tab character. You can still insert a literal  Tab character with Ctrl-V Tab.

### Search and replace multiple lines

Mined has overcome the typical Unix tool limitation of line  orientation in search operations. Search and replacement patterns can contain embedded newlines.  Enter a newline (linefeed character) in the search string with  ^V^J or \\n (or \\r to match CRLF newlines). (In some cases there are still display problems; then update  the screen with the ESC "." command.)

### Header line underlining

The command HOP "-" (e.g. Ctrl-G -) underlines the  header line before the cursor position with as many "-"  characters as needed; it applies to the current line unless  the cursor is at a line beginning in which case it applies to  the previous line.

### Automatic backspace mode adaptation

There is much confusion about what character codes are delivered  by the Backarrow and Del keyboard keys in different  operating environments and configurations. For proper operation, the "stty erase CHAR" configuration should  generally be set correctly to reflect the actual code emitted  by the terminal. Mined detects this setting and adjusts its handling accordingly,  so that the "Backarrow" key should normally work as expected  (delete a character left).

## Overview: input support features

### Character input

Mined provides several methods to support input of special  characters that may not be easily available on the keyboard.

- •

  Accented and mnemonic input support defines Accent prefix keys  to compose accent combinations with subsequently entered characters.

- •

  It also provides  Character input mnemonics for  easily memorisable input of a wide range of characters,  including most composed Unicode characters.

- •

  Input support commands  include a quick shortcut for two-character mnemonics.

- •

  Input support commands  also provide for character input by hexadecimal / octal / decimal  character code or Unicode value, including support for  subsequent entry of multiple numeric characters according to  ISO 14755.

- •

  Keyboard mapping switching the keyboard  to support another script. This mechanism also provides *CJK input methods*.

### Structured input

- •

  HTML tag input (starting/closing or embedding marked text).

- •

  Auto indentation and Back-Tab.

- •

  Structure input commands:  Input of indented matching parentheses and Javadoc frames.

- •

  Paragraph justification (line/word wrap).

- •

  Header line underlining

### Special features

- •

  Smart quotes automatic transformation of entered straight quote marks into  typographic quotation marks (style can be selected in flags area),  as well as smart dashes and other smart text replacements.

- •

  Right-to-left script input support.

## Handling files with mined

### Tags file support

The ESC t command moves to the definition of an identifier  (on which the cursor should be placed) using the tags file  (generated by the ctags command).  HOP ESC t prompts for an identifier. (Also available from  search or popup menu.) If a new file is opened for this purpose, the current  file is saved automatically.\
 Like with a number of positioning commands, ESC t places  the current position on the position marker stack before going  to the location of the identifier definition. The command ESC  Enter (Alt-Enter) moves back to that position, also saving the  current file if needed first.

### Data security

Mined has a robust and defensive concept of handling edited  text and file contents in case of any kind of program or  system errors.

### Edited text

Every care has been taken to prevent loss of the edited text  in case of save errors or accidental quit commands etc; mined  always prompts before discarding any modified text (not all  popular editors are so careful about this, e.g. emacs when  editing text without associated filename).\
 In the rare case of an unrecoverable error (out of memory  or terminal I/O error) or if mined is interrupted by an  unexpected signal, mined needs to terminate but it tries to  save the edited text (if modified) into a panic file  in one of the directories $MINEDTMP, $TMPDIR, $TMP, $TEMP,  /usr/tmp, or /tmp (whichever variable is defined first and  directory is writable in this order). If possible, mined also tries to continue normally after panic  handling unless multiple external signals are nested. Only if the temporary area happens to be full and mined cannot  continue either you would be out of luck.\
 If mined is sent an explicit SIGTERM signal it tries to  terminate normally, writing modified text to the file being  edited (this would involve normal interactive handling if that  file is read-only or the file name was changed).

### Files

Also, if any command is issued to write to a file not  previously read in (after change of file name or working directory,  or with a Copy to file command), mined prompts for confirmation.

### File access permissions

When creating a new file, its access permissions are set  according to the default behaviour set in the user  environment (umask setting in Unix). →NEW→   However, when cloning a file (with Save As / Set Name / ESC n  / ESC d), file access permissions of the originally opened file  are preserved and cloned.\
 The +x command line option adds  executable permission to newly created files →NEW→   but only to those users that are also given read permission  by the rules above.

### Pipe output

In the "write to standard output" mode (i.e. when invoked  within a pipe), only one "file save" operation can be performed  writing to standard output. If more than one such operations are issued (e.g. using the  ESC w / F2 , F3, or suspend command) only the first one  will write the text buffer to standard output; any subsequent  one is treated as usual (with empty file name).

### Line end modes and binary-transparent editing

Mined is binary transparent. It can handle all types of  line ends (Unix, DOS, optionally Mac, and Unicode separators)  simultaneously in the same editing session. They are indicated  by different visible line end indications. Files without  trailing line end can be edited and created (using the delete  character right function on the last line end). NUL characters  are handled as virtual line ends. Lines too long for internal  handling are split transparently (with a "none" virtual  line end).\
\
 	Character codes that are illegal in the currently selected  text encoding are maintained transparently and are clearly  indicated (e.g. illegal UTF-8 sequences in Unicode text).\
\
 	Files with mixed encoding (e.g. UTF-8 / 8 bit sections) can  be edited comfortably.\
\
 	*Input*: To enter a NUL character, use ^V # 0 or  ^V \< NUL or Ctrl-Space \> (if the keyboard supports  the latter).

### Memory of file position and editing style parameters

If the current directory contains a file named @mined.mar ,  file position memory is enabled.\
\
 	The current cursor position is stored with every file save  command (even if no write is performed because the text has not  been edited). When editing that file again, mined will automatically move to  that position (and set text marker 0 to it). (The association of the position is not with the file itself  but with its relative name from the current directory.)\
\
 	This mechanism is enabled in each directory by using the  command "Save Position" from the File menu, or by using  Ctrl-F2 to save a file or by prefixing any file writing  command with HOP. This enforces creation of the marker file.\
\
 	→NEW→  *Note:* With mined 2000.14, the saved position is changed  from the screen column to the actual character position. This  makes a difference in two cases: when the current position  is within a combined character, and when the same file is  opened in terminal windows with different width properties. Previously stored visual positions are handled compatibly,  but when a file is stored with new position memory mode  and reopened with an older version of mined (e.g. on a  different machine), the column position would just be set  to 0.\
\
 	→NEW→  *Note:* With mined 2000.14, mined applies "housekeeping"  to the position entry for the current file, i.e. it removes  old entries for the same file name. Note that this housekeeping is, however, only done for the  file being edited, not for other files listed in the marker  file. Also note that old style file position memory is used on  PC versions (e.g. djgpp) as updating the marker file does not  appear to work there.

	In addition to the current position, mined also stores the  paragraph justification margins (only if automatic paragraph  justification is active) and the selected Smart Quotes style.

### Page length

The command ESC P sets the number of lines that mined assumes  to be on a page. So the status line can contain the page  number to make finding the current position in a print-out  easy. Also the Goto Line/% command (^G etc.) accepts a final \
  'p' or 'P' in which cases it positions to the top of the given  page. This information will be associated and stored with the file  name if file position storing is active (i.e. if the file  @mined.mar exists in the current directory).

### File names

When entering file or directory names, the leading ~ notation  to refer to one's home directory is accepted.

### Restricted mode (tool mode)

Restricted mode is activated with\
\
 `		<code>mined \-\- [ filenames ... ]`\
 In restricted mode, only the file opened when mined was started can  be edited, no commands changing file name reference, involving other  files (copy/paste), or escaping to a shell command will be allowed. (When mined is invoked without filename argument, a file name  will be prompted for despite restricted mode, however.)

### Version control integration

From the File menu, checkout and checkin commands are  available that invoke "co" or "ci" scripts, respectively  (which must reside in the user's command search path). This offers a gateway to ClearCase or other version control  systems; mined applies automatic save or screen update  as appropriate.

### Printing

From the File menu, a print command is available that  prints the text currently being edited. If the script uprint is installed and configured  properly, printing works in any selected character encoding. See Printing configuration for further  details.\
 →NEW→  Under Windows, if neither of the formatting tools paps  or uniprint happens to be installed,  uprint uses notepad /p for printing. The djgpp-compiled version calls notepad /p directly.\
 *Note:* The font size interactively configured in notepad  also affects the print size; a font size of not more than 10pt  gives you at least 80 characters per line; if 72 characters per  line are enough, you can use 11pt font size.

## Working with mined

### Mode indication flags

The right side of the top menu bar displays a number of  one-letter or two-letter indications for certain modes;  the associated flag menus can be opened from here with a  mouse right-click, or the modes can be toggled quickly with  a middle-click. (Keyboard shortcuts for handling flags and menus are also  available.)

- •

  Information display mode

  - •

    	"?": this flag menu offers options  for permanent File info, Char info, or  Han character information display. For Char info and Han info, further options  can be selected to configure the information shown.\
     (Note that in extreme situations, permanent  File info display might cause swappping (when  editing a file that does not fit completely in  memory, e.g. large file on old system). In  that case, disable the feature.)

- •

  (In non-Latin-1 text and terminal mode only)  Input Method (Keyboard Mapping)

  - •

    	"\\-\\-": no keyboard mapping  is active.

  - •

    	"...": a two-letter  input method tag indicates that an according  keyboard mapping is active,  mapping keyboard input to characters of  the selected Unicode script range, or  using a more complex CJK input method involving  "pick list" selection menus. See Keyboard Mapping and Input  Methods below.

  - •

    	Right mouse button on this indication opens a  menu for selection of the desired keyboard mapping.

  - •

    	Left mouse button on this indication toggles between  the current and the previous selected keyboard mapping.

- *Note:* In the open Input method menu,

  the last column indicates the source of the input method  with a short tag as follows:

  - •

    	"U": generated from Unicode data file UnicodeData.txt

  - •

    	"H": generated from Unihan database Unihan.txt

  - •

    	"C": transformed from cxterm input table

  - •

    	"M": transformed from input method of the m17n project

  - •

    	"Y": transformed from yudit keyboard mapping file

  - •

    	"V": transformed from vim keymap file

  - •

    	"X": transformed from X keyboard mapping file

- •

  Smart Quotes

  - •

    	Two quote marks are displayed that act as  automatic "smart quotes": When you type a «"»  or «'» character (straight double or single quote),  it is replaced by an opening or closing typographic  quote mark (double or single, respectively),  depending on the text context.

  - •

    	Right mouse button on these indications opens a  menu for selection of the desired quotation  marks style.

  - •

    	Left mouse button on this indication toggles  between the current and the previous style  selected with the menu.

- •

  Character encoding (used for text interpretation)

  - •

    	A two-letter character encoding tag indicates  the text encoding currently assumed for display. Changing the encoding changes the interpretation  of the text which is otherwise handled  transparently; it does not recode the text.

  - •

    	Right mouse button on these indications opens  a menu for selection of the desired quotation  marks style.

  - •

    	Left mouse button on this indication toggles  between the current and the previous selected  encoding.

- *Note:* See

  Character encoding support below for a list of  encodings that are auto-detected.

- *Note:* For hints on pre-selecting preferred

  text encoding (as well as terminal encoding) and a note  on adjusting the available encodings and configuring  the Encoding menu, see  Locale configuration.

  - •

    	"U8":  Unicode/ISO 10646 character set / UTF-8 encoding

  - •

    	"16" *or* "61":  Unicode character set / UTF-16 encoding (big-endian or little-endian, respectively)\
     In contrast to the other encodings, UTF-16  has no separate entry in the Character encoding  menu as its internal handling is UTF-8 and  cannot be switched while editing; these two  flag values only indicate that the file being  edited was found to be encoded and will be  saved in UTF-16.

  - •

    	"L1": Western  "Latin-1" character set / ISO 8859-1

  - •

    	"WL":  Windows Latin character set / "codepage" 1252  (superset of Latin-1)

  - •

    	"L9": Western  "Latin-9" character set (with Euro sign) / ISO 8859-15

  - •

    	"Cy":  Cyrillic character set / KOI8-RU encoding (Russian, Ukrainian, Bjelorussian)

  *sub-menu more Cyrillic:*

  - •

    	"Ru":  Cyrillic / Russian KOI8-R encoding; used if locale environment indicates this as  terminal encoding, not in menu, use  "Cy" instead  which combines KOI8-R and KOI8-U

  - •

    	"Uk":  Cyrillic / Ukrainian KOI8-U encoding; used if locale environment indicates this as  terminal encoding, not in menu, use  "Cy" instead  which combines KOI8-R and KOI8-U

  - •

    	"I5":  Cyrillic / ISO 8859-5 encoding

  - •

    	"WC":  Cyrillic / Windows Cyrillic encoding

  - •

    	"Tj":  Cyrillic / Tadjikistan encoding

  - •

    	"Kz":  Cyrillic / Kazachstan encoding

  - •

    	"GP":  Georgian character set (not Cyrillic) /  Georgian-PS encoding

  *sub-menu Greek/Oriental:*

  - •

    	"I7":  Greek / ISO 8859-7 encoding

  - •

    	"I6":  Arabic / ISO 8859-6 encoding

  - •

    	"Ar":  Arabic / MacArabic encoding (superset of ISO 8859-6)

  - •

    	"I8":  Hebrew / ISO 8859-8 encoding

  - •

    	"He":  Hebrew / Windows codepage 1255 (superset of ISO 8859-8)

  *sub-menu more Latin:*

  - •

    	"MR":  Mac-Roman character encoding

  - •

    	"PC":  PC DOS character encoding ("codepage 437")

  - •

    	"PL":  PC Latin character encoding ("codepage 850")

  - •

    	"LN" where N is 2..8 or "0": Latin-N or Latin-10 encodings / ISO 8859-2/3/4/9/10/13/14/16

  *CJK encodings:*

  - •

    	"B5":  Traditional Chinese character set /  Big5 encoding with HKSCS extensions

  - •

    	"GB":  Simplified Chinese character set /  GB18030 encoding, includes GBK encoding,  includes GB 2312 / EUC-CN encoding

  - •

    	"CN":  Traditional Chinese character set /  CNS / EUC-TW encoding (including 4-byte code points)

  - •

    	"JP":  Japanese character set / JIS X 0208 / 0212 / 0213 /  EUC-JP encoding (including 3-byte code points)

  - •

    	"sJ":  Japanese character set / Shift-JIS encoding  (including single-byte mappings to Halfwidth Forms)

  - •

    	"KR":  Korean Unified Hangul character set / UHC encoding,  includes KS C 5601 / KS X 1001 / EUC-KR encoding

  - •

    	"Jh":  Korean Johab character set and encoding

  *Further Asian encodings:*

  - •

    	"VI":  Vietnamese character set / VISCII encoding

  - •

    	"TV":  Vietnamese character set / TCVN encoding

  - •

    	"TI":  Thai character set / TIS-620 encoding

- •

  Combining display (available only if the current text encoding  contains combining characters)

  - •

    	"ç": combined display mode

  - •

    	"\`": separated display mode: combining characters are separated from their  base character and displayed with coloured background

- •

  HOP key active

  - •

    	"H": HOP applies to next command

  - •

    	"h": HOP not active

- •

  Edit mode vs. View only mode

  - •

    	"E": text is being edited

  - •

    	"V": text is being viewed (modification inhibited)

  - •

    	*Note*: this is not related to a file being  read-only; if you "edit" and modify the text  of a read-only file, you will have to save  to a different file name (or discard)

- •

  Paste buffer / append mode

  - •

    	"=": cut/copy replaces (overwrites) paste buffer

  - •

    	"+": cut/copy appends to paste buffer

  - •

    	"=": like "=", and indicates Unicode paste buffer mode

  - •

    	"+": like "+", and indicates Unicode paste buffer mode

- •

  Auto-indent mode

  - •

    	"»": auto-indentation enabled: entering a newline  indents the following line like the current one

  - •

    	"¦": auto-indentation disabled

- •

  Automatic paragraph justification levels

  - •

    	"j": justification only on request (ESC j command)

  - •

    	"j": justification is performed whenever  text is entered beyond the right margin

  - •

    	"J": justification is performed whenever  text is inserted and the line exceeds the  right margin (slightly buggy)

- •

  Paragraph termination definition effective for justification

  - •

    	" ": non-blank line end terminates  paragraph (blank space at line end continues paragraph)

  - •

    	"«": empty line terminates paragraph

### Scrollbar

By default, mined displays a scrollbar at the right side. It  may be used for position indication within the text and for  relative or absolute positioning with the three mouse buttons.\
 In a UTF-8 terminal, mined uses Unicode character cell  vertical eighths characters U+2581..U+2587 for a fine-grained  scrollbar display. If your Unicode font doesn't include those  block characters, you may switch to the cell-grained scrollbar  with the -o1 option.

### Text position marker stack

On commands that jump away from the current position (HOP Mark,  File Begin/End, Search, Search identifier definition, Search  current character, Goto Line/%, Goto Next/Previous File),  the current position is remembered in a position stack.  The command ESC Enter goes backward, HOP ESC Enter forward  in this "stack", even if this means switching the file  being edited.

### Structured editing support

### HTML support: syntax highlighting and tag entry/matching

*HTML tag entry*: With the ESC H commands, opening and closing HTML tags can be entered or (with HOP) a  marked area can be enclosed into HTML tags.\
 *Syntax highlighting*: HTML tags are displayed in  light blue colour to set them back from the actual text  contents. Other highlighting modes apply to HTML comments and JSP code. This option is activated if the file name suffix is one of .html, .htm, .xhtml, .shtml, .sgml, .xml, .xul, .jsp,   .asp, .wsdl, .dtd, .xsl, .xslt; it can be toggled from the Options menu.\
 *HTML tag matching*: With the ESC ( or ESC ) command,  mined searches for the opening / closing HTML tag  corresponding to the current one.\
 *Note*: While you edit within a line and change its HTML  ending status (by entering or deleting '\<' or '\>'), the  display status of subsequent lines is not changed. (You may  refresh the display with ESC ".")\
 *Configuration hint*: The colour used for displaying HTML  tags can be configured with the environment variable MINEDHTML  using an ANSI sequence, e.g. MINEDHTML=34 (the default).

### Search structure match

With the ESC ( or ESC ) commands, mined searches for a matching  end of various structures, like opening/closing HTML/XML tags  (see above), matching parentheses or brackets, matching  comments (/\* \*/), matching conditional macros (#if...),  mail messages (in a mailbox file), MIME attachments. See the ESC ( command in the command  reference for details.

### Structure input

A structure template with opening and closing ends can be  inserted with the structured input feature. HOP followed by  one of { , ( , \[ , \< enters a corresponding bracket pair,  HOP / enters a Javadoc comment frame. HOP - enters an  underlining line matching the previous line.

Visual structure input is supported by  Auto indentation

### Password hiding

With the option -P, mined hides  one word (separated by white space) behind the string  "assword" in a line (to accommodate for "password" or  "Password") and displays reverse "\*" instead. Password hiding can be disabled with +P.\
 By default (without any P option),  password hiding is activated when editing a file whose  file name starts with "." (Unix "hidden" file convention).

### Long line splitting

Mined has an internal line length limit (\> ca. 1024 characters). When opening a file, longer lines are split. This is handled  transparently as virtual "none" line ends are used and indicated. When saving the file, lines will be joined again.

### Visible indication of line contents and display

Various options are available to indicate line control characters  (Tab and line-feed) as well as shifted line display (of lines  longer than the screen width).  (So you can see how many dummy blank spaces there are before the  line ends or how many superfluous blank spaces precede a Tab  character.)\
\
 	Environment variables can be used to modify these indications. See  Display of contents indications and scrollbar  for details.\
\
 	Default indications and according configuration variables:

- «

  LF (Unix-type line end)\
   customise indication with MINEDRET or MINEDUTFRET  (may contain up to 3 characters to configure different  appearance behind the line end)

- «

  CRLF (MSDOS-type two-character line end)\
   on black and white terminals, µ is used instead\
   customise indication with MINEDDOSRET or MINEDUTFDOSRET

- «

  CR (Mac-type line end)\
   on black and white terminals, @ is used instead\
   customise indication with MINEDMACRET or MINEDUTFMACRET\
   transparently handled and displayed with  +R command line option

- º

  NUL character (pseudo line end)

- ¬

  "none" line end (virtual line end as used to split  input lines too long for internal handling; will be  joined into a single line when saving the file)

- ·

  no-break space (Unicode character U+00A0)

- «

  Unicode line separator

- ¶

  Unicode paragraph separator\
   customise indication with MINEDPARA or MINEDUTFPARA

- ¶

  end of paragraph (if enabled by -p)\
   customise indication with MINEDPARA or MINEDUTFPARA

- »

  line extending the end of the screen line\
   (move cursor right to shift line display)\
   customise indication with MINEDSHIFT or MINEDUTFSHIFT

- «

  line shifted out left of the screen line\
   (move cursor left to shift line display back)\
   customise indication with MINEDSHIFT or MINEDUTFSHIFT

- ·

  position spanned by Tab character\
   customise indication with MINEDTAB or MINEDUTFTAB  (may contain up to 3 characters to configure different  appearance within the Tab span)

*Configuration:* Display colour of the indications which  are by default red can be changed with the environment  variable MINEDDIM, display colour for Unicode line end  indications with MINEDUNIMARK. Their values should be the  numeric part of an ANSI terminal control sequence, e.g. 31 for  red, "33;44" for yellow text on blue background. →NEW→  MINEDDIM can also be set to an empty value to have mined apply  dim colour to the indications; the colour value is computed from  the current foreground and background colours (works in xterm).\
 For more details and recommended settings see the example  script file profile.mined in the  Mined runtime support library. Default values are compiled in and can be overridden by setting  the variables to empty values.

*Note:* With the -F option,  mined limits usage of special characters for line indication  and suppresses the interpretation of the MINEDUTF\* environment  variables.

### Function key help bars

For quick reference of functions attached to function keys,  modified function keys, and other modified keys (as used for  accent prefix functions), a number of help bars can be  displayed in the bottom line.\
 F1 followed by another F1, optionally modified by a combination  of Control/Shift/Alt, displays a help line with function  attachments to the respectively modified function keys; F1 followed  by Ctrl-1/Alt-1/Alt-Ctrl-1 or Control with a punctuation key  (e.g. Ctrl-,) displays a help line for the respective accent  prefix functions attached. See the F1 help bars command reference for details.

### Menu display

Menu borders are displayed using Unicode Box Drawing characters  in a UTF-8 terminal, using VT100-mode block graphics  characters if they are detected to be available, or using  ASCII graphics otherwise.\
 *Configuration hint:* The menu style option  -Q is available to configure your  style preference; see also  Terminal interworking problems for configuration hints  to deal terminal-related graphics display trouble. Alternatively, the option -f reduces  font assumptions and adjusts usage of special characters accordingly.\
 In addition to round or rectangular corners, also fancy  item selection display style can be selected  (-Q).\
 With a non-UTF-8 terminal, if your system's  termcap/terminfo database does not indicate the VT100 block  graphics capability for the terminal you use but you know (or  want to try if) your terminal has that capability, use of  graphical borders can be enforced with the  -Qv command line option.\
 *Configuration hint:* The colour of menu borders can be  →NEW→  changed with the environment variable MINEDBORDER. The marker of selected items in flag menus can be changed with  the environment variable MINEDMENUMARKER.

## Language support

Most of the information in this chapter is redundant. It  collects language-specific features described in the other  chapters in a more technical context, here assorted by  languages / scripts for more convenient quick reference.\
 An overview of typographic quotation marks support  is given at the end of this chapter.

### Western languages

### Character sets

In addition to Unicode, mined supports ISO Latin-1, Latin-9,  Mac-Roman, Windows (CP1252) and DOS (CP437, CP850) Western  character sets. To view and edit a file in one of these encodings, select it  from the Encoding menu (section "8 Bit" or sub-menu "more Latin"),  or use the respective command line parameter. See Character encoding flags for details.\
 *Terminal:* If your terminal runs any of these  encodings, mined can detect this by proper setting of  environment variables (LC\_\*, LANG or TERM). See Terminal environment for details.

### Character input support

For input of accented characters and ligatures, mined provides  an extensive set of accent prefix functions, as well as  mnemonic input. See Character input support  for more details.

### Language-specific mnemonic conversion support

The generic mnemonic transformation command ESC \_ (which  transforms a mnemonic transcription in the text into its  accented or ligature character) has a few national variants,  using keys available on the respective keyboards as commands:

- •

  **German:** ESC ö etc. transforms ae to ä, oe to ö

- •

  **French:** ESC é etc. transforms ae to æ, oe to oe ligature

- •

  **Scandinavian:** ESC å etc. transforms ae to æ, oe to ø

(See mnemonic character substitution  commands in the Command reference for details.)

### Other Latin-based languages

### Character sets

In addition to Unicode, mined supports ISO character sets  for Central European, South European, Turkish, Baltic, Nordic,  Celtic, Romanian. To view and edit a file in one of these encodings, select it  from the Encoding menu (sub-menu "more Latin"),  or use the respective command line parameter. See Character encoding flags for details.\
 *Terminal:* If your terminal runs any of these  encodings, make sure to indicate this properly with an  environment variable (LC\_\* / LANG). See Terminal environment for details.

### Character input support

For input of accented characters, mined provides an extensive  set of accent prefix functions, covering

- •

  Macron (Latvian, Lithuanian, Polynesian languages

- •

  Breve (Romanian, Turkish)

- •

  Dot above (Lithuanian, Polish)

- •

  Ogonek (Lithuanian, Polish)

- •

  Caron/Há&#269;ek (Croatian, Czech, Lithuanian, Latvian, Estonian, Slovenian, Slovak)

- •

  Stroke (Croatian, Maltese, Polish, Vietnamese)

- •

  and others

See Character input support  for more details.

### Language-specific case conversion

**Lithuanian:** Case conversion of accented i with retained i dot is handled  properly if a Lithuanian locale setting is detected  (LC\_ALL/LC\_CTYPE/LANG begins with "lt").

**Turkish and Azeri:** Case conversion of i/dotless i is handled properly if a  Turkish locale setting is detected (LC\_ALL/LC\_CTYPE/LANG begins  with "tr" or "az").

### Esperanto

### Character sets

In addition to Unicode, mined supports the Latin-3 character set,  plus the DOS codepage CP853 (especially as terminal encoding). To view and edit a file in Latin-3 encoding, select it from the  Encoding menu (submenu "more Latin"), or use the command line  parameter -E3. To tell mined it runs a CP853  DOS setting, use a LC\_CTYPE variable setting (.CP853) or  the option +E=CP853. See Character encoding flags for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

→NEW→  Mined supports a built-in input method for Esperanto,  using the "x-system", plus "Sm" for the Spesmilo sign. Select it from the Input method menu.

### Accented character input support

Instead of the input method, also the following accent prefix  functions can be used:

- Ctrl-F6

  - Ctrl-^

  circumflex

- Alt-Shift-F5

  - Ctrl-(

  breve

### Russian, Ukrainian, other Cyrillic-script languages

### Character sets

In addition to Unicode, mined supports ISO Cyrillic, Windows  Cyrillic, and KOI8-RU which is a convenient merge of KOI8-R  (Russian) and KOI8-U (Ukrainian) (which are also supported  separately but not included in the menu). To view and edit a file in one of these encodings, select it  from the Encoding menu ("Cyrillic" or sub-menu "more Cyrillic"),  or use the respective command line parameter. See Character encoding flags for details.\
 *Terminal:* If your terminal runs any of these  encodings, make sure to indicate this properly with an  environment variable (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined supports a built-in input method for Cyrillic. Select it from the Input method menu.

### Accented character input support

In combination with a Cyrillic input method or keyboard,  →NEW→  mined provides accent prefix support for Cyrillic accented  letters. Accent prefix functions for Latin letters are reused  for Cyrillic accents, see the following table:

- F5

  - Ctrl-:

  diaeresis

- Alt-Ctrl-F6

  - Ctrl\\-\\-

  descender / macron

- Alt-F5

  - Ctrl-/

  stroke

- Ctrl-&

  hook

- Ctrl\\-\\- Ctrl-&

  middle hook

- Alt-Shift-F5

  - Ctrl-(

  breve

- Ctrl-;

  tail / tick / upturn

- F6

  - Ctrl-'

  - Ctrl-´

  vertical stroke

- Shift-F6

  - Ctrl-\`

  grave

- Shift-F5

  - Ctrl-~

  titlo

- *acute acute*

  double acute

- *grave grave*

  double grave

See Character input support  for more details.

### Script highlighting

To distinguish some Cyrillic letters from Latin look-alikes,  Cyrillic is by default displayed with colour highlighting.

### Tadjik

### Character sets

In addition to Unicode, mined supports KOI8-T. To view and edit a file in this Tadjik encoding, select it  from the Encoding menu (sub-menu "more Cyrillic"),  or use the respective command line parameter  -E:Tj. See Character encoding flags for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined supports a built-in input method for Cyrillic. Select it from the Input method menu.

### Accented character input support

See above for Cyrillic accented input support.

### Script highlighting

Cyrillic is by default displayed with colour highlighting.

### Kazakh

### Character sets

In addition to Unicode, mined supports PT154. To view and edit a file in this Kazakh encoding, select it  from the Encoding menu (sub-menu "more Cyrillic"),  or use the respective command line parameter  -E:Kz. See Character encoding flags for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined supports a built-in input method for Kazakh. Select it from the Input method menu.

### Accented character input support

See above for Cyrillic accented input support.

### Script highlighting

Cyrillic is by default displayed with colour highlighting.

### Georgian

### Character sets

In addition to Unicode, mined supports Georgian-PS. To view and edit a file in this encoding, select it from the  Encoding menu (sub-menu "more Cyrillic", tell me if that's not  suitable), or use the respective command line parameter  -E:GP. See Character encoding flags for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Greek

### Character sets

In addition to Unicode, mined supports ISO Greek. To view and edit a file in this encoding, select it from the  Encoding menu (sub-menu "Greek/Oriental"), or use the respective  command line parameter -E:I7. See Character encoding flags for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined supports a built-in input method for Greek. Select it from the Input method menu.

### Accented character input support

In combination with a Greek input method or keyboard,  →NEW→  mined provides accent prefix support for both monotonic Greek  and polytonic Greek.\
 **Monotonic Greek** uses only one accent, the tonos which  looks like acute and can be entered with the F6 or Ctrl-'  prefix function.\
 **Polytonic Greek** uses - among many others -  the oxia accent which is nowadays considered identical and looks  like the monotonic tonos. However, for historic reasons, there  are two sets of Greek accented letters with this accent in  Unicode, one with tonos and one with oxia. While this may be  considered a design flaw of Unicode, in fact both kinds of  characters exist and mined provides support for both accents. The choice of usage is up to the user. Note, e.g. that

- F6 \< alpha \>

  enters the Greek letter alpha with tonos

- Ctrl-F6 \< alpha \>

  enters the Greek letter alpha with oxia

Likewise, with mnemonic input

- ^V ' \< alpha \> *(using the apostrophe key)*

  enters the Greek letter alpha with tonos

- ^V ´ \< alpha \> *(using the acute accent key)*

  In these examples, \< alpha \> indicates the Greek letter  alpha, which may e.g. be entered by selecting the Greek input  method and typing the a key.

Accent prefix functions for Latin letters are reused for Greek  accents, see the following table:

- F5

  - Ctrl-:

  - Ctrl-"

  dialytika

- Shift-F5

  - Ctrl-~

  perispomeni

- Ctrl-F5

  - Ctrl-,

  iota (ypogegrammeni)

- Ctrl-Shift-F5

  - Ctrl-;

  prosgegrammeni

- Alt-Shift-F5

  - Ctrl-(

  vrachy

- F6

  - Ctrl-'

  (Ctrl-apostrophe) tonos

- Ctrl-F6

  - Ctrl-´

  (Ctrl-acute)

- Ctrl-^

  oxia

- Shift-F6

  - Ctrl-\`

  (Ctrl-grave) varia

- Alt-F6

  - Ctrl-\<

  psili

- Alt-Shift-F6

  - Ctrl-.

  dasia

- Ctrl-Shift-F6

  macron

- Alt-6

  psili and oxia

- Ctrl-Alt-6

  dasia and oxia

- Alt-7

  psili and varia

- Ctrl-Alt-7

  dasia and varia

- Alt-8

  psili and perispomeni

- Ctrl-Alt-8

  dasia and perispomeni

For polytonic Greek, 2 or 3 accents can be combined by  applying the respective accent prefix functions in sequence. For convenience, the most frequent combinations of 2 accents  are also available as dedicated accent prefix keys as listed  above. Also, modified Ctrl-/Alt-/Alt-Ctrl- digit keys are used for  polytonic Greek accent prefix functions. See Character input support  for more details.

### Script highlighting

To distinguish some Greek letters from Latin look-alikes,  Greek is by default displayed with colour highlighting.

### Language-specific case conversion

Case conversion of final sigma is handled properly.

### Amharic

### Input method

Mined supports two built-in input methods for Amharic,  one is called "Ethiopic" (source: yudit), the other is called  "Amharic" and was generated from Unicode character names  (preferable according to user feedback). Select your preferred input method from the Input method menu.

### Arabic

### Character sets

In addition to Unicode, mined supports ISO Arabic and  MacArabic. To view and edit a file in one of these encodings, select it  from the Encoding menu (sub-menu "Greek/Oriental"), or use the  respective command line parameter -E:I6  or -EA. See Character encoding flags for details.\
 *Terminal:* If your terminal runs ISO Arabic, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined supports a built-in input method for Arabic. Select it from the Input method menu.

### Accented character input support

Not yet implemented. Tell me if you have a proposal or preference  for assignment of accent prefix functions to the keyboard.

### Bidi support

Mined has implicit primitive support for visual right-to-left  input which is however not the preferred storage method as  complete right-to-left text should be stored in logical order.\
 Mined auto-detects and cooperates with a bidi terminal (mlterm)  in which case visual right-to-left input is disabled.\
 A full context-aware bidi display and editing technique would  still have to be integrated into mined. Tell me if you are  interested.

### Hebrew

### Character sets

In addition to Unicode, mined supports ISO Hebrew and  Windows Hebrew (CP1255). To view and edit a file in one of these encodings, select it  from the Encoding menu (sub-menu "Greek/Oriental"), or use the  respective command line parameter -E:I8  or -EE. See Character encoding flags for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined supports a built-in input method for Hebrew. Select it from the Input method menu.

### Accented character input support

Not yet implemented. Tell me if you have a proposal or preference  for assignment of accent prefix functions to the keyboard.

### Bidi support

Mined has implicit primitive support for visual right-to-left  input which is however not the preferred storage method as  complete right-to-left text should be stored in logical order.\
 Mined auto-detects and cooperates with a bidi terminal (mlterm)  in which case visual right-to-left input is disabled.\
 A full context-aware bidi display and editing technique would  still have to be integrated into mined. Tell me if you are  interested.

### Smart replacement

As a special case of smart dash input replacement (enabled  together with smart quotes), mined inserts Hebrew Maqaf as  a dash in the context of Hebrew letters.

### Chinese

### Character sets

In addition to Unicode, mined supports Big5 (with HKSCS extension),  GB18030 (including EUC-CN and GBK), and CNS (EUC-TW)  multi-byte character sets. To view and edit a file in one of these encodings, select it  from the Encoding menu (section "Chinese"), or use the  respective command line parameter -EB  or -EG or -EC. See Character encoding flags for details.\
 *Auto-detection:* Big5 and GB18030 text encoding are  also auto-detected when opening a file (with a certain  success rate). Set the environment variable MINEDDETECT="BG"  to constrain auto-detection to Big5 and GB18030 encodings. See Mined configuration for details.\
 *Terminal:* Mined supports native CJK terminals;  make sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal encodings support  for details on detection and handling of CJK terminal features.

### Input method

Mined provides the following built-in input methods for Chinese: Pinyin, Cangjie, WuBi, 4Corner, Boshiamy, and special support  for a Radical/Stroke lookup input method. Select the input method of your preference from the Input method menu.

### Han character information display

Mined provides special support for display of Han character  information according to the Unihan database. It comprises  semantic information and Mandarin, Cantonese, Hanyu Pinlu,  →NEW→  XHC Hanyu pinyin, and Tang dynasty pronunciation.

### Accented character input support

For Latin-based Pinyin transcription of Chinese, the usual  accent prefix functionality is available.

### Japanese

### Character sets

In addition to Unicode, mined supports JIS character set  in EUC-JP or Shift-JIS multi-byte encoding. To view and edit a file in one of these encodings, select it  from the Encoding menu (section "Japanese"), or use the  respective command line parameter -EJ  or -ES. See Character encoding flags for details.\
 *Auto-detection:* EUC-JP and Shift-JIS text encoding are  also auto-detected when opening a file (with a certain  success rate). Set the environment variable MINEDDETECT="JS"  to constrain auto-detection to EUC-JP and Shift-JIS encodings. See Mined configuration for details.\
 *Terminal:* Mined supports native CJK terminals;  make sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal encodings support  for details on detection and handling of CJK terminal features.

### Input method

Mined provides the following built-in input methods for Japanese: Hiragana, Katakana, TUT roma, and special support for a  Radical/Stroke lookup input method. Select the input method of your preference from the Input method menu.\
 Mined does not implement, however, advanced Japanese input  methods that provide semantics-based Hanja input; for these, you  will have to set up or use an external input method with your  operating environment, which is then handled by the terminal which  delivers ready-composed characters transparently to the application.

### Han character information display

Mined provides special support for display of Han character  information according to the Unihan database. It comprises  semantic information and Japanese and Sino-Japanese pronunciation.

### Accented character input support

For Latin-based Romaji transcription of Japanese, the usual  accent prefix functionality is available.

### Korean

### Character sets

In addition to Unicode, mined supports UHC (including EUC-KR)  and Johab multi-byte character sets. To view and edit a file in one of these encodings, select it  from the Encoding menu (section "Korean"), or use the  respective command line parameter -EK  or -EH. See Character encoding flags for details.\
 *Auto-detection:* UHC text encoding is  also auto-detected when opening a file (with a certain  success rate). Set the environment variable MINEDDETECT="K"  to constrain auto-detection to UHC encoding. See Mined configuration for details.\
 *Terminal:* Mined supports native CJK terminals;  make sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal encodings support  for details on detection and handling of CJK terminal features.

### Input method

Mined provides the following built-in input methods for Korean: Hangul, Hanja, and special support for a Radical/Stroke lookup  input method. Select the input method of your preference from the Input method menu.

### Han character information display

Mined provides special support for display of Han character  information according to the Unihan database. It comprises  semantic information and Hangul and Korean pronunciation.

### Vietnamese

### Character sets

In addition to Unicode, mined supports VISCII and TCVN character sets. To view and edit a file in one of these encodings, select it  from the Encoding menu (section "Vietnamese"), or use the  respective command line parameter -EV  or -EN. See Character encoding flags for details.\
 *Auto-detection:* VISCII text encoding is  also auto-detected when opening a file (with a certain  success rate). Set the environment variable MINEDDETECT="V"  to constrain auto-detection to VISCII encoding. See Mined configuration for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined provides the following built-in input methods for Vietnamese: VNI and VIQR. Select the input method of your preference from the Input method menu.\
 It may be more convenient, however, to use the extensive  accented character input support provided by mined together with  a normal Latin-based keyboard (so without a keyboard-mapping input  method), see Character input support for Vietnamese below.

### Character input support

Mined provides input support for multiple accented characters  as used in Vietnamese, as well as convenient accent prefix  functions for combinations of two Vietnamese accents. Modified Ctrl-/Alt-/Alt-Ctrl- digit keys are used for  Vietnamese accent prefix functions. Alternatively, mnemonic character input can be used. See Accented and mnemonic input support  for details, and see below for some introducing comments.

An accent prefix can either be applied to the plain Latin base  letter, or to a precomposed Vietnamese letter which already has  one of the accents. These are:

- U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX

  - U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX

  - U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX

  - U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX

  - U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX

  - U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX

  - U+0102 LATIN CAPITAL LETTER A WITH BREVE

  - U+0103 LATIN SMALL LETTER A WITH BREVE

  - U+01A0 LATIN CAPITAL LETTER O WITH HORN

  - U+01A1 LATIN SMALL LETTER O WITH HORN

  - U+01AF LATIN CAPITAL LETTER U WITH HORN

  - U+01B0 LATIN SMALL LETTER U WITH HORN

  *Examples:* Suppose your keyboard is mapped to have  Vietnamese characters like A with circumflex available. Then:

- ^V Â ' (Ctrl-V A-circumflex apostrophe)

  enters the composite character U+1EA4 (A with circumflex and acute)

- ^V ~ Ô (Ctrl-V O-circumflex tilde)

  enters the composite character U+1ED6 (O with circumflex and tilde)

- Ctrl-6 A

  enters U+00C2 (A with circumflex)

- Alt-4 A

  enters U+1EAA (A with circumflex and tilde)

- Ctrl-Alt-3 A

  enters U+1EB2 (A with breve and hook above)

- Ctrl-Alt-3 O

  enters U+1EDE (O with horn and hook above)

*Note:* Since mined 2000.12, the usage of composite  base characters in mined character mnemonics or accent prefix  combinations as just described also works in non-UTF-8 text  encoding mode (e.g. in VISCII or TCVN encoding).

### Thai

### Character sets

In addition to Unicode, mined supports the TIS-620 character  set (with CP874 extensions). To view and edit a file in this encoding, select it from the  Encoding menu (section "Thai"), or use the respective command  line parameter -ET. See Character encoding flags for details.\
 *Terminal:* If your terminal runs this encoding, make  sure to indicate this properly with an environment variable  (LC\_\* / LANG). See Terminal environment for details.

### Input method

Mined provides a built-in Thai input method. Select the input method from the Input method menu.

### Accented character input support

Not yet implemented. Tell me if you have a proposal or preference  for assignment of accent prefix functions to the keyboard.

### Typographic quotation marks

The smart quotes features transforms straight quote marks  typed at the keyboard into typographic quote marks. Select the Smart Quotes style from the Smart Quotes menu.

- **English**

  Use English quote marks. In British English, single quotation  marks are used for outer level quotations and double quote marks  are used for inner level quotations. Simply use the respective  single or double quote key.

- **Spanish, Portuguese, Turkish**

  Use either English or French or Swiss quote marks.

- **Irish**

  Use English quote marks.

- **German, Danish, Slovak, Czech, Serbian**

  Use German or Danish quote marks.

- **Bulgarian, Icelandic, Lithuanian**

  Use German quote marks.

- **Romanian**

  Use German quote marks, or traditional Dutch¹ quote marks.

- **Croatian**

  Use Danish quote marks.

- **Polish**

  Use German or Danish quote marks, or traditional Dutch quote marks.

- **Hungarian**

  Use German or Danish¹ quote marks or traditional Dutch quote marks.

- **French**

  Use French quote marks or Swiss quote marks (depending on  which inner quotation style is preferred). Pad additional  no-break space within quotes (U+00A0, can be entered with  Ctrl-Shift-space if configured).

- **Russian**

  Use either German or French or Swiss quote marks.

- **Slovenian**

  Use either German or French or Swiss quote marks, or  Danish¹ quote marks.

- **Armenian**

  You may use French quote marks.

- **Italian**

  Use either French or Swiss quote marks, or English¹ quote marks.

- **Albanian**

  Use either French or Swiss quote marks.

- **Swiss**

  Use Swiss quote marks.

- **Norwegian**

  Use either Norwegian or Swiss quote marks, or English¹ quote marks.

- **Swedish, Finnish**

  Use either of the Swedish or Finnish quote marks.

- **Dutch**

  You may use traditional Dutch quote marks, or Swedish quote marks.

- **Afrikaans**

  You may use traditional Dutch quote marks.

- **Greek**

  Use either French, Swiss, or Greek quote marks, or  traditional Greek quote marks.

- **Hebrew**

  Use Hebrew Gershayim.

- **Chinese**

  Use either CJK corner brackets, English quote marks,  or (?) traditional Chinese book marks.

- **Japanese, Korean**

  Use CJK corner brackets or English quote marks.

*Note:* ¹ according to Language Specific Quoting and Quotation Marks

## Character handling support

This chapter describes mined features for character  manipulation and display of characters and character  properties. Unicode and CJK specific features are described  in the respective chapters. Character input support is  described separately in the subsequent chapter.

### Script highlighting

It may be desirable to distinguish characters in different  script by displaying their glyphs in different colours. (This especially allows to distinguish easier between  similar glyphs as they occur in Latin/Greek/Cyrillic scripts.)\
 Script highlighting is currently pre-configured for  Greek and Cyrillic. It uses the terminal's 256-colour mode  if available.\
 The scripts to highlight and the colour values to use  can be configured at compile-time. See Mined configuration below.

### Combining characters

When editing text in Unicode or any encoding that contains  combining characters, mined supports display and editing of  combining and combined characters.

(*Note:* Terminal support for combining characters is  auto-detected; additional command line options are available  in case this fails.)\
 If mined operates on a terminal that handles combining  characters, it offers two editing modes: combined or separated. They can be toggled by clicking the Combining display flag  in the Mode indication flags area  (right part of the top screen line),  or by the menu entry "Options - Combined display";  separated display mode can also be selected by the  command line option -c.

- *Combined display and editing mode* (Combining display flag ç)

  Combined characters are displayed as intended (i.e., combined).\

- •

  *Micro movement* into combined characters:

  - •

    The cursor can be moved into a combined character with  Ctrl-cursor-left and Ctrl-cursor-right,  or ^V cursor-left and ^V cursor-right.

  - •

    You can determine the exact position of the cursor if  permanent character info is switched on (by HOP ESC u or  with HOP "Toggle Char info" in the Options menu).

- •

  Partially editing combined characters:

  - •

    If the cursor is on a combined character, delete next character  (e.g. Del on small keypad) will delete the whole  combined character, with all combining accents.

  - •

    →NEW→  If the cursor is on a combined character, Ctrl-Del  will delete only the base character, leaving combining  accents which may then be combined with the previous  character.

  - •

    If the cursor is within a combined character, delete next  character will delete the current combining accent only.

  - •

    Ctrl-Backarrow or F5 Backarrow ("Delete single")  behind or within a combined character will only delete  the rightmost combining accent (preceding the cursor  position) while Backarrow would delete the whole  combined character.

  - •

    You can also position the cursor as described above and use  copy-and-paste operations.

  *Note:* Ctrl-cursor-left and Ctrl-cursor-right  only work if these keys are configured to emit  distinguished escape sequences with Control key held down. With xterm, this works by default. With rxvt, use the small keypad cursor keys, or enable Control  on the right keypad with the sample configuration  file Xdefaults.mined in the Mined runtime support library. With mlterm, enable this with the sample configuration  file mlterm\_key in the Mined runtime support library. Ctrl-Backarrow can also be configured to work with xterm  but doesn't appear to work with rxvt or mlterm,  use F5 Backarrow instead.

- *Separated display and editing mode* (Combining display flag \`)

  Combined characters are separated into base character and  combining character(s) for display and editing. Combining  characters are indicated with coloured background.\

  - •

    In separated display mode, all cursor and text modification  operations work on the combining parts as displayed.

- *Input support:* For input of Unicode combining characters,

  see Combining character input below.

- *Note:* Unicode combining characters (according to the

  most recent version of Unicode known to mined) that are not  handled as combining characters by the terminal (which might  implement an older version of Unicode)  are always displayed like in separated display mode.

- *Note:* Isolated combining characters, i.e. those

  appearing at a line beginning or after a TAB character, are  always displayed like in separated display mode.

### Character information display

The command ESC u displays character encoding information in the  bottom status line (conforming to ISO 14755); it displays the  character code in the selected encoding (UTF-8 byte sequence  in UTF-8 mode) and the ISO-10646 (Unicode) value of the  current character, as well as Unicode script range and  character category, width, and combining information. The Unicode value is displayed with 4 hexadecimal digits if  the character is in the Unicode BMP (Basic Multilingual Plane,  16 bit), with 6 digits if it is a Unicode character outside of  the BMP, and 8 digits if it is an ISO-10646 character outside  of the Unicode range. The information displayed also indicates all kinds of  encoding irregularities.\
 For the Unicode data version used for character properties  see the mined change log.

Permanent display of character information is toggled  with HOP ESC u or by selecting "Char info" in the Info menu  (or with HOP "Toggle Char info" in the Options menu).

→NEW→   In the Info menu, attributes that are shown with the character  information can be selected: Unicode script name, Unicode character name, Unicode character decomposition, list of input mnemonics.

→NEW→   Character information display can be selected with the  +?c command line parameter (see  parameter description for further options). To preselect continuous character information display, append  +?c to the environment variable MINED.

### Han character information display

CJK-specific character information (semantic and pronuciation  hints) is described below in section  Han character information display.

### Character conversion features

### Case conversion

The case conversion functions (ESC C, HOP ESC C, F11, HOP F11,  Shift-F3) cover the full Unicode range. They also handle special cases like Greek final sigma,  optionally Turkish "i", case mapping to multiple characters,  and Lithuanian special conditions. Japanese characters are toggled between Hiragana and Katakana  by the same functions.\
 Shift-F3 cycles casing of a word between all small, title case  (beginning capital), and all capitals. It handles title casing,  using Unicode title case characters for the first character  when appropriate. For Japanese script, it toggles the word between Hiragana and  Katakana.\
 The case mapping is based on the most recent Unicode  version compiled into mined (for the actual version see the  mined change log and the Options menu About command). It is applicable in all text encodings.

### Numeric conversion

Commands are available to insert characters corresponding to  a hexadecimal character code or hexadecimal/octal/decimal  Unicode value contained in the text, to insert a  respective value corresponding to the current character,  →NEW→  or  (Alt-x) to toggle the preceding character and its hexadecimal code. For details, see the section  Code conversion in the Command reference.

### Numeric entity (HTML/URL) conversion

→NEW→  HTML numeric character entities (e.g. &x40; for @) or  URL escape notation (e.g. %20 for space) can be converted into  unescaped characters. Use one of the  Mnemonic character substitution commands  (ESC \_ or national variants) described below.

### Mnemonic conversion

A character mnemonic at the cursor position can be replaced with  its associated character. Use one of the  Mnemonic character substitution commands  (ESC \_ or national variants) described below.

### Encoding conversion support

A special feature offers interactive conversion to or from  Unicode character encoding, see  Encoding conversion support in  chapter Unicode support below.

### Unicode Copy/Paste buffer

The Copy/Paste buffer can be operated in Unicode mode in  which case it converts between text edited in different  character encodings. See Unicode Copy/Paste buffer conversion  below.

### Smart quotes

Straight (double or single) quote characters «"» or «'»  can be replaced automatically with an opening or closing  typographic quotation mark, depending on the text context. Select the quotation marks style to be applied from the  Smart Quotes selection menu (open with ESC Q or Alt-Q or  right-click on the smart quotes indication in the flags area  in the top screen line), or middle-click on the smart quotes  flag to toggle between the current and the previous smart  quotes style selected with the menu.\
 When a file is loaded, mined tries to determine the applicable  quotation marks style in two ways: If mined edited the file  before and noted the last cursor position (in the file @mined.mar,  which can be created using the HOP F2 command, or the File menu  "Save Position" command), this information also includes the last  selected smart quotes mode for the file. If that information is not available, mined auto-detects  existing quotation marks in the file and adjusts its smart  quotes mode accordingly.\
 The smart quotes left/right selection algorithm considers the  text context to automatically support smart quotes also in CJK text.\
 A typographic apostrophe can be inserted with HOP ' (^G ').\
 In smart quotes mode, straight quotes can be inserted with  mnemonic compose pairs (^V ^ " or ^V ^ ' , or ^V "# or ^V '#  respectively) or  →NEW→   with Alt-' or Alt-" (works in xterm 214/216 or later (with  modifyOtherKeys feature)).\
 Smart quotes are applicable in all text encodings provided  the desired quote marks are contained in the selected encoding.\
 Smart quotes style can also be preselected with the environment  variable MINEDQUOTES which should  then contain the opening/closing quote pair or just the  opening quote mark (UTF-8 encoded, double or single quotes);  this overrides both auto-detection and the preference saved  with the cursor position.

### Smart text replacements: smart dashes and arrows

If smart quotes are active, some other smart input text  replacements are applied to sequently entered characters  (unless during a repeat command entering multiple characters):

- \\-\\-

  *if preceded by a Space character:* en dash (U+2013)\
   *otherwise:* em dash (U+2014)

- \-

  *if an adjacent character is in the Hebrew*  *script range:* Hebrew hyphen mark Maqaf (U+05BE)

- \<-

  leftwards arrow (U+2190)

- \-\>

  rightwards arrow (U+2192)

- \<\>

  left right arrow (U+2194)

## Character input support

Some character input support features support international  scripts (especially with Keyboard Mapping and  Input Methods), others mainly address composite characters. For the latter, it is useful to explain a few notions:

- *Combining character:*

  A character (usually in Unicode) that is defined to combine  with the previous character into a combined character, to be  displayed as a single glyph (visual unit).

- *Combined character:*

  The glyph combination of a Unicode character (base character)  with one or more Unicode combining characters.

- *Composed character (or composite character):*

  A character that has one or more accents composed  into it, or is otherwise composed of components, like the ae  ligature, to be displayed as a single glyph. It can be a  single Unicode character or a Unicode combined character  consisting of a Unicode base character and one or two Unicode  combining characters.

- *Accented character (or diacritic character):*

  A special case of a composite character where a letter is  composed with one or more accents.

- *Compose key:*

  A number of system and keyboard vendors have equipped  their keyboards with a "Compose" or "Combine" key. This key -  when configured and interpreted properly by the operating  environment - produces a composed character which is then  provided as input to the application.

### Accented and mnemonic input support

Function keys or character mnemonics can be used to  enter accented or other composite characters. (This is also known as digraph function with some editors.)\
 These character composition functions also work on the prompt line.\
 (Any composite character configured on your keyboard can of  course also be entered directly or using the Compose/Combine  key of your keyboard.)

- →NEW→

  Note that mnemonic input and accent prefix keys can be  combined in flexible ways, e.g.

- ^V ' Ctrl-F6 e

  or

- F6 ^V e ^

  which both enter U+1EBF (e with circumflex and acute)

- →NEW→

  Mnemonic input can be applied recursively to compose a character  for further composition, e.g.

- ^V ' ^V a e

  enters U+01FD (æ with acute)

- →NEW→

  Accent prefix keys can use an already precomposed base  character for further composition; if this does not match an  explicitly known mnemonic, the base character is decomposed  first to find a match, e.g.

- F6 ü

  or

- F5 ú

  which both enter U+01D8 (u with diaeresis and acute)

- →NEW→

  Up to three accent prefix keys can be combined by entering  them in sequence in order to compose characters with multiple  accents, e.g.

- F5 F6 u

  enters U+01D8 (u with diaeresis and acute)

- Ctrl-2 Ctrl-7 a

  enters U+1EB1 (a with grave and breve)

- Ctrl\\-\\- Ctrl-: u

  enters U+1E7B (u with macron and diaeresis)

- Ctrl-, Ctrl-( e

  enters U+1E1D (e with cedilla and breve)

- Alt-7 Ctrl-, \< alpha \>

  - Alt-F6 Shift-F6 Ctrl-, \< alpha \>

  - Ctrl-\< Ctrl-\` Ctrl-, \< alpha \>

  all enter U+1F82 (alpha with psili and varia and ypogegrammeni) where \< alpha \> indicates the Greek letter  alpha, which may e.g. be entered by selecting the  Greek input method and typing the "a" key

### Accent prefix keys

- *General notes on using keys with Control, Shift, Alt modifiers:*

  Especially for accented character input, mined makes use of  key combinations modified with Control, Shift, Alt, or a  combination of them. Some of these key combinations may be limited by local  environment, especially the window system, or may need  extra configuration to be enabled.

  - •

    *Hint on input of Alt/Ctrl-modified function keys:* These are often intercepted by window systems for special  functions.

    - •

      **Alt:** →NEW→  Alternatively to using the Alt key,  the ESC key can be used as a prefix to a function key to achieve  the same modified function, e.g. ESC F6 instead of Alt-F6. Note, however, that there is an ESCAPE delay (default 450 ms)  during which the subsequent function key should be pressed.

    - •

      **Control:** →NEW→  Alternatively to using the Control key,  Ctrl-V can be used as a prefix to a function key to achieve  the same modified function, e.g. Ctrl-V F6 instead of Ctrl-F6.

    Specific advice:

  - Window system

    suppresses\
     remedy

  - KDE

    Ctrl-Fn, Ctrl-Shift-Fn, Alt-Fn\
     press the "Window key" additionally at the same time,  e.g. Window-Alt-F6 *or* use ESC or Ctrl-V prefixes,  e.g. ESC F6 *(be fast!)*, Ctrl-V Shift-F5

  - gnome-wm

    Alt-F5\
     Window-Alt-F5 *or* ESC F5 *(be fast!)*

  - fvwm2

    Alt-Fn\
     ESC Fn *(be fast!)*

  - Exceed

    Alt-Fn, Alt-Shift-Fn\
     ESC Fn, ESC Shift-Fn *(be fast!)*\
     *or:* configure ("Tools - Configuration... - Keyboard Input") "Windows Modifier Behavior - Alt Key:" and select "To X"

  - •

    Modified digit keys (e.g. Alt-2) as well as  →NEW→  Ctrl-modified punctuation keys (e.g. Ctrl-;)  are used as extended and intuitive accent prefix keys. To enable them, either use a recent version of xterm (216) or  configure them with your terminal.\
     Configuration instructions for older versions of xterm and  for rxvt can be found in the sample file  Xdefaults.mined in the Mined  runtime support library.

  - •

    Note: In rxvt, Ctrl-modified and shifted punctuation keys  (if enabled by configuration following the hint above)  interfere with ISO 14755 input mode of rxvt; if the following  key is entered twice, that mode is aborted and the modified  punctuation key becomes effective as an accent prefix in mined.

  - •

    **Warning:** The Alt-F4 key combination should not  accidently be hit as many window managers use it to kill  the terminal window!

The following table lists the accent prefix keys:

- F5

  (*Sun:* R4/-) diaeresis (umlaut) / dialytika

- Shift-F5

  (*Sun:* R5/÷) tilde / perispomeni

- Ctrl-F5

  (*Sun:* R6/×) ring / cedilla / iota (ypogegrammeni)

- Alt-F5

  stroke

- Ctrl-Shift-F5

  ogonek / prosgegrammeni

- Alt-Shift-F5

  breve / vrachy

- F6

  (*Sun:* R3) acute (accent d'aigu) / tonos

- Shift-F6

  (*Sun:* R1) grave / varia

- Ctrl-F6

  (*Sun:* R2) circumflex / oxia

- Alt-F6

  caron / psili

- Ctrl-Shift-F6

  macron / descender

- Alt-Shift-F6

  dot above / dasia

- Ctrl-1

  acute

- Ctrl-2

  grave

- Ctrl-3

  hook above

- Ctrl-4

  tilde

- Ctrl-5

  dot below

- Ctrl-6

  circumflex

- Ctrl-7

  breve

- Ctrl-8

  horn

- Ctrl-9

  stroke

- Ctrl-0

  ring / cedilla

- Alt-1

  circumflex and acute

- Alt-2

  circumflex and grave

- Alt-3

  circumflex and hook above

- Alt-4

  circumflex and tilde

- Alt-5

  circumflex and dot below

- Ctrl-Alt-1

  breve/horn and acute (*composes following A/a with breve and acute, or*  *following O/o or U/u with horn and acute*)

- Ctrl-Alt-2

  breve/horn and grave

- Ctrl-Alt-3

  breve/horn and hook above

- Ctrl-Alt-4

  breve/horn and tilde

- Ctrl-Alt-5

  breve/horn and dot below

- Alt-6

  psili and oxia

- Ctrl-Alt-6

  dasia and oxia

- Alt-7

  psili and varia

- Ctrl-Alt-7

  dasia and varia

- Alt-8

  psili and perispomeni

- Ctrl-Alt-8

  dasia and perispomeni

- Ctrl-'

  (Ctrl-apostrophe) acute (d'aigu) / tonos

- Ctrl-´

  (Ctrl-acute) acute (d'aigu) / oxia

- Ctrl-\`

  (Ctrl-grave) grave / varia

- Ctrl-^

  circumflex / oxia

- Ctrl-~

  tilde / perispomeni / titlo

- Ctrl-:

  diaeresis (umlaut) / dialytika

- Ctrl-"

  diaeresis (umlaut) / dialytika

- Ctrl-,

  cedilla / ring / iota (ypogegrammeni)

- Ctrl-/

  stroke

- Ctrl\\-\\-

  (Ctrl-minus) macron / descender

- Ctrl-\<

  caron / psili

- Ctrl-.

  dot above / dasia (*with i or j:* dotless)

- Ctrl-(

  breve / vrachy

- Ctrl-;

  ogonek / prosgegrammeni / tail / tick / upturn

- Ctrl-)

  inverted breve

- Ctrl-&

  hook

- Ctrl\\-\\- Ctrl-&

  middle hook

*Note:* If your keyboard assignment provides its own  accent prefix keys ("dead keys"), pressing the key twice usually  delivers the corresponding spacing character which can then be  used for the extended accent prefix functionality of mined;  e.g. hold Control, then press ´ (acute key) twice, to invoke  the acute/oxia prefix function of mined.

- *Note:* For combining **multiple accents**, in most

  cases their order does not matter. As an exception, to combine  dot above and macron, enter prefix keys in this order, as s macron and dot above will be interpreted as dot below.

- dot macron

  *e.g.* Ctrl-. Ctrl\\-\\- dot above and macron *(on A or O)*

- macron dot

  *e.g.* Ctrl\\-\\- Ctrl-. dot below

- *Note:* For the sake of accepting Ctrl\\-\\-

  intuitively both as an accent prefix for macron as well as an  accent modifier to place an accent **below** a letter, the  macron accent prefix combined with another accent prefix key  is also interpreted as applying that accent **below**. As a  workaround to ambiguous cases, it has to be applied twice with  diaeris for diaeresis below (U), and three times for line below.

- macron macron diaeresis

  *e.g.* Ctrl\\-\\- Ctrl\\-\\- Ctrl-: diaeresis below

- macron diaeresis

  *e.g.* Ctrl\\-\\- Ctrl-: macron and diaeresis

- diaeresis macron

  *e.g.* Ctrl-: Ctrl\\-\\- diaeresis and macron

- macron macron macron

  *e.g.* Ctrl\\-\\- Ctrl\\-\\- Ctrl\\-\\- line below

- *Note:* Some accent prefix keys, when applied twice in

  sequence, are mapped to a single accent as follows:

- acute acute

  *e.g.* F6 F6 double acute accent

- grave grave

  *e.g.* Shift-F6 Shift-F6 double grave accent

- macron macron

  *e.g.* Ctrl\\-\\- Ctrl\\-\\- bar/topbar

- cedilla cedilla

  *e.g.* Ctrl-, Ctrl-, psili/comma below

### Combining character input

- **Unicode combining characters** can be entered

  by applying accent prefix keys to the Tab key. They will be  visually combined with the previous character by rules of Unicode  (and by terminal implementation). Examples:

- Ctrl-, Tab

  combining cedilla

- F6 F6 Tab

  combining double acute accent

### Special character input shortcuts

- **Typographic quotation marks** can be entered

  by applying accent prefix keys to the space key as follows,  or using certain input mnemonics or shifted combinations (see below):

- (twice) grave space

  (double) left quotation mark

- (twice) acute space

  (double) right quotation mark

- acute space

  *e.g.* F6 space *or* Ctrl-' space *also serves for input of* typographic apostrophe (*or* HOP ')

- (twice) cedilla space

  (double) low-9 quotation mark

- (twice) dot above space

  (double) high-reversed-9 quotation mark

- ^V \< \< *or* ^V \> \>

  double angle quotation marks « »

- ^V \< space *or* ^V \> space

  single angle quotation marks

- Alt-'

  plain single quote mark (U+27)

- Alt-"

  plain double quote mark (U+22)

- Some characters are specifically mapped to special key

  combinations or specific applications of accent prefix keys  for convenience or for Windows compatibility:

- Ctrl-Shift-space

  no-break space (U+00A0)

- Ctrl-@ a/A

  å/Å

- Ctrl-& a/A

  æ/Æ

- Ctrl-& o/O

  oe/OE ligature

- Ctrl-& s

  ß

- Ctrl-?

  ¿

- Ctrl-!

  ¡

As with modified keys in general, these shortcuts may depend on  proper terminal configuration according to the sample files in  the Mined runtime support library.

### Character input mnemonics

The enter-control-code prefix (^V, or ^Q in emacs mode, or ^P  in WordStar mode) can be used for mnemonic character composition. This covers accented characters and other mnemonics. The available mnemonics include RFC1345 mnemonics (extended  to provide generic accent mnemonics for Unicode characters),  mnemonics known from HTML and TeX and useful supplementary  mnemonics. See Character Mnemos reference  on the mined web site for a listing.\
 With mined 2000.10, supplementary character mnemonics have been  revised and made consistent with generic RFC1345 mnemonics,  redundant mnemonics have been removed, and coverage of all Latin  characters (esp. with multiple accents) has been completed.

For accent compositions, *mnemonic patterns*  (generic accent mnemonics) are listed in the following table; the respective letter to place the accent(s) on is indicated  with an "x" below.

For Greek and Cyrillic accented characters, mnemonics combining  accents with Greek or Cyrillic base characters are generated  automatically from the UnicodeData.txt database.\
 Greek and Cyrillic accent prefix keys reuse those for  Latin accents and are listed in the sections on Greek and Cyrillic  script support (see Language support).

- generic mnemonic

  accent placed on the base character ("x")

- x: *or* "x

  diaeresis (umlaut)

- x' *or* ´x

  acute (accent d'aigu)

- x! *or* \`x

  grave

- x\> *or* ^x

  circumflex

- x? *or* ~x

  tilde

- x0 *or* °x

  ring above

- x,

  cedilla

- x-

  macron

- x(

  breve

- x.

  dot above / middle dot

- x\_ *or* \_x

  line below

- x/

  stroke

- x" *or* x''

  double acute

- x;

  ogonek

- x\<

  caron

- x2

  hook above

- x9

  horn

- x-\> *or* \>x

  circumflex below

- x-. *or* .x

  dot below

- x\\-\\-. *or* .x-

  dot below and macron

- x.-. *or* .x.

  dot below and dot above

- x7 *or* x.-

  dot above and macron

- x~- *or* x?-

  tilde and macron

- x;-

  ogonek and macron

- x:-

  diaeresis and macron

- x-:

  macron and diaeresis

- x-'

  macron and acute

- x-!

  macron and grave

- \-x *or* x\\-\\-

  topbar

- \\-\\-x *or* x\\-\\-

  bar

- ,x *or* x-,

  comma below / left hook

- x# *or* x!!

  double grave

- x)

  inverted breve

- x&

  hook

- %x

  retroflex hook

- x,,

  palatal hook

- x~~

  middle tilde

- x}

  curl

- x-? *or* ?x

  tilde below

- x\\-\\-: *or* :x

  diaeresis below

- x-0 *or* ox

  ring below

- x-( *or* (x

  breve below

- x(-. *or* .x(

  breve and dot below

- x\>-. *or* .x\>

  circumflex and dot below

- x9-. *or* .x9

  horn and dot below

- x'.

  acute and dot above

- x('

  breve and acute

- x(!

  breve and grave

- x(2

  breve and hook above

- x(?

  breve and tilde

- x\<.

  caron and dot above

- x,'

  cedilla and acute

- x,(

  cedilla and breve

- x\>'

  circumflex and acute

- x\>!

  circumflex and grave

- x\>2

  circumflex and hook above

- x\>?

  circumflex and tilde

- x:'

  diaeresis and acute

- x:\<

  diaeresis and caron

- x:!

  diaeresis and grave

- x9'

  horn and acute

- x9!

  horn and grave

- x92

  horn and hook above

- x9?

  horn and tilde

- x0'

  ring above and acute

- x/'

  stroke and acute

- x?'

  tilde and acute

- x?:

  tilde and diaeresis

See also the description of the  ^V function below for more  input options.\
 Two-letter mnemonics can also be entered in reverse order if  this is unambiguous. Detection of reverse order mnemomics (two letters or one letter  and multiple accents) as well as the generic accent mnemonics  " ^ \` ~ ¨ ¯ ´ ¸ ° (which are available for  convenience in addition to the less intuitive \> !  etc.) works with both short mnemonic entry (two-letter "^Vxy")  →NEW→  and full  mnemonic entry ("^V xy... ").

Mnemonic character substitution commands  (ESC \_ and national variants) replace characters at the cursor  position with the respective character described by them. The following substitute descriptions are detected:

- •

  Two-character mnemonic

- •

  HTML character mnemonic

- •

  HTML numeric character entity

- •

  URL escape notation (bytewise hexadecimal with % prefixes)

### Keyboard Mapping and Input Methods

Mined supports optional keyboard mapping which is especially  useful for Unicode or CJK editing. When a keyboard mapping is selected, input characters or  sequences are transformed to other characters or sequences,  typically of a certain Unicode script range.\
 Keyboard mappings for Greek, Cyrillic, Hebrew, Arabic, and  major CJK input methods are preconfigured (they have been  ordered in the Input Method menu according to the order of  their respective basic ranges in the Unicode character set, or  to the order of the letters of the usual abbreviation CJKV for  East Asian text processing - Chinese, Japanese, Korean,  Vietnamese). The Radical/Stroke input  method provides additional functionality as a special case.\
 Mined provides compile-time configuration of additional input  methods; for this aim, further mappings can be generated using the  mkkbmap script (from tables  in various formats as used by other editors or  →NEW→   supplied by the m17n multilingualization package) and then  compiled into mined. See Mined configuration below for details.

Keyboard mapping works as follows: You enter a key sequence  that is mapped to a character sequence in the selected  keyboard mapping table. The transformed character sequence is  used as input.\
 As some typical keyboard mappings contain ambigous key  sequences where one may be a prefix of another, a short delay  is applied in these cases to allow recognition of any such  sequence to be mapped. After a timeout, the shorter sequence  already matching will be used; the timeout can be cut short by  typing a Space key, the Space character itself will then be  discarded. (The timeout value is 900 ms by default and can be  configured with the environment variable MAPDELAY.)

### Pick lists

Some keyboard mappings, especially for CJK input methods,  contain multiple choice mappings. In these cases, a selection  menu is displayed that offers a "pick list" to select a  character from. A character can be picked with a mouse click,  or by navigation to the desired choice with the cursor keys  (down/up, right/left, page down/up) or the '\<'/'\>' keys , or  by just selecting the menu row first (cursor-up/down), then  typing a digit 1-9 or 0 to select the numbered character.\
 The Space key can be configured to either navigate to the  next choice, the next row, or to select the current choice;  see option -K.\
 If the pick list is too large to fit on the screen,  the menu will be scrollable or pageable (using cursor keys).

While navigating through the pick list, the line and the  selected item in the line are highlighted accordingly; if  the current item is a CJK character, also its character  information (description and optionally pronunciations as  configured with the Han info option of  the '?' information flag menu) is displayed on the status  line. If the item is a word comprising multiple CJK characters,  the information for only the first of them is shown. The  available information is derived from the Unihan database.

Keyboard mapping data are based on Unicode. So in CJK text  mode, the selection menu (the pick list) may contain symbols  that are not mapped to the active CJK text encoding. In a  UTF-8 terminal, these will still be displayed but cannot be  inserted. In a CJK terminal, some characters may not be  displayed; an empty entry is shown instead. (In a non-Unicode,  when editing text in a different encoding, there may even  be characters that cannot be displayed in the selection menu  but can be inserted.)

### Input method selection

An active and a standby input method (keyboard mapping) are  maintained. They can be toggled quickly for text input, also  on the prompt line.\
 The current mapping is indicated as the Input Method flag  by its two-letter script tag in the flags area, showing "\\-\\-" if no mapping is active.

The active mapping can be selected in the following ways:

- ESC k *or* Alt-k *or* Alt-F12 *or* left click on Input Method flag

  toggles between current (active) and previously  selected (standby) input method (keyboard mapping)\
   (Alt- toggle functions also work on prompt line)

- HOP ESC k (or HOP Alt-k)

  clears input method, i.e. resets keyboard mapping  to none (unmapped input)

- ESC I *or* Alt-I *or* ESC K *or* Alt-K *or* Ctrl-F12

  opens the Input Method (Keyboard Mapping) selection menu\
   (Alt-I or Alt-K or Ctrl-F12 also work on prompt line)

- right click on Input Method flag

  opens the Input Method selection menu

- HOP ESC K *or* HOP Alt-K

  cycles through available input methods / keyboard mappings

*Note:* For preselecting the active or standby input method  by environment configuration, see about usage of the  environment variable MINEDKEYMAP below.

*Note:* Keyboard mapping is implicitly suppressed temporarily  where it is not useful: during mnemonic character input, HTML  marker input, command letter entry, help selection, yes/no prompting.

## Character encoding support

A character encoding for interpretation and handling of text  is selected in one of the following ways:

- •

  One of the command line options -E...  with a number of options to specify the desired text encoding  (see the encoding options above).

- •

  From the Encoding Menu (one of the flag menus),  the encoding interpretation can be changed while editing;  to open it, click with the right mouse button on the encoding  indication in the flags area of the top line, or type Alt-E. See also Mode indication flags for an overview. To toggle between the current and the previously selected encoding,  click the Encoding flag with the left mouse button.

- •

  Auto-detection (by heuristic counting of valid character codes). *Note:* The encodings to be taken into account for  auto-detection can be configured with the MINEDDETECT  environment variable. Set it to the desired list of single-letter  encoding indications to disable auto-detection of other encodings. Recognised encoding indications are mentioned in the list of  auto-detected encodings below (they are the same as used with the  -E parameter). UTF-8 auto-detection cannot be disabled this way.

- •

  Locale indication in environment variables  (see Locale configuration), especially  the variable TEXTLANG which does not affect the locale-related  assumption of terminal encoding.

### Auto-detected character encodings

The following encodings are auto-detected unless  overridden with a -E command line  option (or -l or -u):

- \-

  UTF-8

- \-

  UTF-16 encoding (big or little endian) with or  →NEW→   without BOM (byte order marker)

- 8

  any 8 bit encoding; this is auto-detected in a  generic way; the actual 8 bit encoding assumed  corresponds to the terminal encoding if it is an 8 bit  terminal; otherwise, Latin-1 is assumed; using "8" in the environment variable MINEDDETECT  excludes all CJK encodings from auto-detection (but not UTF-8),  and adds all 8 bit encodings that are not included by default

- L

  Latin-1 (ISO 8859-1)

- W

  Windows Western ("ANSI", CP1252)

- P

  PC Latin-1 (CP850)

- M

  MacRoman

- \-

  CJK encoding (with unspecified mapping) is  pre-auto-detected in a generic way; usually the actual  CJK encoding is determined, too

- G

  GB18030

- B

  Big5

- J

  EUC-JP

- S

  Shift-JIS

- K

  UHC

- V

  VISCII

### CJK and mapped 8 bit encoding support

Mined supports major CJK encodings as well as mapped  8 bit encodings ("character sets"). Mined has built in support for a large number of 8 bit encodings  which appear to be in use or unique for a region. The Encoding  menu has been structured with sub-menus to provide a concise  menu selection feature.

### Combining characters

In all character encodings handled by mined that contain  combining characters, mined handles them and provides partial  editing and an optional separated display mode as described  above in section  Combining characters. (CJK encodings EUC-JP, Shift-JIS and GB18030, Vietnamese TCVN and  Thai TIS-620, ISO Arabic, Mac Arabic, ISO Hebrew, Windows Hebrew). Handling of combining text characters is properly coordinated  with the set of combining characters supported by the terminal.

For Japanese, the JIS characters that map to two Unicode  characters are supported.

### Character code related commands

The command ESC u displays character encoding information in the  bottom status line (conforming to ISO 14755); this includes  the character code, the mapped Unicode character value,  script and character category, and combining information. See Character information display for details.\
 With HOP ESC u, permanent display is toggled.

Other commands insert the code of the current character,  insert a character taking its character code or Unicode value  from the text,  →NEW→  or  toggle the preceding character and its hexadecimal code (Alt-x). For details, see Code conversion in the  Command reference.

### Terminal environment for CJK encoding support

Mined supports handling of CJK text encoding in any terminal  (see Terminal encoding support below). However, proper display of a wide range of CJK characters can  obviously only work in either a Unicode terminal (recommended)  or in a native CJK terminal that runs the same encoding as the  selected text encoding.

CJK terminals: For terminals that support native CJK encodings  (e.g. cxterm, kterm, hanterm), the terminal encoding assumed by  mined can be specified with a command line option or by proper  locale indication in one of the environment variables LC\_ALL,  LC\_CTYPE or LANG. For available encodings, see Mode indication flags. For usage of the +E options, see the  description of the Terminal  encoding options above. For usage of the locale environment variables, see  Locale configuration.

*Note:* In native CJK terminals, it is often troublesome  to find a working encoding configuration and font setup, and  the locale environment is not automatically set by the terminals. A collection of wrapper scripts is available  ( http://towo.net/mined/terminals.tar.gz) to help with this  setup problem and demonstrate the invocation of a number of  different CJK and 8 bit encoded terminal windows, along with  selection of suitable fonts and proper locale environment  setting.

*Note:* Native CJK terminals have a different  assumption of the range of character codes supported in an  encoding family, e.g. Big5 / Big5 with HKSCS, GB2312 / GBK /  GB18030, EUC-KR / UHC, EUC-JP without/with 3 byte codes. For compact handling, mined always assumes the largest superset  of these encoding families. It does, however, have some features  to prevent display garbage in most cases when a terminal supports  a smaller character set:

By default, mined does not display the following CJK  character codes in a native CJK terminal, i.e. it displays a  substitute indication for them (see CJK character display above):

- •

  Unknown characters: CJK characters that have no defined  mapping to a valid Unicode character. Use the +C option to override this  display suppression and enforce transparent display of unknown  characters in a CJK terminal.

- •

  Invalid characters: CJK characters that do not match the  encoding scheme (e.g. wrt. to specified byte ranges) of the  selected encoding. Use the +CC option to override this  display suppression and enforce transparent display of invalid  character codes in a CJK terminal.

- •

  Extended characters: CJK characters encoded with 3 or  4 bytes. Use the +CCC option to override this  display suppression and enforce transparent display of extended  character codes in a CJK terminal.

Regardless of all these features and options, it may not  always be possible to prevent display garbage, especially  if the font used by the terminal does not cover the needed  character range. To avoid these problems in general, it is recommended to use  a Unicode terminal for editing CJK encoded files.

See also Terminal interworking  problems for special hints about certain terminals.

## Unicode support

### Introduction: handling Unicode encodings

Mined interprets UTF-8 which is a multi-byte character  encoding of the ISO-10646 character set, part of which is also  known as Unicode. When reading a file, it detects UTF-8 encoding automatically  (unless overridden by explicitly selecting a text encoding with  a command line option -u or  -l or -E...). It can also edit UTF-16 encoded Unicode files (UTF-16 can  represent the complete 21 bit Unicode subset of ISO-10646). UTF-16 big or little endian with or without BOM (byte order  mark U+FEFF) is auto-detected or can be selected with a  command-line option (see  notes under Locale configuration below).\
 UTF-16 is maintained transparently, i.e. a UTF-16 encoded file  is written back in UTF-16, and if it was beginning with a BOM  this is maintained. No explicit UTF-16 entry exists, however, in the Encoding menu  since the text is internally handled in UTF-8. However, the  character encoding flag indicates UTF-16 file encoding with either  "16" (big endian) or  "61" (little endian).

### UTF-8 internal representation, transparent handling of other text

Mined handles UTF-8 representation internally and also edits  and keeps illegal UTF-8 sequences. This way, if you  happen to open a Latin-1 or CJK or any other encoded file  in UTF-8 mode, or switch encoding while editing, or edit a  file with mixed encoding, the text contents can still be  edited and you will not loose any file contents information.

### Character encoding indication

The upper-right flags area has a character encoding indication  which shows "U8" if UTF-8  text interpretation is selected. For Latin-1 text interpretation  "L1" is shown, for others see  Mode indication flags. You may click on the indication flag to toggle between the  current and the previous selected encoding.

### Character information display

The Character information display  command ESC u is described above; character information display  can also be preselected by environment configuration. In UTF-8 mode, information shown includes the UTF-8 encoding  byte sequence.

### Character input support

With ^V, mined's special character input support is invoked  (both while editing text and entering text on the prompt line,  e.g. as a search expression). With this feature, (in addition to plain control characters)  a composite character can be entered by its accent combination  or other mnemonic character description; a more-than-two letter character mnemonics would be embedded  in space characters after the ^V. In addition, numeric character codes or values can be entered  with leading ^V#, octal/decimal with ^V##/^V#=, Unicode with  optional u/U/+. (For examples, see description of the ^V function below.) With numeric character input, mined supports *successive*  *multiple character entry* according to ISO 14755; if the  numeric code is terminated by a Space key, another numeric  character can be entered subsequently; an Enter key  terminates numeric character input.

See also the generic section  Character input support above  for input support for accented characters and keyboard mapping.

### Encoding conversion support

Two functions support interactive character encoding conversion  (Latin-1 to UTF-8 or UTF-8  →NEW→  to current encoding)  to partially fix files with mixed encoding. In either text encoding mode, the search function looks for  characters encoded in UTF-8 (when not editing in UTF-8 mode)  or not (when editing in UTF-8 mode); the command is  HOP ESC ( or Alt-F11 . Then, convert the character with ESC \_ or its national variant  (see mnemonic character substitution  commands in the Command reference).\
 For repeated interactive conversion, both functions can be  combined into Alt-Shift-F11 (convert current character, then  search next).

### Unicode Copy/Paste buffer conversion

For the Copy/Paste buffer, Unicode mode can be selected which  maintains its contents always in Unicode, so that Copy/Paste  of text works between differently encoded files (or sections  of a file, if encoding is switched while editing) with automatic  character code conversion. This mode is only effective while editing with non-Unicode  encoded text interpretation.\
 Select this mode with the command line option  -Eu or in the Paste buffer menu  (righ-click on the Buffer mode flag "=" or  "+") and select "Unicode".\
 Unicode buffer mode is indicated by cyan background of the  Paste buffer flag (then "=" or  "+"), except in Unicode text mode.

### Smart quotes and dashes

If smart quotes mode is enabled (see the Quotes style menu under  the Quotes flag left to the Encoding flag and menu), quote mark  keys will enter typographic smart quotes instead. Smart dashes  also apply. See Smart quotes above for more details.

### Bidirectional terminal support

A bidirectional terminal (such as mlterm) will probably  also apply Arabic LAM/ALEF ligature joining. Mined auto-detects  this feature and enables bidi terminal handling automatically. Otherwise, bidi terminal handling can be configured with the  option +UU.\
 In this mode, when displaying a menu, underlying text  lines that contain right-to-left characters are cleared first  in order to prevent display confusion between the terminal's  bidi algorithm and the menu position.\
 Also, with bidi terminal handling enabled, mined assumes  that the terminal applies Arabic LAM/ALEF ligature joining  and properly accounts for this feature in display position  handling.\
 In separated display mode, the joining part of the ligature  is indicated similar to the handling of combining characters.

### Input support for right-to-left scripts ("poor man's bidi" mode)

This support feature for input of right-to-left text pieces  is enabled by default unless the terminal is detected to be  in bidi mode itself (e.g. mlterm). "Poor man's bidi" mode is intended for quick entry of  right-to-left text without having a right-to-left terminal;  it is similar to the "revins" (reverse insert) option of vim  and works as follows:\
 After entering a right-to-left Unicode character, the cursor  position is moved left of it, so subsequent characters will be  appended left and the text shifted right. Characters are  stored in visual order while input support is implicit, based  on the characters being typed. Entering a left-to-right  character will automatically skip behind the previously  entered right-to-left text on the line (changed in mined 2000.10)  and switch to left-to-right direction; this behaviour  optimises inserting small pieces of right-to-left text into  basically left-to-right text; this priority is justified by  the assumption that this mode (with visual storing order) is  only useful for inserting small right-to-left quotations into  left-to-right text and not for editing right-to-left documents  (which should be stored in logical order).\
 Newline, Space, Tab, and combining characters attempt to  behave well according to what was entered before; however,  intermediate cursor movement is not considered.

### Unicode line ends

Mined detects and handles Unicode line separators and  paragraph separators (unless disabled with  +u-u). They are displayed as shown above. →NEW→  Interpretation of these characters as line ends is disabled if  a file is explicitly opened in non-Unicode encoding (but not  if non-Unicode encoding is just auto-detected).\
 HOP Enter will insert a Unicode paragraph separator, Enter  in a line that already has a Unicode line end will insert a  Unicode line separator. Also the keys Shift-Enter or Ctrl-Enter insert a paragraph  separator or line separator respectively.\
 *Configuration:* In order to enable shift and control  with the Enter keys, xterm or rxvt must be configured as shown  in the example configuration file Xdefaults.mined  in the Mined runtime support library.

### Unicode display

In UTF-8 terminal mode, mined displays all Unicode characters  if they are contained in the font used by the terminal. Fonts usually have a substitute glyph to indicate characters  not contained in the font. Wide characters (double-width glyphs) are displayed in a  double-width character cell of the terminal. Combining characters are displayed either combined or  separated (see Combining characters below).

Illegal UTF-8 sequences are displayed with highlighted  background, using the following indications. Furthermore, control characters encoded as a UTF-8 sequence  and control characters in the "C1" range (values 0x80..0x9F)  will be displayed similar to normal control characters but  with coloured highlighting.

- 8

  for an unexpected UTF-8 continuation byte (range 80-BF)

- 4

  for a 0xFE (254) byte

- 5

  for a 0xFF (255) byte

- «

  for a too short UTF-8 sequence if followed by a  single-byte character (00..7F)

- »

  for a too short UTF-8 sequence if followed by a  multi-byte character (C0..FF)

→NEW→  Illegal or non-Unicode characters are indicated with the following replacements:

- &#65533;

  (or ? or \[\]) a character code ending with FFFE or FFFF (override substitution for transparent display with  +C)

- &#65533;

  (or ? or \[\]) a surrogate code point (override substitution for transparent display with  +CC)

- &#65533;

  (or ? or \[\]) a code point outside the defined Unicode range (override substitution for transparent display with  +CCC)

### Character substitution display

Legal characters (in the effective text encoding) that cannot  be displayed in a non-Unicode terminal are indicated with the  following replacements:

- ¤ *or*

  ¤  *(if wide)* a non-combining Unicode character that cannot be displayed

- % *or*

  %  *(if wide)* *(if the terminal cannot display ¤)* a non-combining Unicode character that cannot be displayed

- \` *(or wide)*

  a Unicode combining character that cannot be displayed

- E

  the Euro character U+20AC

- " *or*

   ' *(or wide)* a double or single quotation mark character (typographic quote mark)

- \- *or*

  \~ *or* = *(or wide)* a dash or hyphen character

- e, ê,

  *etc* →NEW→  a combined or other character that cannot be displayed which is based on  the displayed character by its *Unicode decomposition*

- 0 ..9 ,

  A ..Z  *etc* a corresponding fullwidth ASCII character

*Configuration*: Display colour of special or illegal  UTF-8 indications can be changed with the environment variable  MINEDUNI, the value should be the numeric part of an ANSI  terminal control sequence; optionally, the value can be  preceded by a character to be used for Unicode character  indication in non-Unicode terminal mode.\
 (The default configuration value is "¤ 46").

### Combining and joining characters

Mined supports handling of combining characters,  featuring optional separate display and partial editing,  as described above in section  Combining  characters.

### Joining characters

If mined assumes that the terminal applies LAM/ALEF ligature  joining (either configured with the +UU  right-to-left display option or auto-detected), the joined  character width will be handled correctly in cooperation with  the terminal.\
 Mined supports ligature joining in both combining character  display modes:

- •

  In combined display mode, the screen position is accounted  properly. →NEW→  Also, when deleting a character, a joined ligature is deleted  together with the base character, just like combining characters.

- •

  In separated display mode, the joining part of the ligature  is indicated using the appropriate isolated form, highlighted with  Unicode special indication background colour (similar to the  handling of combining characters).

### Search expression limitations

Unicode search ranges can not be very large as all  included characters are listed in an internal buffer which is  limited to ca. 1 KB.

### UTF-8 preservation and byte-transparent editing

When splitting lines that are too long for internal handling,  consistency of UTF-8 sequences is preserved (they are not split);  combining characters may get split off their base characters,  however, they will join seemlessly as lines are joined again  (e.g. when saving the file). Note that combining characters at the beginning of a line are  not displayed in combined display mode.

### Terminal environment

Unicode text can be edited in any terminal encoding (UTF-8,  8 bit, CJK), however, a UTF-8 terminal is preferable. UTF-8 terminal operation can be configured in either of these ways:

- •

  Auto-detection: If the terminal emits cursor position reports,  mined can uniquely recognise UTF-8 terminal encoding and further  UTF-8 features  (see Terminal encoding support below).

- •

  Environment: By proper environment variable settings.  For more details, see Locale configuration.\
   *Note:* In general, it is advisable to start a  terminal window using a wrapper script that sets a suitable  locale environment at the same time, in order to support all  kinds of applications that are more dependent on proper  environment setting than mined is. The mined installation also provides the script  uterm for this purpose, with its own manual page. (In case uterm is not installed, it is also  included in the Mined runtime support library.)

- •

  Parameter: +EU selects UTF-8 terminal mode.

- See also Terminal interworking

  problems for special hints about certain terminals.

## CJK support (Chinese/Japanese/Korean Han character features)

Mined provides CJK support features uniformly in Unicode  and in major CJK encodings. For information relating to  CJK character encoding see  Character encoding support below.

### CJK input method support

*Input methods* for CJK characters are supported with  the keyboard mapping mechanism. A number of popular input methods for CJK text input  are pre-configured, others can be added at compile-time  with the mkkbmap script.

### Radical/Stroke input method

Mined provides a Radical/Stroke input method for CJK  characters with specific functionality in addition to keyboard  mapping; it works at two-levels, selecting a radical first,  then a character from a list sorted by stroke count. If this input method is active, a selection menu for the 214  CJK radicals is displayed (without prior keyboard input). The menu displays all variations of each radical. After  selecting a radical from this menu, a second-level menu  is displayed, showing all CJK characters based on the  selected radical, sorted by the number of strokes. Many of these menus will not fit on the screen and can be  scrolled. Pressing Escape here would return to the radical menu;  pressing Escape there would disable the input method. To enter a non-mapped character (e.g. a line end), you  need to disable Radical/Stroke input method temporarily;  just toggle it back on with Alt-k (or Esc k) or Alt-F12 and  the radical menu will be displayed again for continued input.\
 For the Unicode version used as the character data source,  see the mined change log.

### CJK character display

Combining characters (in both JIS encodings and GB18030)  are handled and the combined characters are displayed properly  in either combined or separated display mode in a UTF-8  terminal (like for UTF-8 encoded text). The following special CJK character indications apply:

- ¤ *or*

  ¤ CJK character that cannot be displayed in the terminal

- % *or*

  % *(if the terminal cannot display ¤)* CJK character that cannot be displayed in the terminal

- \` *or*

  \`  CJK combining character that cannot be  displayed in the terminal

- ? *or*

  ?  CJK character code that has no known mapping to Unicode\
   (to enforce display on CJK terminal use option +C)

- \# *or*

  \#  invalid CJK character code that is outside of the  code range assigned to the encoding scheme\
   (to enforce display on CJK terminal use option +CC)

- \#

  CJK character in extended code range  (esp. 3 and 4 byte codes, or codes with 0x80...0x9F  byte range) that cannot be displayed on CJK terminal  due to terminal capability limitations\
   (to enforce display on CJK terminal use option +CCC)

- \<

  incomplete or otherwise illegal CJK code

### Han character information display

When the cursor is on a Han character and either descriptive  or pronunciation information about this character is available  in the Unihan database (from unicode.org), mined can  optionally display this information, with a selection of  display details which may include semantic information and  various pronunciations.\
 To enable Han info, select it in the Info menu. To open the Info menu, type Alt-F10 or right-click the  "?" flag.\
 The information can optionally be shown on the status line  (where it may be truncated if too long) or in a pop-up menu next  to the character.\
 Pronunciation information to be displayed can be selected  in the Info menu. →NEW→  While selecting multiple pronunciation options, the menu stays open.

The same information is always shown while you are browsing  an input method pick list (then on the status line).

→NEW→   Han character information display can be selected with the  +?h command line parameter (or  +?x for short display on the  status line). To preselect continuous Han character information display,  append this parameter to the environment variable MINED.

The information includes the character code (in CJK encoding,  both CJK code and corresponding Unicode value are shown). The amount of descriptive information (from the Unihan  database) to be shown can also be preconfigured with the  environment variable MINEDHANINFO;  see Han info configuration below.\
 (For the Unicode version used for the Unihan data source,  see the mined change log.)\

## Terminal encoding support

Mined supports UTF-8 terminals, CJK terminals, Latin-1 and  other 8-bit encoded terminals.

### Terminal feature detection

Mined performs auto-detection of a number of terminal  features:

- •

  For UTF-8 terminals, mined performs auto-detection of  terminal features (detection of UTF-8 terminal, different  width data and combining data versions, handling of  double-width, combining and joining characters).

- •

  For CJK terminals, mined performs some auto-detection of  specific CJK terminal features (handling of non-EUC code  points, handling of extended code range, GB18030, 3-byte and  4-byte encodings, detection of kterm JIS encoding, detection  of rxvt emulating CJK encoded terminal, special CJK width  properties, and terminal support of combining characters).

- •

  For mapped 8-bit terminals, mined performs auto-detection  of terminal support of combining characters.

- •

  For the Unicode version used for width and combining  character properties, see the mined change log.

- •

  CJK terminals cannot always be distinguished from 8-bit  terminals by auto-detection. Neither can the encoding of either  CJK or 8-bit terminals be auto-detected. It is thus advisable to setup proper settings of locale  environment variables (LC\_ALL, LC\_CTYPE, LANG). Alternatively, the effective terminal encoding can be indicated  to mined with a command line option (+EX). For configuration details, see  Locale configuration below.

### Specific terminal properties

For more specific configuration hints (especially for PC-based  terminals), and for description of the handling of certain  terminal interworking problems, see the Terminal environment configuration  hints below.

- *General note on using keys with Control, Shift, Alt modifiers:*

  ## Mined Command reference (command and key function assignments)

Mined makes use of many key combinations modified with  Control, Shift, Alt, or a combination of them, as a resource  for invoking a larger number of specific functions, providing  modified functionality as well as accented character input  support. Some of these key combinations may be limited by local  environment, especially the window system, or may need  extra configuration to be enabled.\
 Especially modified function keys are often intercepted by  window systems for special functions.\
 In general, mined interprets an ESC prefix as an alternative  for an Alt-key combination. For further advice and window system  specific hints on further remedies, as well as configuration hints,  to enable modified key input see the  hint box under Accent prefix keys above.

### Cursor and screen motion

- ^E *or* cursor-up

  Move cursor 1 line up.

- *... with HOP:*

  Go to top of page.

- ^X *or* cursor-down

  Move cursor 1 line down.

- *... with HOP:*

  Go to bottom of page.

- ^S *or* cursor-left

  Move cursor 1 character left.

- *... with HOP or* Ctrl-Home

  Go to beginning of line.

- ^D *or* cursor-right

  Move cursor 1 character right.

- *... with HOP or* Ctrl-End

  Go to end of line.

- ^A *or* Shift-cursor-left *(on small keypad)*

  Move word left (to preceding beginning of a word).

- *... with HOP:*

  Go to beginning of sentence.

- ^F *or* Shift-cursor-right *(on small keypad)*

  Move word right (to beginning of next word).

- *... with HOP:*

  Go to end of sentence.

- Ctrl-Shift-cursor-up

  Move backward to previous beginning of paragraph.

- Ctrl-Shift-cursor-down

  Move forward to next beginning of paragraph.

- Shift-cursor-up *(on small keypad)*

  Go to top of page.

- Shift-cursor-down *(on small keypad)*

  Go to bottom of page.

- ^R *or* PgUp *or* PrevScreen (vt100)

  Scroll backward 1 page (Top line becomes bottom line).

- *... with HOP:*

  Go to beginning of text.

- ^C *or* PgDn *or* NextScreen (vt100)

  Scroll forward 1 page (Bottom line becomes top line).

- *... with HOP:*

  Go to end of text.

- Home (on small keypad)

  Move to beginning of line. →NEW→  If already there, move to beginning of previous line. *Only if keyboard is configured to emit different*  *control sequences for the two keypads, see* *Keypad configuration hints below.*

- Ctrl-Home (on small keypad)

  Move to beginning of line.

- End (on small keypad)

  Move to end of line. →NEW→  If already there, move to end of next line. *Only if keyboard is configured to emit different*  *control sequences for the two keypads, see* *Keypad configuration hints below.*

- Ctrl-End (on small keypad)

  Move to end of line.

- *Navigation support for combined Unicode characters*

  *Enabling partial editing of base character and combining*  *characters (accents) in combined display mode.*

- Ctrl-cursor-right *or* ^V cursor-right

  *Micro movement:*  Move partial character right into Unicode combined character.

- Ctrl-cursor-left *or* ^V cursor-left

  *Micro movement:*  Move partial character left over Unicode combining character.

- ^W *or* Ctrl-PgUp

  Scroll screen backward 1 line.

- *... with HOP:*

  Scroll backward half a screen.

- ^Z *or* Ctrl-PgDn

  Scroll screen forward 1 line.

- *... with HOP:*

  Scroll forward half a screen.

- ^G nn *or* ESC g nn

  Move to a line (prompts for line number). (Terminate command with Enter or Space.)

- ^G nn % *or* ESC g nn %

  Move to position in text determined by percentage.

- ^G nn p *or* ESC g nn p

  Move to page in text (set page length with ESC P).

- ^G \< command \> *or* ESC g \< command \>

  If not immediately followed by a digit, the  positioning command works as an alternative HOP key.

- ^G N '

  (N=0..9) Go to marker N. ("'", "g", "." may be used.)

- ESC ' N *(deprecated)*

  (N=0..9) Go to marker N.

- HOP Home *or* ^G ^@ *or* ^G ^\] *or* HOP ESC ^

  Move to the position previously marked by Home/^@/^\]/ESC ^

- ESC Enter *or* Alt-Enter (Alt-Return)

  Return backward to the previous position marked in the position stack.

- HOP ESC Enter *or* HOP Alt-Enter (HOP Alt-Return)

  Return forward to the next position marked in the position stack.

- ^Q *or* ^G *or* "5" *(on keypad) or* Menu *(in Linux)*

  HOP key (except ^G followed by a digit).\
   In order to enable the "5" key to invoke the HOP function, or  assign the HOP function to another key (e.g. on laptops which  lack the numeric keypad), some configuration may be necessary; see Keypad configuration below.

- *left mouse button*

  move cursor to position

### Entering text

- \< printable char \>

  Insert the character at cursor position.

- \< Enter \> *or* \< LF Linefeed char \> *or* \< CR Return char \>

  Insert a newline at cursor position, clone  line end type. Apply auto-indentation if enabled.

- \< Shift-Enter \>

  Make a new line by inserting a Unicode paragraph separator  at cursor position  (unless disabled with +u-u). (See also Unicode line ends  for key configuration.)

- \< Ctrl-Enter \>

  Make a new line by inserting a Unicode line separator at  cursor position (unless disabled with +u-u). (See also Unicode line ends  for key configuration.)

- \< Tab char \>

  Insert a Tab character at cursor position. *with option -+4 or*  *-+8:* Tab expansion;  insert as many space characters as needed to fill line up to  the next Tab position.

- ^V \< Tab char \>

  Insert a Tab character (even in Tab expansion mode).

- HOP {, HOP (, HOP \[, HOP \<

  Enter indented pair of matching parentheses.

- HOP /

  Enter an indented Javadoc comment frame.

- HOP '

  Enter an apostrophe.

- HOP -

  Underline the line that starts before the cursor position.

- ^O

  Make new line at current position. If the current line has a "NUL" or "NONE" special  line end type, it will be reproduced for the new line. (Entering a new-line key always produces a real line end.) If the current line is terminated by a Unicode  paragraph separator, a line separator is inserted.\
   Auto-indentation is not applied.

- HOP ^O

  Split a line in two binary-transparently, i.e.  enter a "NONE" virtual line end.

### Accented character input support by accent prefix keys

- *Mined defines a number of function keys, modified function keys,*

  *modifed digit keys, and →NEW→*  *modified punctuation keys for single and multiple accent*  *composition with a subsequently entered character; for a*  *detailed listing and description, see*  *Accent prefix function keys above.*\
   *→NEW→*  *Up to three accent prefix keys can be combined by entering*  *them in sequence in order to compose characters with multiple*  *accents.* *These functions also work on the prompt line (e.g.*  *to enter search expressions).*

- F5 \< character \>

  Compose character with diaeresis (umlaut accent),  e.g. a » ä

- Shift-F5 \< character \>

  Compose character with tilde, e.g. a » ã

- Ctrl-F5 \< character \>

  Compose character with ring or with cedilla, e.g. a » å , c » ç

- Ctrl-Shift-F5 \< character \>

  Compose character with ogonek.

- Alt-Shift-F5 \< character \>

  Compose character with breve.

- F6 \< character \>

  Compose character with acute accent (accent d'aigu), e.g. a » á

- Shift-F6 \< character \>

  Compose character with grave accent, e.g. a » à

- Ctrl-F6 \< character \>

  Compose character with circumflex accent, e.g. a » â

- Ctrl-Shift-F6 \< character \>

  Compose character with macron.

- Alt-Shift-F6 \< character \>

  Compose character with dot above.

- Ctrl-0 ... Ctrl-9

  Compose character with accent, esp. for Vietnamese  accented characters.

- (Ctrl-)Alt-1 ... (Ctrl-)Alt-5

  Compose character with two accents, esp. for Vietnamese  double accented characters.

- (Ctrl-)Alt-6 ... (Ctrl-)Alt-8

  Compose character with two accents for Greek multiple  accented characters.

- Ctrl-\< punctuation key \>

  →NEW→  Compose character with accent (looking similar to the  modified punctuation character, e.g. Ctrl-, composes  with cedilla, Ctrl-: with diaeresis, Ctrl-minus  with macron, Ctrl-( with breve, Ctrl-\< with caron,  Ctrl-/ with stroke, Ctrl-; with ogonek, etc; see  Accent prefix function keys  above for details).

### Input support commands

- *Ctrl-V special input support*

  *These functions also work on the prompt line (e.g.*  *to enter search expressions).*

- ^V \< control character \>

  Enter control character.

- ^V \[ *or* ^V \\ *or* ^V \]

  Enter one of the control characters ^\[, ^\\, ^\].

- ^V ^ ^ *or* ^V \_ \_

  Enter one of the control characters ^^, ^\_.

- ^V ^ ' *or* ^V ^ "

  Enter one of the plain quote marks ' or "  (needed in smart quotes mode)

- ^V \< accent \> \< character \>

  Compose accented character.

- ^V # xxxx \< Space or Enter \>

  Enter character defined by a hexadecimal number being input  (depending on applicable encoding, byte value, Unicode  value, or valid CJK code is required).

- ^V # # xxxxxx \< Space or Enter \>

  Like ^V # but using an octal number.

- ^V # = xxxxx \< Space or Enter \>

  Like ^V # but using a decimal number.

- ^V # u *or* U *or* +

  (followed by a numeric input as described above, with optional  # or = for octal or decimal input) interprets the input as a  numeric Unicode value which is converted into the current  text encoding.

- ^V # ... Space ...

  With numeric character input, mined supports *successive*  *multiple character entry* according to ISO 14755 if the  numeric code is terminated by a Space key.

- ^V \< function key \>

  *This is not an input support function but rather the*  *function key is invoked as if pressed together with the*  *control key.*

- *Mnemonic character input support*

  *Mnemonics recognised include the following:*

  - •

    *RFC 1345 mnemos (except mappings to Unicode private use areas);*  *in ambiguous cases, the RFC 1345 mnemos must be entered in*  *long mnemonic input mode, e.g. with "^V pi " rather than "^Vpi".*

  - •

    *HTML mnemos; in ambiguous cases, the HTML mnemos*  *must be prepended with a "&".*

  - •

    *TeX mnemos (macros) and substitutes, leaving out any "\\".*

  - •

    *Supplementary mnemos as listed on the*  *mined character mnemos page.*

  *Unless there is an ambiguous mapping, all two-letter mnemonics*  *can also be entered in reverse order.*

- ^V \< Space \> \< name \> \< Space or Enter \>

  Lookup character mnemonic and enter character. RFC 1345  mnemonics take precedence in ambiguous cases.

- ^V \< character \> \< character \>

  Compose two characters. Non-RFC 1345 mnemonics take  precedence in ambiguous cases.

- *Note:*

  →NEW→  A number of mnemonics are defined with already precomposed base  characters (especially for Vietnamese input) which can be used  for further composition.\
   ^V can be applied recursively to compose a character  for further composition.\
   See examples with æ below for both cases.

- *Examples:*

  - ^V^A

  Enter Ctrl-A.

- ^V^\[ *or* ^V\[

  Enter the escape character.

- ^V\_\_

  Enter Ctrl-\_.

- ^V'e

  Enter é (e with accent d'aigu).

- ^Vae

  Enter æ (the ae ligature).

- ^V ae' *(terminated by Space or Enter)*

  Enter U+01FD (æ with acute).

- ^Væ'

  Enter U+01FD (æ with acute).

- ^V ^Vae' *(terminated by Space or Enter)*

  Enter U+01FD (æ with acute).

- ^V'^Vae

  Enter U+01FD (æ with acute).

- ^VOK *or* ^Vcm

  Enter the check mark &#10003; (U+2713)

- ^Vzz *or* ^V zigzag *(terminated by Space or Enter)*

  Enter the downwards zigzag arrow &#8623; (U+21AF)

- ^V-,

  Enter ¬ (the negation symbol).

- ^V neg *(terminated by Space or Enter)*

  Enter ¬ (the negation symbol).

- ^Va\* *or* ^V a\* *(terminated by Space or Enter)*

  Enter the Greek small letter alpha.

- ^V ae' *(terminated by Space or Enter)*

  Enter the Latin ligature ae with acute accent.

- ^V euro *(terminated by Space or Enter)*

  Enter the Euro character.

- ^V#20ac *(terminated by Space or Enter)*

  Enter the character with hexadecimal value 20AC  (which is the Euro character in UTF-8 encoding).

- ^V#U20ac *(terminated by Space or Enter)*

  Enter the Euro character (which has the hexadecimal  Unicode value 20AC) encoded in the currently selected  text encoding.

- ^V#+20ac \< Space \> +20ac \< Enter \>

  Enter two Euro characters in  successive multiple character entry mode (ISO 14755).

### Input method (Keyboard mapping) selection

- ESC k *or* Alt-F12 *or* middle click on Input Method flag (mapping indication in flags area)

  toggles between current and previously selected input method (or initially the configured standby input method) *Note:* (Alt-k or Alt-F12 also works on prompt line)

- HOP ESC k

  clears input method, i.e. resets keyboard mapping to none (unmapped input)

- ESC I *or* ESC K *or* Ctrl-F12 *or* right click on Input Method flag (mapping indication in flags area)

  opens the Input Method selection menu *Note:* (Alt-I or Alt-K or Ctrl-F12 also works on prompt line)

- HOP ESC K

  cycles through available keyboard mappings / input methods

### Modifying text

- *Note on character deletion*

  In order to accommodate various common ways of assigning  control character codes to the Del and Backarrow keyboard keys,  mined adjusts its own function assignment to the environment  setting of the terminal interface, see  Automatic backspace mode adaptation. (The ASCII DEL control character can be enforced to delete  a character left with the option -B.)

- *Note on the Del key*

  Many people expect the "Home" and "End" keys to move the  cursor to the beginning or end of line, respectively, and the  "Del" key to delete the next character. In the keyboard usage approach of mined, this is a waste of  keyboard resources as these functions can easily and quite  intuitively be invoked with "HOP left" and "HOP right", i.e.  by pressing the keypad keys "5 4" or "5 6" in sequence, and  all these keys are available twice on typical keyboards. So there is enough room left for mapping the most  frequent paste-buffer functions to the keypad as described  above which is considered much more useful. Use Alt-Del (or ESC Del, or Ctrl-Del) to delete the next  character, or use the -k option to  switch keypad key function assignments for the Home, End, and  Del keys. See Keypad layout above for a  motivating overview of the mined keypad assignment features  and options.

- Backarrow *or* ^H

  Delete character left. If there is only blank space before the current position in  the current line and the line above, the auto-undent function  (Back-Tab) is performed instead, deleting multiple spaces back to  the previous level of indentation. *Note:* Mined tries to map this function to the  Backarrow key on the keyboard whether it is assigned to  the Backspace or DEL control characters, see note above.

- Ctrl-Backarrow *(if key properly configured) or* F5 Backarrow

  "Delete single": Delete only right-most combining accent  of combined character left of cursor position. If not next to a combined character: delete character left,  avoiding auto-undent function.

- Del *(on numeric keypad)*

  Cut selected area to paste buffer.

- Del *(on small keypad, if properly configured to be distinguished)*

  Delete character right, including any combining characters.

- →NEW→

  Ctrl-Del *(both keypads, if key properly configured)* Delete character right, excluding any combining characters.

- Shift-Del *(if key properly configured)*

  Cut selected area to paste buffer.

- HOP Backarrow

  Delete beginning of line (left of current position).

- ^B

  Delete character right (next character).

- ^T

  Delete next word.

- ^^ *(overridden when used as accent prefix, e.g. with newer xterm)*

  Delete previous word.

- ^K

  Delete tail of line (from current position to line-end);  if at end of line, delete line end (joining lines).

- HOP ^K

  Delete whole line.

- Code conversion

  - ESC X

  Insert hexadecimal representation of current character code. (In UTF-8 mode, this is the UTF-8 byte sequence  of the character in hexadecimal notation.)

- *... with HOP:*

  Insert character with hexadecimal code  scanned from text at current position.

- ESC U

  Insert (hexadecimal) Unicode value of current character (with either 4/6/8 hexadecimal digits, depending on the  value); in CJK or mapped 8 bit encoding mode, the  value is transformed from the current text encoding  into Unicode.

- *... with HOP or* Ctrl-Shift-F11

  Insert character with hexadecimal Unicode value  scanned from text at current position; in CJK or  mapped 8 bit encoding mode, the value is transformed  from Unicode into the current text encoding.

- ESC A

  Like ESC U but inserting an octal Unicode value.

- *... with HOP:*

  Like HOP ESC U but scanning an octal Unicode value.

- ESC D

  Like ESC U but inserting a decimal Unicode value.

- *... with HOP:*

  Like HOP ESC U but scanning a decimal Unicode value.

- Alt-x

  →NEW→  Toggle the preceding character and its hexadecimal code. The command detects a 2 to 6 hex digit character code with  a valid Unicode value, or a non-digit Unicode character,  respectively.

- Case conversion

  - ESC C *or* F11

  Exchange case (low/capital) of character under cursor. Case mapping is based on Unicode (but applicable in  all text encodings). Special handling is applied for: Greek final s, Turkish "i" if the effective locale  environment variable (LC\_ALL, LC\_CTYPE, LANG) begins  with "tr" or "az", case mappings to multiple  characters, Lithuanian special conditions. Japanese characters are toggled between Hiragana and Katakana.

- *... with HOP or* Shift-F11

  Apply case conversion to word from cursor.

- Shift-F3

  Cycle casing of a word between all small, title case,  and all capitals (title case means the first letter is either  capital or actually a Unicode title case, the following letters  are small). For Japanese script, it toggles the word between  Hiragana and Katakana.

- Mnemonic and special conversion

  - ESC \_ *or* Ctrl-F11

  Mnemonic character substitution replaces the two characters  at the cursor position with a suitable composite  character (e.g. accented character) if possible. With Ctrl-F11, transformations are the same as with  the ^V two-letter character input mnemonics. With ESC \_, language-dependent preferences may take  precedence (see variations below)  according to the current locale environment.\
   Example: ae-\>æ

### Special conversion features

- •

  If the text at the cursor position contains an HTML  character tag (starting with "&" and optionally  ending with ";"), it is replaced with the actual  character it represents.\
   Example: &amp;not;-\>¬

- •

  →NEW→  If the text at the cursor position contains an  HTML numeric character entity (starting with "&#"  and optionally ending with ";"), it is replaced with  the respective character it denotes.\
   Example: &#x40;-\>@\
   &#64;-\>@

- •

  →NEW→  If the text at the cursor position contains a URL  numeric escape notation (starting with "%") it is  replaced with the actual character it represents.\
   Example: %40-\>@

- •

  The command also transforms between Latin-1 and UTF-8  encoded characters if an accordingly encoded character  is found at the current position; the current  character encoding mode is used to determine the  target character set.\
   Example: æ (Latin-1 encoding)-\>æ (current UTF-8 encoding) or \
   æ (UTF-8 encoding)-\>æ (current encoding)

*As variations of ESC \_, there are some commands ESC LETTER*  *using national letters that occur on respective national keyboards.* *They apply basically the same transformations but with*  *some national preferences taking precedence:*

- ESC ä *or* ESC ö *or* ESC ü *or* ESC ß

  Similar to ESC \_, but with German transformation preferences.\
   example: ae-\>ä, oe-\>ö

- ESC é *or* ESC è *or* ESC à *or* ESC ù *or* ESC ç

  Similar to ESC \_, but with French transformation preferences.\
   example: oe-\>&#339; (oe ligature U+0153)

- ESC æ *or* ESC å *or* ESC ø

  Similar to ESC \_, but with Danish transformation preferences.\
   example: ae-\>æ, oe-\>ø

- Encoding conversion

  - HOP ESC ( *or* Alt-F11

  Search for a character encoded in the "wrong encoding",  i.e. a UTF-8 character in non-UTF-8 text mode, or a Latin-1  character in UTF-8 text mode.

- ESC \_ *or* ESC ö etc.

  If invoked on a non-ASCII character,  UTF-8 / →NEW→ non-UTF-8  character encoding conversion is applied: If the character is not encoded in the current text encoding  it is converted into the current text encoding (from UTF-8 or  from Latin-1).

- Alt-Shift-F11

  Convert Latin-1 / UTF-8, then search for the next  "wrong encoded" character.

- Paragraph formatting

  - ESC j

  ("Clever Justify") Format paragraph by word-wrapping  according to the currently set right margin value; left margins are derived from the contents of the  paragraph and line. Heuristic detection of numbered  items automatically triggers appropriate indentation.\
   End-of-paragraph is a line without trailing blank space.

- *... with HOP:*

  Same, but end-of-paragraph is considered to be a blank line.

- ESC J

  ("Normal Justify") Format paragraph by word-wrapping  according to the currently set left and right margin values.\
   End-of-paragraph is a line without trailing blank space.

- *... with HOP:*

  Same, but end-of-paragraph is a blank line.

- ESC \<

  Set left margin for justification.

- ESC ;

  Set left margin of first line of paragraph only.

- ESC :

  Set left margin of next lines of paragraph only.

- ESC \>

  Set right margin for justification.

- HTML support

  - ESC H *(every first time)*

  Enter HTML tag (and remember for subsequent ESC H). (Note that Alt-Shift-H will do the same thing if your terminal  is configured appropriately - see the example configuration file  Xdefaults.mined in the  Mined runtime support library.) The tag can be entered with attributes and values; these  will not be repeated in the closing tag (see next entry  on ESC H).

- ESC H *(every second time)*

  Enter closing HTML tag. Any tag attributes and values entered with the tag (see previous  entry on ESC H) will be left out.

- HOP ESC H

  Put text between mark and current position in HTML tags. The "A" tag gets special treatment.

### Text block and buffer operations

- *Note on the Home, End, and Del keys*

  Many people expect the "Home" and "End" keys to move the  cursor to the beginning or end of line, respectively, and the  "Del" key to delete the next character. In the keyboard usage approach of mined, this is a waste of  keyboard resources as these functions can easily and quite  intuitively be invoked with "HOP left" and "HOP right", i.e.  by pressing the keypad keys "5 4" or "5 6" in sequence, and  all these keys are available twice on typical keyboards. So there is enough room left for mapping the most frequent  paste-buffer functions to the keypad as described above which  is considered much more useful. Use Alt- (or Ctrl-) with the Home, End, or Del keys  for the line positioning and character deletion functions,  depending on terminal support and configuration;  or use the -k option to switch  keypad key function assignments for the Home, End, and Del keys. See Keypad layout above for a  motivating overview of the mined keypad assignment features  and options.

- ^@ (Ctrl-Space)

  - *or* Home (on right keypad) *or* Shift-Home

  - *or* ^\] *or* ESC @ *or* ESC ^

  - *or* Stop (sun)*or* Select (vt100)

  Set mark (to remember the current location).

- *... with HOP:*

  Goto mark.

- ^Y

  - *or* End (on right keypad) *or* Shift-End

  - *or* Copy (sun) *or* Do (vt100)

  Copy selected text (between mark and current position)  to paste buffer.

- *... with HOP:*

  Append to buffer.

- ^U

  - *or* Del (on right keypad) *or* Shift-Del

  - *or* Cut (sun) *or* Remove (vt100)

  Cut selected text (between mark and current position)  to paste buffer.

- *... with HOP:*

  Append to buffer.

- ^P *or* Ins *or* Ctrl-Ins

  - *or* Paste (sun) *or* InsertHere (vt100)

  Paste contents of buffer to current position.\
   With ^P or Ctrl-Ins, the cursor is placed before the  pasted region. With Ins, the cursor is placed behind the pasted region  unless the option -V was used.\
   In rxvt, with Ins on the left keypad, the cursor is placed  before (left of) the pasted region.

- *... with HOP:* (e.g. HOP Ins or ^G^P)

  Paste from inter-window buffer. Thus you can quickly copy text from one invocation  of mined to another.

- Alt-Ins *or* Ctrl-F4

  Replace text just pasted with preceding paste buffer. This command uses a ring of paste buffers (like emacs "yank ring").

- ^G N m *or* ESC g N ,

  (N=0..9) Set marker N. (^G N , also works.)

- ESC m N

  (N=0..9) Set marker N.

- ^G N ' *or* ESC g N '

  (N=0..9) Go to marker N. (^G N g *or* ^G N . also works.)

- ESC ' N *(deprecated)*

  (N=0..9) Go to marker N.

- ESC b *or* Shift-F4

  Copy contents of paste buffer into a file.

- *... with HOP:*

  Append to file.

- ESC i *or* F4

  Insert file at current position.

- Print *from File menu*

  Print text being edited (to default printer).

- HOP ESC ! *or* **(deprecated)** ESC c

  Invoke operating system command (prompted for) with paste buffer as input.

### Search

- *Note on case-insensitive searching*

  →NEW→  Mined applies case-insensitive search pattern matching where  the search pattern contains small characters, unless when  searching for an identifier (current identifier occurence, HOP  F8, or identifier definition, Alt-t). For a case-sensitive  search for a small letter, use a single-letter range  expression like \[x\] or a backslash escape  like \\x (note, however, that \\n and  \\r have special meaning).

- ESC / *or* Find *or* F7 *or* F8

  Search forward (prompt for regular expression).

- *... with HOP:*

  Search for current identifier.

- ESC \\ *or* Alt-F7 *or* Alt-F8

  Search backward (prompt for regular expression).

- HOP F8 *or* Shift-F9

  Search for current identifier.

- HOP Alt-F8 *or* Alt-Shift-F9

  Search for current identifier backward.

- HOP Shift-F8 *or* ESC t *or* Alt-t

  Search for definition of current identifier (using tags file). See ESC t below for further description.

- HOP Ctrl-Shift-F8

  Search for identifier definition (prompts for identifier).

- HOP Ctrl-F8 *or* Ctrl-Shift-F9

  Search for current character.

- ^N *or* F9

  Search for next occurence (using previous  search expression and direction).

- *... with HOP:*

  Repeat last but one search; two alternating  search expressions can be used with this command.

- Alt-F9

  Search again (for last expression) but in the opposite  direction.

- ESC , *or* Shift-F8

  (Global) Substitute (prompt for search and replacement strings).

- ESC r *or* Ctrl-F8

  (Global) Replace with confirmation prompting (first prompt  for strings).

- ESC R *or* Ctrl-Shift-F8

  (Line Replace) Substitute on current line (prompt for strings).

- ESC ( *or* ESC ) *or* ESC { *or* ESC }

  Perform one of the following matching searches, depending on text: Search for corresponding bracket matching the bracket  at current position in one of the pairs (), \[\], {}, \<\>, «». (Nested matching bracket pairs are skipped.) In an HTML or XML file, search for matching tag (nesting considered). Search for matching /\* \*/ comment delimiter. Search for matching #if #else/#elif #endif structures  (nesting considered). On an #else or #elif directive, the search direction depends  on the command character, i.e. ESC ( searches backward, ESC )  searches forward. In a mailbox file, on any mail header line, search for  next or previous mail message, depending on the command character,  i.e. ESC ( searches backward, ESC ) searches forward. In a mailbox file or saved mail message, on a MIME separator,  search for next or previous MIME separator, depending on the  command character, i.e. ESC ( searches backward, ESC ) searches forward.

- ESC t *or* HOP Shift-F8

  Search for and move to the location of the definition of  identifier at the current cursor position. This command  uses the tags file that can be generated with the  ctags command (Unix). It opens another file if necessary and automatically saves  the current file then.\
   Like with a number of positioning commands, ESC t places  the current position on the position marker stack before going  to the location of the identifier definition. The command ESC  Enter (Alt-Enter) can move back to that position, even if  edited files were changed with the command.

- HOP ESC t

  Similar, but prompts for identifier.

- HOP ESC ( *or* Alt-F11

  Search for a character encoded in the "wrong encoding",  i.e. a UTF-8 character in Latin-1 mode, or a Latin-1 character  in UTF-8 mode.

### Special functions in a search string

- matches any character.

  - ^

  (at begin of pattern) restricts match to the begin of a line.

- $

  (at end of pattern) restricts match to the end of a line.

- \[\< character set \>\]

  matches any one of a set of characters; the set may be given by listing elements, denoting a range \< c1 \>...\< c2 \>, or negating the whole set \[^\< character set \>\].

- \\\< character \>

  matches the character literally (except n or r).

- \< pattern \>\*

  (a star appended to any one of the defined patterns) matches a (zero or more times) repetition of this pattern. In a final position within the search expression,  however, it matches one or more times this pattern.

- ^V^J *or* \\n

  (a linefeed character or its representation)  searches for newline embedded in the search pattern

- →NEW→ \\r

  searches for DOS/Windows newline (CRLF) embedded  in the search pattern

### Special functions in a replacement string

- &

  is replaced by the matched pattern to be replaced.

- ^V^J *or* \\n

  (a linefeed character) embeds a newline  (LF character) in the replacement string

- \\r

  (a carriage return character) embeds a CR  character in the replacement string

### File operations

- ESC w *or* F2

  Save (write back) current text to file (only if modified).

- *... with HOP:*

  saves current file position in marker file  @mined.mar, so that subsequent editing sessions will start  at the current position and remember formatting parameters.

- ESC W *or* Shift-F2

  Save (write back) current text to file (unconditionally).

- Alt-F2

  Save As; save current text to file with different name; →NEW→  file permissions (access modes) are preserved and cloned.

- Ctrl-Shift-F2 *or* HOP Shift-F2

  Save to file, and enable memory for file positions in  current directory; current file positions will always be saved  in marker file @mined.mar so that subsequent editing sessions  will start at the current position and remember formatting  parameters.

- F3

  Edit another file (prompt for save if current text changed).

- Ctrl-F3 *or* ESC v

  View another file (prompt for save if current text changed).

- ESC V

  Toggle between edit mode and view only mode.

- ESC q

  Quit the editor (prompt for save if current text changed).

- ESC ESC *or* Ctrl-F2

  Exit editing current text (save first if changed), continue  with next file if multiple files are being edited,  otherwise exit mined. *Note:* There is a small delay after typing ESC ESC. (This is in order to enable recognition of Alt-function key  combinations which are implemented by some terminals or  terminal modes by prefixing ESC to the function key escape  sequence.) This delay can be avoided by using Ctrl-F2.

- ESC +

  Edit the next file in the list of files being edited.

- *... with HOP:*

  Edit the last file in the list.

- ESC -

  Edit the previous file in the list of files being edited.

- *... with HOP:*

  Edit the first file in the list.

- ESC #

  Ask for index into the list of files and edit that file.

- ^G N # *or* ESC g N #

  Edit Nth file. (^G N f also works.)

- ESC # #

  Reload file currently being edited.

### Menu

- ESC Space *or* Alt-Space *or* Shift-F10

  Open Popup menu.

- Alt-F10 *or* Ctrl-F10

  Open first flag menu (Info menu).

- ESC f *or* Alt-f *or* F10

  Open File menu.

- ESC \< letter \> *or* Alt-\< letter \>

  Open menu.

- ESC I *or* Alt-I *or* ESC K *or* Alt-K *or* Ctrl-F12

  opens the Input Method selection menu *(Alt-I/Alt-K/Ctrl-F12 also works on prompt line)*

- ESC Q *or* Alt-Q

  opens the Smart Quotes selection menu

- ESC E *or* Alt-E

  opens the Encoding selection menu

### Miscellaneous

- ESC = \< count \>

  Repeat a command \< count \> times (prompts for count). *Example:* ESC=7\< cursor down \> moves the cursor  7 lines down. *Note:* If the function to be repeated is a character  to be inserted and the input is keyboard mapped to a  multi-character sequence, only the first character of the  sequence is inserted repeatedly.

- ESC \< count \>

  Repeat a command \< count \> times (prompts for rest of count); this short form is only accepted, however, if the repeat count  consists of at least two digits (this is to avoid confusion with  function key escape sequences of certain terminals). *Example:* ESC77. enters a line of 77 dots,  ESC07x enters "xxxxxxx".

- ^V \< function key \>

  Invoke function as if pressed together with the control key. E.g. ^V \< cursor-left \> moves left into the parts of a  combined character just like Ctrl-cursor-left would do  (the latter may depend on proper terminal setup).

- ^\\

  Abort current command, e.g. while on prompt line.

- ESC ?

  Show the current status of the file (name, whether modified,  current line, number of lines, characters, and bytes).

- *... with HOP:*

  Toggle permanent display of text status line. Note that when editing a file that does not fit completely in  memory (e.g. large file on old system), this option may cause  considerable swapping. In that case, do not use the feature.

- ESC u

  Display the character code of the current character  in the bottom status line. (In UTF-8 encoded text mode, both the UTF-8 byte  sequence and the Unicode value are displayed; in CJK  or mapped 8 bit encoded text mode, Han or 8 bit  character values and corresponding Unicode values are  displayed when applicable.) In non-Latin-1 encoded text mode, additional Unicode  information is included, indicating the script,  character category, width, combining, and surrogate  properties of the character.

- *... with HOP:*

  Toggle permanent character code display.

- ESC T

  Toggle Tab width. Alternates the width interpretation of Tab characters  between 4 and 8.

- *... with HOP:*

  Toggle Tab expansion (input substitution with spaces).

- ESC P

  Set page length (number of lines that mined assumes to  be on a page). (Useful for status display.)

- ESC a

  Toggle append mode (append to text buffer/file instead of  overwriting).

- ESC d

  Show current directory / change to another one  (also change drive in MSDOS version).\
   The assumed (relative) file path name  →NEW→  as well as file permissions (access modes) are preserved.

- ESC n *or* Set Name... *from File menu*

  Change the file name associated with the text being edited; the file is not actually saved yet but only the new  file name is used for saving the next time. The text is detached from the file previously loaded  which is not affected.\
   All current text editing properties (assumed  encoding, smart quotes style, margins, ...)  →NEW→  as well as file permissions (access modes) are preserved.

- ESC .

  Redraw the screen.

- ESC l

  Make screen lower (decrease number of screen lines).

- ESC L

  Make screen higher (increase number of screen lines).

- ESC %

  Make screen smaller (decrease screen size).

- ESC &

  Make screen bigger (increase screen size).

- ESC z

  Suspend editor process; first write back file if modified (no write if HOPped or given empty file name on prompting).

- ESC !

  Fork off a shell and wait for it to finish.

- *... with HOP:*

  Invoke operating system command (prompted for) with paste buffer as input.

- F1 *or* Help *or* Alt-h *or* ESC h

  Online help function. Selection of help topics is offered and prompted;  after entering the initial letter, the respective  help section is shown.\
   If another (modified) F1 key, a modified digit key,  or a Ctrl-modified punctuation key is entered,  a corresponding key assignment help bar is displayed  (see F1 F1 etc. below).\
   The online help file mined.hlp is  installed with the Mined runtime support library. If  this is not installed in one of the standard  locations, the environment variable MINEDDIR should be  set to point to the directory so mined can find its  online help file.

- *... with HOP:*

  If followed by a topic selection (initial letter after  prompt), view online help with mined (in read-only  mode) by opening the online help file (instead of  invoking the "less" viewer) and positioning to the  selected help topic.\
   Before opening the help file, the text being  edited is automatically saved (if it was modified) and  any prompting required will be performed. The  suspended editing session will automatically be  restored after help viewing is finished.

- F1 F1 *or* Shift-F1 *or* Ctrl-F1 *or* Alt-F1 *or* Ctrl-Shift-F1 *or* Alt-Shift-F1

  Display a help bar (in the bottom status line) with short  indications of the functions assigned to the function keys  F2... in the corresponding modified mode (i.e. with Control,  Shift, and Alt as requested for the help bar).

- *... with HOP:*

  Toggle permanent help bar display.

- F1 Ctrl-1 *or* F1 Alt-1 *or* F1 Alt-Ctrl-1

  →NEW→  Display a help bar (in the bottom status line) with short  indications of the accent prefix functions assigned to the  digit keys 1..9, 0 in the corresponding modified mode  (i.e. with Control and Alt as requested for the help bar).

- *... with HOP:*

  Toggle permanent help bar display.

- F1 Ctrl-\< punctuation key \> *e.g.* F1 Ctrl-,

  →NEW→  Display a help bar (in the bottom status line) with short  indications of the accent prefix functions assigned to the  Ctrl-modified punctuation keys.

- *... with HOP:*

  Toggle permanent help bar display.

- ESC

  While a command is active and prompting (e.g. for a search  expression), ESC aborts the current command.

- ESC Space

  Do nothing, so the Space key aborts the ESC command.

### MSDOS only

- Ctrl-Alt-Space

  Set mark (to remember the current location).

- F1 *or* ESC h

  If followed by a topic selection (initial letter after prompt),  view online help with mined (like HOP F1).

- *Screen size change functions*

  MSDOS screen size changes depend on a  mode table contained in the source file keydefs.c. \
   In the presence of a TSR driver which can change  fonts and screen modes while running a program  (e.g. the excellent VGAMAX), the actual change  effective may occasionally be unexpected. Mined does  however recognise those changes and adjusts its  conception of screen size appropriately, although  only after the next character being input.

- Alt\\-\\- *(on keypad)*

  Change video lines mode to the mode with the next smaller  number of lines but same number of columns. *(The number of lines is first tried to be decreased*  *within the current video mode. If it is already*  *the lowest, the next video mode is chosen.)*

- Alt-+ *(on keypad)*

  Change video lines mode to the mode with the next higher  number of lines but same number of columns.

- Ctrl\\-\\- *(on keypad)*

  Change video mode to the mode with the next smaller  total resolution (lines \* columns).

- Ctrl-+ *(on keypad)*

  Change video mode to the mode with the next higher  total resolution.

- Alt-/ *(on keypad)*

  Switch between highest and lowest line number modes  within the current basic screen mode.

- Ctrl-/ *(on keypad)*

  Cycle through all line number modes  within the current basic screen mode.

- HOP Ctrl-/Alt- +/- *(on keypad)*

  Several other video mode settings are prompted for  (experimental).

### emacs mode

Mined emulates emacs keyboard layout and some specific functions if  invoked with the option -e or with the  command name alias minmacs.\
 In emacs mode, emacs command key assignments to control keys,  ESC (Meta commands) and ^X (C-X commands) are configured. In addition, the following emacs-compatible changes apply:

- •

  The mined ESC commands can be reached via M-x. (Function keys remain unaffected.)

- •

  The Del key (on the small keypad) is configured to  delete the previous character.

- •

  The control key insertion prefix is ^Q.

- •

  The quit character (e.g. for the prompt line) is ^G.

- •

  The emacs multiple buffer ring is fully enabled.

- •

  Paragraph justification mode is set to consider an empty line  as paragraph separation by default.

- •

  Mined ESC commands can be reached via M-x (Alt-X).

- •

  ^\\ (Ctrl-\\) is interpreted as an additional HOP key.

- •

  Keyboard mapping (input method) can be toggled with Alt-F12

Command overview:

- ^A, ^B, ^E, ^F, ^N, ^P, ^V, M-v, M-b, M-f, M-a, M-e, M-\< , M-\>, ^X\[, ^X\]

  cursor and screen movement

- ^D

  delete character

- ^O

  insert new line

- ^Q

  insert literal character

- ^@

  mark position

- ^W / M-w

  cut / copy to buffer

- ^K

  delete to end of line / delete line end, and append to buffer

- M-d / M-k

  delete word / delete end of sentence, and append to buffer

- ^Y

  paste buffer

- M-y

  paste previous buffer, replacing text just pasted

- M-u

  transform word upper-case

- M-l

  transform word lower-case

- M-c

  transform word capitalised (initial upper-case)

- ^S, ^R

  search forward / reverse

- M-%

  replace with confirmation

- M-.

  search for identifier definition (using tags file)

- ^X^S, ^Xs

  save file

- ^X^W

  save file as (using different name)

- ^X^F

  edit other file (prompts for name)

- ^X^B

  edit previous file (among those listed on command line)

- ^X^C

  quit editor, prompt for saving text first

- ^Xk

  discard current edit buffer (after confirmation), open new one

- ^Xi

  insert file

- ^X=

  display file statistics

- ^L

  refresh display

- ^U, ^X^\[

  repeat (not as generic numeric command parameter)

- ^H

  help

- ^Z, M-z, ^X^Z

  suspend editor

- ^\\ *(mined add-on)*

  HOP (generic function amplifier / modifier)

- M-x *(Deprecated mined add-on)*

  invoke mined ESC command

- ESC ESC *(mined add-on)*

  invoke mined ESC command

### WordStar mode

Mined emulates WordStar keyboard layout and some specific functions if  invoked with the option -W or with the  command name alias mstar.\
 The usual Escape commands and function key assignments of mined  also apply in WordStar mode.\
 In prefixed two-key commands, the control state and case of the second  key does not matter, e.g. ^K^B, ^KB and ^Kb are identical.

- ^S, ^D, ^E, ^X, ^A, ^F, ^R, ^C, ^W, ^Z, ^H

  cursor and screen movement

- ^G

  delete character

- ^T

  delete word

- ^Y

  delete line

- ^Q^Y

  delete to end of line

- ^N

  insert new line

- ^P

  insert control character

- ^Q^W, ^Q^Z

  scroll multiple screen lines

- ^Q^F

  find

- ^Q^A

  find and replace (with HOP: with confirm)

- ^L

  repeat last search

- ^Q

  HOP key

- ^Q, ^K, ^O

  two-key command prefixes

- ^Q^Q

  repeat following command

- ^B

  paragraph justification (word wrap)

- ^OL

  set left margins

- ^OG

  set left margin for first line of paragraph

- ^OR

  set right margin

- ^KB

  set marker

- ^QB

  goto marker

- ^Kn

  (n=0..9) set marker n

- ^Qn

  (n=0..9) goto marker n

- ^KK

  copy between here and marker (not exactly WS function)

- ^KC

  copy (paste) saved text here (not exactly WS function)

- ^KY

  delete between here and marker (not exactly WS function)

- ^KV

  copy (paste) saved text here (not exactly WS function)

- ^KW

  write paste buffer to file

- ^KR

  read (insert) file here

- ^KS

  write (save) edited text to file

- ^KD

  write (save) edited text to file, edit next file

- ^KX

  exit (and save)

- ^KQ

  quit (don't save)

- ^KL

  change current directory

## Environment interworking and configuration hints

A number of configuration options have already been addressed  throughout the manual page. A few more configuration features  are mentioned here. For more details, examples, and other  display settings see the example script profile.mined  in the Mined runtime support library.

### Mined runtime support library

The mined distribution provides a collection of runtime support  files (in subdirectory usrshare); if mined is  installed into standard locations, they are copied to one of the  directories /usr/share/mined,  /usr/share/lib/mined,  /usr/local/share/mined,  /opt/mined/share,  $HOME/opt/mined/share  (depending on operating system and installation options).

Mined runtime support includes the following files:

### Package documentation

- package\_doc/README

  mined package overview and introduction

- package\_doc/VERSION

  version of the installed mined release

- package\_doc/CHANGES

  mined change log

- package\_doc/LICENSE.GNU

  the GNU license applicable to mined

### Web documentation

- doc\_user/\*

  copy of the web documentation including the  HTML version of the mined manual page

### Online help

- help/mined.hlp

  online help file

### Example files: environment configuration patterns

- conf\_user/profile.mined

  shell commands to set environment variables for mined,  template for inclusion in $HOME/.profile

- conf\_user/Xdefaults.mined

  xterm configuration entries suitable for mined, template  for inclusion in $HOME/.Xdefaults or $HOME/.Xresources

- conf\_user/xinitrc.mined

  shell commands to activate Xdefaults.mined,  template for inclusion in $HOME/.profile

- conf\_user/kp5

  shell script to assign the X key symbol Menu  to the middle keypad key ("5") as a remedy to the  inability of the KDE konsole terminal to recognise that  key (due to a deficieny in the QT framework), thus enabling the HOP key in konsole

- conf\_user/mlterm/main

  mlterm configuration to enable Alt-key detection, for inclusion in $HOME/.mlterm/main

- conf\_user/mlterm/key

  mlterm configuration for modified (shifted etc) function keys, for inclusion in $HOME/.mlterm/key

- conf\_user/konsole/xterm-modified.keytab

  KDE konsole keyboard configuration providing  a terminal (called "xterm with key modifiers" in the  konsole menu) with modified (shifted etc) function keys

### Scripts to be used at runtime

- bin/uprint

  script for printing a Unicode file, using either  paps or uniprint for formatting; under Windows, it  can also use notepad /p for printing

- bin/minedmar

  script to clean up the @mined.mar file position file

- bin/minedmar.bat

  DOS/Windows version of minedmar

### Scripts to start mined

- bin/uterm

  script to invoke xterm in UTF-8 mode; it should also  be installed into the system binary path and has its  own manual page

- bin/mterm

  script to invoke mlterm with suitable options (for bidi support)

- bin/umined

  script to start mined in a separate xterm window,  using UTF-8 mode with most recent version of Unicode  width data (specifying wide and combining characters)  as built-in to xterm

- bin/xmined

  script to start mined in a separate xterm window,  using same encoding mode as currently set

- bin/wined

  script to start mined in a separate terminal on Windows  without X Window System (using MinTTY if available, or rxvt),  applying Windows look-and-feel

- bin/wined.bat

  Windows command script version of wined

### Files to setup a mined installation

- setup\_install/mined.desktop

  KDE desktop entry to start mined in an xterm  from a menu entry, using the uterm script

- setup\_install/mined.ico

  Cygwin/X desktop icon for adding mined to the  Cygwin-X Editors section in the Windows Start menu

### Scripts to configure an environment for mined

- setup\_install/bin/configure-xterm

  sample configuration script to build xterm with recommended configuration options

- setup\_install/bin/makeprint

  script to search for or retrieve and build the  uniprint program from the yudit package

- setup\_install/bin/installfonts

  script for downloading the Unicode-enhanced X screen  fonts and installing them with your X server

- setup\_install/bin/bdf18to20

  script to transform an 18x18 pixel double-width screen font  into a corresponding 20x20 pixel font matching the  10x20 single-width font (which is much nicer than the 9x18)

- setup\_install/bin/mkicon

  script to install mined with Cygwin/X by creating  an entry (with icon) in the Cygwin-X Editors section  in the Windows Start menu

- setup\_install/bin/postinstall

  script to invoke mkicon after installation on Cygwin

### Terminal environment

The Unix terminal type is determined from the environment  variable TERM.

Recognition of some special terminal features or restrictions  is associated with the setting of TERM (xterm, linux, vt100,  sun\*, cygwin, rxvt, \*ansi\*, 9780\*,  hp\*, xterm-hp, superbee\*, sb\*, microb\*,  scoansi\*, xterm-sco, cons\*, att605-pc, ti\_ansi, mgterm). Non-trivial screen features (like scroll reverse, add/delete line,  erase multiple characters) are used if their support is indicated  in the termcap/terminfo description of the terminal unless other  information is available (e.g. after terminal version detection,  an older xterm is supposed not to support erase characters). Since colour support is often not configured within terminfo but  modern terminals do support it, mined always tries to apply  colour attributes (if the terminal at least supports ANSI  control sequences). A number of other "best practice" approaches  are taken to optimize the usage of terminal capabilities, esp.  covering different methods of graphics display support (for  menu borders).

For detection of function keys and cursor keys,  the escape sequences being used by terminals are often  not known to an operating system environment because they  are poorly and incompletely configured. Because this does  usually not work as expected (see this bug report just for an example), mined does not rely on  the termcap/terminfo configuration of function key codes alone  (which it considers however since mined 2000.14);  rather it always accepts a wide variety of typical codes. A few ambiguous codes are resolved according to the TERM  variable.

In an xterm, window headline and icon text are set to the  current filename and "(\*)" is added if the text has been  modified.

### Locale configuration

The locale mechanism as implemented on modern systems has a  number of design problems, one being that there is  no explicit distinction between text encoding and terminal  encoding although this is obviously a very different thing and  mixed combinations of both may occur and are actually supported  by mined.\
 For this reason, mined extends the locale environment variable  mechanism with the variable TEXTLANG which is only considered  for assumed text encoding (with precedence over the other  locale variables). Also mined provides additional features to specify both  terminal and text encodings.

- •

  For *text encoding*, mined checks the variables  TEXTLANG, LC\_ALL, LC\_CTYPE, LANG in this order.

- •

  For *terminal encoding*, mined checks the variables  LC\_ALL, LC\_CTYPE, LANG in this order.

- •

  Explicit command line parameters are available to specify  either terminal encoding (+E)  or text encoding (-E). They override  environment variable settings.

- •

  UTF-8 terminal auto-detection overrides other terminal  encoding settings.

- •

  Text encoding auto-detection overrides environment  settings but not command line settings.

- •

  Assumed text encoding can be switched while editing.

For encoding recognition from locale environment variables,  mined recognises locale specifications typically found in  system installations, including those which do not include an  explicit encoding suffix. Known character encoding suffixes  ("codeset" component of locale name, starting with ".") are  recognised regardless of whether the given locale is installed  or not. Other encodings are recognised by region suffix  (starting with "\_") or full locale name or alias.\
 In addition to hard-coded locale recognition (especially for CJK),  locale values and associated encodings are configured in the  compile-time configuration file locales.cfg which  especially lists locale names that do not have an explicit  encoding suffix. You can use these settings (known locale name or generic  locale name suffix) even on legacy systems without locale  support to indicate the terminal environment properly to mined. For encoding recognition from command-line parameters,  mined provides three options:

- •

  \-EX *or* +EX with a single-letter encoding tag as listed with the description  of the  -E options; further encoding tags are configured in the compile-time  configuration file charmaps.cfg.

- •

  \-E=charmap *or* +E=charmap with a character encoding name (as reported by the  locale charmap command).

- •

  \-E.suffix *or* +E.suffix with a character encoding suffix ("codeset" of locale name).

- •

  \-E:flag *or* +E:flag with a 2-letter indication used by mined to indicate the  respective text encoding in the Encoding flag.

- In each of these options, -E specifies

  text encoding while +E would specify  terminal encoding to be assumed.

The following table lists major encodings and generic  locale suffix values by which they are recognised; in addition  (as mentioned above), a large number of locale names without  encoding suffix as found on various systems in known to mined  and will cause it to assume the corresponding terminal encoding.

- *Unicode:* UTF-8

  *suffixes:* .UTF-8 / .utf8

- *Traditional Chinese (Hongkong):* Big5 with HKSCS

  *suffixes:* .BIG5\* / .Big5\* / .big5\* / \_HK / \_TW (\_TW ambiguous, following encoding overrides)

- *Simplified Chinese:* GB18030 (includes GBK and GB2312)

  *suffixes:* .GB\* / .gb\* / .EUC-CN / .euccn / \_CN.EUC / \_CN

- *Traditional Chinese (Taiwan):* CNS (EUC-TW)

  *suffixes:* .EUC-TW / .euctw / .eucTW / \_TW.EUC

- *Japanese:* JIS / EUC-JP

  *suffixes:* .EUC-JP / .eucjp / .eucJP / .ujis / \_JP.EUC / \_JP / .euc (.euc ambiguous, more specific string overrides)

- *Japanese:* Shift-JIS

  *suffixes:* .Shift\_JIS / .shiftjis / .sjis / .SJIS

- *Korean Unified Hangul:* UHC (includes EUC-KR)

  *suffixes:* .UHC / .EUC-KR / .euckr / .eucKR / \_KR.EUC / \_KR

- *Korean:* Johab

  *suffixes:* .JOHAB

- *Vietnamese:* VISCII

  *suffixes:* .viscii

- *Vietnamese:* TCVN

  *suffixes:* .tcvn

- *Thai:* TIS-620

  *suffixes:* .tis\* / .TIS\* / \_TH / .iso8859\[-\]11 / .ISO8859\[-\]11

- *Latin-9:* ISO 8859-15

  *suffixes:* @euro / .iso8859\[-\]15 / .ISO8859\[-\]15

- *Cyrillic:* ISO 8859-5

  *suffixes:* @cyrillic (unless preceded by uz\_UZ which indicates UTF-8)

- *Latin or other:* ISO 8859 encodings

  *suffixes:* .iso8859\[-\]N / .ISO8859\[-\]N (with number N)

- *Russian Cyrillic:* KOI8-R

  *suffixes:* .koi8r

- *Ukrainian Cyrillic:* KOI8-U

  *suffixes:* .koi8u

- *Tadjikistan Cyrillic:* KOI8-T

  *suffixes:* .koi8t

- *Russian, Ukrainian, Bjelorussian Cyrillic:* KOI8-RU

  *suffixes:* .koi

- *MacRoman:*

  *suffixes:* .roman

- *Windows Latin:* CP1252

  *suffixes:* .cp1252

- *Windows Cyrillic:* CP1251

  *suffixes:* .cp1251

- *PC Latin:* CP850

  *suffixes:* .cp850

- *Windows Hebrew:* CP1255

  *suffixes:* .cp1255

- *Georgian:* Georgian-PS

  *suffixes:* .georgianps

- *Kazachstan Cyrillic:* PT154

  *suffixes:* .pt154

*Examples:* To indicate that mined is running in a  UTF-8 terminal (normally auto-detected, included here for  demonstration) and should assume GB18030 text encoding by  default, invoke either of:

- LC\_ALL=whatever.UTF-8 TEXTLANG=zh\_CN.gbk mined

  - LC\_CTYPE=whatever.UTF-8 TEXTLANG=chinese mined

  - LANG=whatever.UTF-8 mined -EG

  - LC\_ALL=en\_IN mined -E.gbk

  - mined +EU -E.EUC-CN

  - mined +EU -E=GB18030

  - mined +EU -E:GB

  *Selecting UTF-16 text mode:* To tell mined to  interpret a file (or make a new file) in UTF-16 encoding, use  the following command line options (first two little endian,  then big endian):

- mined -E:61

  - mined -E=UTF-16LE

  - mined -E:16

  - mined -E=UTF-16BE

  - mined -E=UTF-16

  *Selecting ASCII terminal mode:* To tell mined to  assume that a terminal cannot display anything but ASCII  characters, use the command line option  +E:AS. Mined implicitly assumes this setting if the environment  variable TERM indicates a VT52 terminal.

### PC terminals

Character encoding of PC terminals is an even greater mess  than on Unix systems. Mined provides heuristic best-guess  assumptions about terminal encoding, supporting both local  invocation as well as remote login from a PC (e.g. to a Unix  machine).

The following assumptions are made based on environment variables  or command-line parameters:

- encoding ("codepage")

  environment\
   option\
   examples

- CP850 (PC mapping of Latin-1 character set)

  TERM=ansi, ansi-nt, pcansi\*, hpansi\*, interix\* *or* TERM=cygwin and CYGWIN contains "codepage:oem" *or* LC\_\*/LANG indicates ".CP850"\
   \+EP\

- •

  Windows console (DOS prompt) window

- •

  Windows console mode telnet (even if called from cygwin  console, sets TERM=ansi)

- CP437 (IBM PC VGA encoding)

  TERM=nansi\*, ansi.\*, opennt\*, \*-emx\* *or* LC\_\*/LANG indicates ".CP437"\
   \+Ep\

- •

  plain DOS

- CP1252 (Windows ANSI extension of Latin-1)

  TERM=cygwin (unless LC\_\*/LANG or CYGWIN indicates  other encoding)\
   \+EW\

- •

  cygwin console (emulation in Windows console window)

- •

  cygwin telnet/rlogin called directly from Windows console window  (see note below for remote setting)

- •

  cygwin mined called directly from Windows console window

- •

  older Windows GUI telnet (sets TERM=ansi)

- UTF-8

  LC\_\*/LANG indicates ".UTF-8" *or*  (for cygwin 1.7 beta) TERM=cygwin and CYGWIN contains "codepage:utf8"\
   \+U\
   →NEW→

- •

  cygwin 1.7 console or application configured for UTF-8 mode

  - •

    Note: Windows console in UTF-8 mode provides extended Unicode  font support if you select "Lucida Console" TrueType font from its  Properties menu.

- →NEW→ other codepages

  LC\_\*/LANG indicates codepage, e.g. ".CP1250" or ".CP858"\
   *or triggered by DOS codepage information (djgpp version, see note)*\
   \+E=CP1250 or other codepage, or respective shortcut\
   →NEW→

- •

  cygwin 1.7.0-45 console or cygwin 1.7.0-46 application  configured for respective codepage

*Note:* It is not unlikely that the assumption about the terminal  encoding taken by mined does not match the actual terminal  encoding (e.g. mined cannot determine the encoding based on  the ambiguous setting TERM=ansi). Environment variables that  indicate the character encoding are unfortunately not maintained  through telnet or remote login.\
 Explicitly setting TERM to a suitable value after remote login  or explicitly setting the locale variables, e.g. LC\_CTYPE,  may help but may not always work either (e.g. pcansi is not a  known terminal on SunOS; some systems like SunOS are dogmatic  about interpreting locale variables which strictly need to be  installed before; not all encodings, esp. PC "codepages", are  known as a "locale charmap" on other systems).\
 In these cases, you can use the explicit +E  option to force mined to assume a specific terminal encoding;  see the option values listed above for the main DOS encodings.

*Note:* The encoding emulated by cygwin (as configured, by default  Windows Latin codepage CP1252) is not the encoding natively applied  by the Windows console window (by default DOS codepage CP850). This means that the effective encoding may be different if you  invoke the cygwin-compiled mined version and the  djgpp-compiled mined version alternatingly; you may notice this  by a different range of characters that can be displayed when  opening the same file with the two mined versions.\
 Some Windows Latin characters are poorly displayed by the  Windows console in default configuration; mined 2000.13 introduced  a workaround to indicate those character by a more suitable  substitution instead. →NEW→  This workaround is withdrawn to support cygwin 1.7 which can  display all characters properly if the Windows console font is  configured to "Lucida Console" rather than "Raster Fonts".

*Note:* →NEW→  The following DOS codepages are supported; they are mainly provided  as terminal codepages, they do not appear in the Encoding menu.  However, if you need, you can ask mined to use them as either  the assumed terminal encoding (e.g. +E=CP1250 or +E:WE) or  even text encoding (e.g. -E=CP1250 or -E:WE) using the names  or shortcuts from the list:

- CP437

  PC\
   DOS US

- CP737

  37\
   DOS Greek

- CP775

  75\
   DOS Baltic

- CP850

  PL\
   DOS Western European

- CP852

  52\
   DOS Central European

- CP853

  53\
   South European, Esperanto

- CP855

  55\
   DOS Cyrillic

- CP857

  57\
   DOS Turkish

- CP858

  58\
   DOS Western, CP850 with Euro symbol

- CP860

  60\
   DOS Portuguese

- CP861

  61\
   DOS Icelandic

- CP862

  62\
   DOS Hebrew

- CP863

  63\
   DOS French Canadian

- CP864

  64\
   DOS Arabic

- CP865

  65\
   DOS Nordic

- CP866

  66\
   DOS Russian

- CP869

  69\
   DOS Modern Greek

- CP874

  TI\
   Windows Thai, superset of ISO-8859-11/TIS-620

- CP1125

  25\
   DOS Ukraine

- CP1250

  WE\
   Windows Central European

- CP1251

  WC\
   Windows Cyrillic

- CP1252

  WL\
   Windows Western European

- CP1253

  WG\
   Windows Greek

- CP1254

  WT\
   Windows Turkish

- CP1255

  He\
   Windows Hebrew

- CP1256

  WA\
   Windows Arabic

- CP1257

  WB\
   Windows Baltic

*Note:* For the djgpp version of mined, even the font chosen for the  Windows console window may affect the effective display encoding. Configure "Raster Fonts" (except of size "10 x 20"!), not  "Lucida Console" in order to make sure the effective visual  codepage is the same as the one selected with the respective  DOS tools (e.g. chcp) and assumed by mined.

*Note:* The djgpp version of mined running in a UTF-8 mode console  (e.g. with cygwin 1.7) cannot handle this and is confused  by the according setting of locale variables.

*Note:* →NEW→  Mined (djgpp) tries to determine the DOS/Windows codepage  using the DOS API; this can only work if the codepage was  properly configured with DOS means (e.g. with CP858 using  CHCP 858 or MODE CON CP SELECT=858, maybe enabled by  DEVICE=...\\DISPLAY.SYS CON=(EGA,858) on old DOS, or  MODE CON CP PREP=((codepage list) ...\\ega.cpi) );  if only the font is switched to a differently encoded one,  there is no way to detect this.\
 *Sub-Note:* This feature has not yet been tested. If detection does not work, you can still use environment setting  or the +E option as mentioned above  to indicate the terminal encoding.

*Note:* Running mined (djgpp) in a dosemu session (DOS emulator on Linux)  works fine, even in an xterm-embedded session although not  perfectly in that case: ^S and ^Q are interpreted for flow  control (thus ^S will hold all output until ^Q is entered),  and the mined option -Qa should be  used to tune menu borders right.

### Terminal setup

The Mined runtime support library  includes a configuration file Xdefaults.mined  which lists settings that should be applied to the terminal  for proper operation of several features as described  throughout this manual.

In some terminals, the cursor may not be well visible or not  visible at all if the cursor is on a character  with reverse background (control character, occurs e.g. in xterm)  or highlighted background (invalid character code, occurs e.g.  in xterm and rxvt). See the X resource parameters for "cursorColor" in the example  configuration file Xdefaults.mined for remedy.

If your terminal scrolls down one line when you click the left  mouse button in the text area, the terminal type is not  properly set up. This occurs, e.g., when you run inside  a cygwin or rxvt terminal but the environment variable TERM  is incorrectly set to xterm. Set it to the correct value for remedy.

If mouse wheel movement moves more than expected, especially  if it cannot move by single items in a menu, this is probably  a configuration issue with your mouse driver. You are probably running a Windows-based X server which is  (often by default) configured to generate multiple mouse  wheel events on each actual mouse wheel movement. Often not even in the Control Panel mouse section, but only  in a configuration menu of mouse-specific setup software  (e.g. "Browser Mouse Settings"), configure the scroll unit to 1.

### Terminal interworking problems

With some terminals, problems are known due to missing terminal  features or terminal bugs:

**any terminal: menu border display**

- •

  If the borders of mined menus appear as letters rather  than graphic borders, the terminal can unexpectedly not handle  VT100 block graphics. Use the option -Qa  to switch to ASCII borders, or -fff  to limit font assumptions.\
   In a UTF-8 terminal, mined uses Unicode Box Drawing  characters by default. If they don't display they are missing in the font used by the  terminal. Use the option -Qv to switch to  VT100 block graphics or -Qa to  switch to ASCII graphics. If borders are visible but without  corners, use -Qs to switch to  rectangular borders.

**any terminal: slow terminal feature auto-detection**

- •

  Occasionally, when starting mined, you may receive a message  "Late screen mode response - set ESCDELAY=2000 or higher for proper detection".\
   This happens if there is a large delay (\> 700 ms) in the  interaction mined uses to detect terminal properties. There are two possible reasons for this:

  - •

    A slow remote terminal connection. In this case, set up your environment variable ESCDELAY to a  value (in milliseconds) large enough to cover the anticipated  delay, e.g.: export ESCDELAY; ESCDELAY=3000

  - •

    Font loading. Especially with rxvt and mlterm, X fonts seem  to be loaded partially on demand. While this speeds up initial  terminal operation, it also results in unexpected delays of  terminal responses. In this case, exiting mined and starting  again will normally resolve the issue for one session of the  terminal. For a more permanent remedy, also use the  environment variable ESCDELAY when using those terminals, e.g.: export ESCDELAY; ESCDELAY=1200

  Automatic handling of the situation is planned for the next  release of mined.

**mlterm**

- •

  Bidirectional display handling of mlterm is based on the  final display, not regarding any context (such as positioning  control, that's why mined implements a workaround for menu  display on mlterm). This also affects mouse cursor position  reports which do not match over right-to-left text, so the  cursor will be placed somewhere else in the line.

- •

  The Mined runtime support library  includes a configuration file mlterm/key which  defines enhanced escape sequences for function keys and  other modified keys in order to enable the functionality  described in this manual. It is essential to use this configuration especially for the  HOP key (keypad "5") which is oppressed by mlterm by default,  and also for Control-punctuation accent prefix functions, and  some others.

- •

  *Note:* Mouse wheel scroll navigation in menus  does not work seamlessly in mlterm because mlterm sends incorrect  escape sequences on mouse wheel scrolling.

**xterm**

- •

  Although it is a waste of keyboard resources to have two  indistinguishable sets of keypad keys, most terminals provide  no means of distinguish them towards the applications, at least  not by default. Especially for a text editor, it is highly  desirable to distinguish them in order to have a rich intuitive  function key mapping at disposition which mined tries to achieve.\
   Remapping keypad keys in a useful way is sensitive  because it may create incompatibilities with other programs  that rely strictly on installed terminfo information. Mined  provides remapping recommendations for shifted keypad keys  (with Shift, Control, Alt and combinations of them) in the  configuration sample file Xdefaults.mined in the Mined runtime support library.\
   Due to the compatibility limitations mentioned above, however,  the two Ins keys remain indistinguishable, and the two Del keys  are only distinguishable if the xterm configuration resource  \*VT100\*deleteIsDEL is set. Also, keypad and function key  modification with the Alt is ensured with the xterm resource  \*VT100\*metaSendsEscape. Both resources are set to true in the  configuration sample file just mentioned.\
   These two resources can also be set dynamically with xterm.  Mined can be told to do so with the command line option  +D. (Unfortunately this handling cannot be enabled by default as  it cannot be undone because the previous state cannot be  detected.)

- •

  Mined determines the xterm version in order to apply  certain workarounds conditionally.

- •

  If you run xterm in VT220 keyboard mode (using xterm option  -kt vt220 or setting the configuration resource \*keyboardType:  vt220) you should make sure to also set the environment  variable TERM=vt220 (e.g. using the xterm option -tn vt220 or  setting the configuration resource \*termName: vt220) so mined  can properly set up the keypad functions.

- •

  If you run xterm with the resource modifyCursorKeys or  modifyFunctionKeys set to value 1, mined will recognize the  according keyboard sequences with the environment variable  setting TERM=xterm-sco.

**xterm on cygwin**

- •

  On cygwin, as on other systems, the script uterm  is recommended to invoke an xterm that is properly configured  to run UTF-8, and also to use a best choice of fonts for optimal  Unicode coverage. See README.cygwin for more detailed advice.

**xterm legacy CJK width mode**

- •

  Mined auto-detects and supports xterm legacy CJK width  compatibility mode (xterm -cjk\_width); character  width and menu border layout are properly adjusted, stylish  menu borders (-QQ) and fine-grained  scroll bar display are disabled by default. (Note: In this mode, combining characters could unexpectedly  change the width of a character by being substituted with its  wide precomposed form (e.g. 'a' combined with U+0300) -  which an application can hardly handle; this bug was fixed in  xterm 224 with a patch contributed by the mined author.)

**rxvt**

- •

  When starting mined in a fresh rxvt terminal, and maybe  even after starting your X server, some display (font?)  initialization may take extremely long, resulting in an error  message. Restart mined to ensure proper terminal properties  auto-detection.

- •

  Rxvt does not distinguish between Shift-F1 and F11 /  Shift-F2 and F12 / Ctrl-Shift-F1 and Ctrl-F11 / Ctrl-Shift-F2  and Ctrl-F12, so that the F1 and F2 keys modified with Shift  cannot be recognised in rxvt by default. →NEW→  They can however be enabled with the keysym definitions in  the file Xdefaults.mined in the Mined runtime support library.

- •

  In rxvt, the two keypad Del keys (small keypad, numeric  keypad) are automatically distinguished from each other and  invoke the Delete character (small keypad) and Cut (numeric  keypad) functions, respectively (Ctrl-/Shift-/Alt-  alternatives are supported as described in this manual). This works, however, only if mined can recognise rxvt; it is  generally a bad idea to set TERM=xterm in rxvt, see also  hint below.

- •

  Also in rxvt, the two keypad Ins keys (small keypad left,  numeric keypad right) are distinguished. The left Ins key  positions the cursor left of the pasted region, the right Ins  key positions it right.

- •

  By setting rxvt in the mode that enables distinction between  the two keypads, it can unfortunately not distinguish the  right keypad modified with Ctrl- anymore, so Ctrl-Home/End/Del  cannot work as desired.

- •

  Ctrl-modified punctuation keys can be enabled by  following the configuration samples of the file  Xdefaults.mined in the Mined  runtime support library.\
   Note: Ctrl-modified and shifted punctuation keys  interfere with ISO 14755 input mode of rxvt; if the following  key is entered twice, that mode is aborted and the modified  punctuation key becomes effective as an accent prefix in mined.

- •

  The recent rxvt-unicode release provides a CJK terminal  emulation. CJK display is buggy for characters that rxvt  thinks cannot be displayed, especially for GB18030  (LC\_CTYPE=zh\_CN.gb18030 rxvt) but also e.g. for JIS  (LC\_CTYPE=ja\_JP.eucjp rxvt); single bytes are then interpreted  instead which amounts to an unpredictable screen width and  cannot be correctly handled. (This applies mainly to character codes that are not mapped to  Unicode but also to many that are mapped.)\
   Moreover, CJK width handling is inconsistent for many  characters in rxvt CJK mode (rxvt claims to adhere to the  locale mechanism in this respect but that's not the case here -  character widths are inconsistent with the locale, too).\
   *Remedy:* Don't use rxvt in CJK-encoded mode; mined  CJK terminal support is tailored to native CJK terminals (such  as cxterm, kterm, hanterm) where it works fine - if you use a  UTF-8-capable terminal, use it in UTF-8 mode! Mined can edit  CJK-encoded files well in a UTF-8-encoded terminal.

- •

  In rxvt, Unicode characters that are Not Assigned are  always displayed as a single-width replacement character. This  is not consistent with xterm behaviour which would display  them as a double-width replacement if they are located within  a double-width Unicode range (which sounds reasonable). This  would cause display positioning inconsistencies. Mined has a  workaround for some of these cases (assuming that rxvt runs  the most recent Unicode width data version available; or  actually the same as mined assumes - handling of multiple  auto-detected terminal Unicode versions does not cover this  special case).

- •

  If the X windows servers has duplicate fonts installed under  a common name (e.g. if it comes with a 10x20 non-Unicode font and  you install a 10x20 Unicode font in addition), rxvt seems to use  the wrong (i.e., non-Unicode) version of the font and does not  find special characters like the default marker used in the flags  menus (this was observed since rxvt 7.5, rxvt 5.8 was finding the  proper font). Use the mined option -F to  adapt mined to limited font usage, or fix the X server installation. Or use the script uterm to start rxvt-unicode. To  start rxvt-unicode from an xterm, use uterm -rx.

- •

  Due to the scrollbar display workaround for hanterm (see  above), the scrollbar position may be shown as blank space  instead of coloured (only in rxvt CJK mode with Korean encoding  and if you explicitly set TERM=xterm which you shouldn't  anyway in rxvt). In this case, coloured scrollbar foreground can be enabled  with the environment variable MINEDSCROLLFG="44;36" or  MINEDSCROLLFG="38;5;45".

- •

  As a workaround for an xterm bug on cygwin, mined applies  terminal size re-adjustment. This may confuse rxvt (being  resized to an unexpectedly large window) if it pretends to be xterm.\
   *Remedy:* in rxvt, make sure that the environment  variable TERM=rxvt (or rxvt-unicode); the according X resource  (Rxvt.termName: rxvt) is also listed in the file  Xdefaults.mined in the Mined runtime support library.

- •

  Mined determines the rxvt version in order to use certain  features conditionally.

- •

  CJK-mode rxvt: rxvt has some character width bugs when running  in CJK encoding; e.g. when running rxvt in Big5 terminal encoding  (locale zh\_TW), U+FA18 is displayed with wrong screen width  while in older version U+FFED was display with wrong screen width; when running rxvt in Shift-JIS terminal encoding, a number of  character width bugs occur. Mined does not implement workarounds  for those; in general UTF-8 terminal encoding is advisable to be  on the safe side.

**urxvt**

- •

  This is rxvt-unicode as packaged for cygwin. Invoke it with  a proper locale environment variable set to enable UTF-8. See also README.cygwin for more detailed hints.

**cxterm**

- •

  EUC-JP half-width characters (8EA1-8EDF) are not properly  displayed by cxterm in EUC-JP mode (cxterm -JIS, not available  in "classic" cxterm).

- •

  Due to the scrollbar display workaround for hanterm (see  above), the scrollbar position may be shown as blank space  instead of coloured (only in Korean encoding mode which is  probably rarely used with cxterm anyway). In this case, coloured scrollbar foreground can be enabled  with the environment variable MINEDSCROLLFG="44;36" or  MINEDSCROLLFG="38;5;45".

**kterm**

- •

  Auto-detection of kterm as a CJK terminal works if the  environment variable TERM indicates "kterm"; otherwise mined  has to be told that it runs in a CJK terminal and which  encoding to use:\
   For kterm -km sjis, set LC\_CTYPE=ja\_JP.sjis (or invoke mined +ES).\
   For kterm -km euc, set LC\_CTYPE=ja\_JP.eucjp (or invoke mined +EJ).

- •

  *Note:* Mouse wheel scroll navigation in menus  does not work seamlessly in kterm because kterm sends incorrect  escape sequences on mouse wheel scrolling.

- •

  *Note:* By default (i.e., without explicit -km  option or corresponding \*vt100.kanjiMode resource configured),  kterm runs in ISO 2022 mode (yes, it does indeed) which is not  supported by mined.

**hanterm**

- •

  CJK display is buggy at the line beginning or after a Tab,  often only the second byte of the character code is displayed  as an ASCII character instead of displaying the complete CJK  character.

- •

  Character attributes in hanterm used to be all mapped to reverse,  so there was a workaround to enable a visible position in the  scrollbar which is displayed as blank space. The criteria for  this workaround to apply are: CJK terminal (detected or  configured), TERM=xterm, Korean encoding (UHC or Johab)  configured with parameter or locale. Replaced to enable nicer  colours in scrollbar. To reactive workaround for older hanterm,  set environment variable MINEDSCROLLFG="0".

**konsole**

- •

  Due to the lack of decent Unicode font support in the default  configuration of the KDE konsole terminal, menu appearance  options -QQ and  -Qr should not be used; rounded  borders are disabled by default.

- •

  The Mined runtime support library  includes a configuration file konsole/xterm-modified.keytab  which defines enhanced escape sequences for function keys and  other modified keys in order to enable the functionality  described in this manual. Unfortunately, the qt framework  used by konsole inhibits the use of some keys and many key  combinations.

- •

  It is especially irritating that konsole disregards  the middle keypad key ("5" in application mode) completely;  so the mined HOP function has to be invoked by alternative means.\
   As a remedy, the HOP function is assigned to the "Menu" key  (next to the "Windows" key on PC keyboards) in the configuration  sample file mentioned above  →NEW→  and is also assigned to the Menu key by default.\
   An additional remedy could reassign the middle keypad key  to the X key symbol Menu (using xmodmap); →NEW→  invoke the script kp5 in the  Mined runtime support library for this purpose.

**gnome-terminal**

- •

  The gnome-terminal captures a number of Alt-letter key  combinations for its own menu access (which can however also  be controlled with the mouse). To disable this unpleasant capturing, so e.g. mined can open  its own menus with Alt-letter, configure as follows:\
   Open menu "Edit" - "Keyboard Shortcuts..." and  check "Disable all menu access keys". Even then, however, F1 and  Ctrl-F1 are suppressed by this quirky terminal.

- •

  This terminal does not supported modified keys (e.g. shifted  keypad keys).

- •

  Mined implicitly assumes its -f  option (for limited font usage with respect to graphic  characters) when detecting gnome-terminal.

**Linux console**

- •

  Shifted function key codes are "shifted" by 2 as compared  to other terminals' function key codes. →NEW→  Mined detects F11, F12, Shift-F1...Shift-F8 properly, further  modified function keys are apparently not supported in the  Linux console.

**screen** Screen, like luit (see below), is a middle layer between the  actual terminal and the user terminal environment. Unfortunately, screen does not pass character width handling  of its host terminal transparently to the application but  apparently it maintains cursor position information with  reference to the system-installed locale data. Which, however,  does not always reflect the terminal properties! →NEW→  Yet mined detects the proper width properties of the host terminal  (by using pass-through escape sequences of "screen") but  only if the environment variable is set to "screen" (the default  of "screen").

**MinTTY** MinTTY is a Windows-based (non-X) terminal running with cygwin. Mined auto-detects MinTTY and adjusts certain properties and  features accordingly.

- •

  →NEW→  Mined detects font changes that change the CJK ambiguous  character width properties of the terminal when notified by  MinTTY (to be introduced in MinTTY 0.4 or above), if running  in UTF-8 mode.

- •

  For good coverage of Unicode characters, recommended fonts  for use with MinTTY are Lucida Console, Courier New, Andale  Mono, SimSun. Discouraged are Lucida Sans Typewriter, Letter  Gothic, Courier, Monaco, and older MS CJK fonts, at least for  their lack of (proper) graphic characters (for menu borders).

- •

  For proper usage of Unix-like keyboards functions, the  following settings are recommended for MinTTY: In Options - Keys, disable the Shortcuts "Window commands"  and "Copy and paste". In Options - Text, disable "Show bold as bright".

- •

  Note: With the command script wined  (also available as wined.bat), mined is invoked  in a separate Windows terminal session, using MinTTY if available.

**Cygwin console**

- •

  The cygwin console terminal emulation does not support  Shift-F1, Shift-F2 (which cannot be distinguished from F11, F12),  Shift-F11, Shift-F12, nor any Control or Alt modified function keys.

- •

  →NEW→  Mined detects UTF-8 mode of cygwin 1.7 console (by LC\_\*/LANG setting  or for cygwin 1.7 beta by CYGWIN containing "codepage:utf8").\
   Note: After rlogin from this console, UTF-8 indication has  to be ensured explicitly, e.g. by environment setting, or by  mined option +U.

- •

  Note: Cygwin console in UTF-8 mode provides extended Unicode  font support if you select "Lucida Console" TrueType font from its  Properties menu.

- •

  See also README.cygwin for more detailed hints on weird  details about the Windows console in different modes.

- •

  See also PC terminals above.

**Windows console window (DOS command prompt)**

- •

  The Windows console window is normally configured to run  in CP850 encoding; depending on Windows version or font, however,  it may also turn out to use CP437 instead. In this case, some  characters are replaced by graphic symbols, e.g. the sputnik  symbol "¤" used by mined as a replacement character for  non-displayable Unicode characters. This happens, e.g., with the  10 x 20 raster font. As a workaround, use a different font, e.g.  10 x 18 or Lucida Console. If you change the "active codepage",  stay with "Raster Fonts" configuration and avoid the "10 x 20"  size in order to make sure the effective visual codepage is the  same as the selected one and the one assumed by mined.

- •

  With the djgpp-compiled version apparently there is a  Ctrl-C problem on older Windows versions. Every first  Ctrl-C will display ^C on the screen at the current position  without mined noticing it, while every second Ctrl-C will  be passed to mined. This problem does not occur on Windows XP. It does occur on Windows ME in a Windows console window. It does not occur with the cygwin-compiled version.

- •

  See also PC terminals above.

**Poderosa**

- •

  This Windows terminal emulator can be used for UTF-8 editing. To ensure proper function, do not use Terminal Type "kterm"  or Encoding "euc-jp" or "shift-jis"

- •

  Mined auto-detection and terminal initialization can cause  Poderosa to display warning popups. To avoid them, Select  Tools - Options... - Terminal; for "Behavior in case of  unexpected chars", disable "Display a message box". If you get a notice "Failed to decode characters by the  current encoding utf-8.", click "Do not display this message  from next time".

- •

  Poderosa does not provide mouse support for applications.

**Terminator**

- •

  In Edit - Preferences, enable "Use alt key as meta key".

- •

  Terminator does not provide mouse support for applications.

**PuTTY**

- •

  This Windows terminal emulation for remote login provides  various keyboard (esp. keypad and function key) assignment  emulations. In SCO mode, shifted function keys are different  from those of xterm SCO function key emulation; both are  supported.

**luit**

- •

  The locale support add-on for text terminals luit which  applies encoding transformations (e.g. with LC\_ALL=zh\_CN.gb18030)  often maps characters incorrectly, including using the wrong  cell width.

### Work-around support to enable 8-bit character set on weird terminals

There exist some exceptionally weird 7 bit terminals that  have an alternative character set containing composed characters  which can be displayed simultaneously with the default character  set. For those there is optional output translation which  embeds non-ASCII characters into the respective code switching  sequences. To enable output character transformation, set the  environment variable MINEDOUT to contain the upper half (with  respect to an 8 bit character set) of the translation table  into the terminal's alternate character set. (Character set switching will be done as specified in the  termcap (as/ae) or terminfo (smacs/rmacs) entry.) An example setting of MINEDOUT is included in the environment  sample file profile.mined in the  Mined runtime support library  for Siemens 9780x terminals.

### Concerning some especially stupid terminal drivers

There used to be terminal drivers which make use of the  soft handshake mechanism by exchange of ^S and ^Q characters but  yet pass them through to application programs which is quite stupid. If it is necessary to ignore such hazardous ^S and ^Q keys,  the environment variable NoCtrlSQ or NoControlSQ must be set.  Mined will then not disable the tty channel soft handshake  setting either.

### Keyboard mapping / Input method pre-selection

With the environment variable MINEDKEYMAP the active or  standby mapping or both can be preselected. The value is a  two-letter script tag to set the active mapping, or it is  prepended with "-" to set the standby mapping, or a combination.\
 *Example:* export MINEDKEYMAP=-gr will set Greek keyboard mapping standby. export MINEDKEYMAP=py-rs will set Pinyin input method active and Radical/Stroke  input method standby.\
 The respective tags attached to the keyboard mappings can be  looked up in the Input Method flag menu; the HOP function  toggles between display of the full input method name and its tag.

### Smart Quotes style configuration

Smart quotes style can also be preselected with the environment  variable MINEDQUOTES which should then contain the  opening/closing quote pair or just the opening quote mark  (double or single quotes).\
 *Example:* export MINEDQUOTES="»" sets these »Danish« quotes and corresponding single smart quotes. export MINEDQUOTES="»»" sets these »Finnish» quotes and corresponding single smart quotes.\
 The value of the MINEDQUOTES variable must be encoded in UTF-8.

### Han info configuration

With the environment variable MINEDHANINFO, the information  shown for Han characters can be preselected. If the variable is defined, Han info mode is enabled. It may contain letters to select description, pronunciation  information, and display mode to be used:

- M

  show Mandarin pronunciation

- C

  show Cantonese pronunciation

- J

  show Japanese pronunciation

- S

  show Sino-Japanese pronunciation

- H

  show Hangul pronunciation

- K

  show Korean pronunciation

- V

  show Vietnamese pronunciation

- P

  show Hanyu Pinlu pronunciation

- X

  →NEW→ show XHC Hanyu Pinyin pronunciation

- T

  show Tang pronunciation

- D

  show character description

- F

  display full information (in popup-menu form);  without F, the information will be shown on the status line  where it is subject to truncation

### Common paste buffer configuration

The paste buffers, used for cut/copy/paste operations, as well as  the inter-window paste buffer, are located in a temporary  directory, using system conventions by default. To maintain the inter-window paste functionality even remotely,  mined uses the environement variables MINEDTMP and MINEDUSER  which, in combination, point to a user-defined temporary directory  and file name pattern to be used for buffer files:

- •

  Set MINEDTMP to refer to a common mounted network directory  on all machines which means that the value of $MINEDTMP may have  to be different to reflect different mount points across the network.

- •

  Set MINEDUSER to the same name within the network even if  using different user name accounts.

For details, see also the FILES section below.

### Keypad configuration

Some X configuration may have to be applied to enable keyboard  input features as used by mined:

- •

  Alt key modifier for quicker entry of "ESC" commands.

- •

  Assignment of the HOP function to the middle keypad key ("5").

- •

  Assignment of the HOP function to other keys  (especially for convenience on laptops which do not have the  numeric keypad), e.g. the Pause or Scroll Lock key.

- •

  Distinguish "Home" and "End" keys of the two keypads  in order to make use of this redundancy of typical keyboard layout  (which is actually a waste of physical resources, causing  unnecessary wrist strain because it increase the distance to  be moved over for reaching to the mouse).

- •

  Enable control and shift modifiers for keypad and function keys.

- •

  Enable control and shift modifiers for digit keys (for use  as accent prefix).

- •

  Enable control modifier for punctuation keys (for use  as accent prefix).

See the example file Xdefaults.mined in the  Mined runtime support library for suggestions.

### Printing configuration

Mined uses the script uprint from the  Mined runtime support library  to print the current contents of the text being edited  in any selected encoding (unless the environment variable  MINEDPRINT is set to direct mined to use a different print command).\
 If the support library is not installed in one of its  standard locations (system-dependent), it should be made  available in the usual command search path. The script uses either paps or  uniprint for actual formatting (print preprocessing). →NEW→  Under Windows, if neither paps nor  uniprint happens to be installed,  uprint uses notepad /p for printing. The djgpp-compiled version calls notepad /p directly.\
 paps is available at  http://paps.sourceforge.net/ and uses the Pango layout  engine for formatting. uniprint is part of the yudit distribution; if  you don't have it installed on your system, there is another  script makeprint in the support library which can  be used to download and build the needed uniprint program. The mined print script (uprint) prefers  paps if it is available as it has more capabilities  for printing a wide range of Unicode characters, and it does  right-to-left formatting.\
 The font to be used with uprint can be configured with  the environment variables FONT, FONTPATH, FONTSIZE. Also the printer can be configured as usual with PRINTER. In addition, uprint checks an environment variable LPR for  an alternative for the system printing command (lpr/lp) if  that is needed.\
 *Note:* If printing with uprint fails for  some reason, mined tries to print with either the print  command configured in the environment variable LPR as a fallback,  or with lp/lpr as a last resort. Working character encoding  support cannot be expected in this case, however.\
 See Environment variables to configure Printing  for further details.

### Display layout

Some of the special indication characters (that substitute  non-displayable contents) and some of the colours used by mined  for special indications and interactive elements may be  configured to the user's preference.\
 *Note:* For the configurable character indications, two  environment variables exist each, to configure an 8 bit value  (Latin-1 encoded) and to configure a Unicode value (UTF-8 encoded). The UTF-8 encoded values (e.g. MINEDUTFRET) take precedence  in a UTF-8 terminal. In an 8 bit terminal, or if the respective  UTF-8 variable is not configured, the Latin-1 encoded value applies. See the example script profile.mined  in the Mined runtime support library for  more details and for a number of suggestions of suitable values. Mined does not apply any default non-Latin-1 indications in order  to avoid display problems with fonts that do not support them. Depending on your visual preference, there are a number of suitable  Unicode characters for use as indications especially in the Unicode  ranges of Arrows, Geometric Shapes and Symbols (U+2190-U+2BFF).\
 *Note:* For the Latin-1 encoded configured indication  markers (variables MINEDRET etc, not MINEDUTFRET etc), if the  configured character is in the small letters range (actually \
  '\`'...DEL) the alternate character set is used for display.  This works also in a UTF-8 terminal, provided that the  corresponding UTF-8-encoded indication configuration variable  is not set, e.g. MINEDRET=j MINEDUTFRET= (or not defined)  would indicate line-ends by displaying a graphic lower right  corner, MINEDTAB='\`' MINEDUTFTAB= (or not defined) would indicate  Tab characters with vt100 block graphics lozenge rhombs.\
 *Note:* For the UTF-8-encoded configured indication  markers (variables MINEDUTFRET etc), if the marker is a  double-width character, a replacement will be displayed instead.\
 *Note:* Mined reduces its assumptions about available  graphic and special characters for display purposes with the  options -f or -F. The -F option also suppresses the  interpretation of the MINEDUTF\* environment variables.

### Line ends

Line ends are usually marked by a "«" double left angle character. This visual indication can be changed with the environment variable  MINEDRET (8 bit terminals) or MINEDUTFRET (UTF-8 terminals). The default or configured marker is used as an indicator at  the end of every text line on screen (so you can see how many  blank spaces there are).\
 Multi-character markers: If a second character is configured,  it is used to fill the rest of the screen line, a third  configured character would terminate the indication at the end  of the screen line. ("··«" is a nice setting for people who  used to work at Siemens terminals.) Pattern: MINEDRET=123	# line end displays as 122222223 Suggestion for a nice line end on UTF-8 mode terminals  (check if character is included in your font, however!): MINEDUTFRET=&#9166;	# U+23CE

The indication of DOS line ends (CRLF) and Mac line ends (CR)  may be configured with the variables MINEDDOSRET or MINEDUTFDOSRET,  and MINEDMACRET or MINEDUTFMACRET, respectively. →NEW→  They are also distinguished by different colours.

### Paragraph ends

With the option -p, mined displays  distinct indicators for line ends and paragraph ends. A paragraph is defined to continue while lines end with white  space (space or Tab character). The default paragraph marker is "¶" and is also used to indicate  a line ending with a Unicode Paragraph Separator. It can be  changed with the environment variable MINEDPARA or MINEDUTFPARA.

### Tab characters

Tab characters are usually indicated by a sequence of '·'  (middle dot) characters. This can be changed with the environment variable MINEDTAB  (8 bit terminal) or MINEDUTFTAB (UTF-8 terminals).\
 Multi-character markers: If two characters are configured,  the second is used to mark the middle of the Tab span. If three  characters are configured, the first and last are used to mark  the beginning and end of the Tab span. Pattern: MINEDTAB=123	# Tab displays as 12222223 MINEDTAB=12	# Tab displays as 11112111

### Long lines

Lines which are too long for the screen are usually indicated  by a '»' double right angle (guillemot) character. If the current  position is behind the screen margin, the line is shifted out left  which is indicated by a '«' double left angle. These markers can be changed with the environment variable  MINEDSHIFT or MINEDUTFSHIFT. The first character is used to  indicate a line continued to the left of the screen, the second  character is used to indicate a line continued to the right of  the screen.

### Unicode characters

For a description of special display indications in UTF-8 text  editing mode see "Unicode display" above. The indication and highlighting mode of a non-displayable Unicode  character (typically a UTF-8 character in a Latin-1 terminal),  as well as the highlighting mode (colour) of the indication of  illegal UTF-8 sequences, can be configured with the variable  MINEDUNI.

### Display mode of indicators

It is recommended to display these indicator characters in a dim  display mode to prevent distraction from the text contents. The  default is a red colour which is a moderate dark red in xterm. The display mode can be used by placing the code part of an ANSI  display control sequence in the environment variable MINEDDIM. E.g., MINEDDIM=31 would select the default mode, red foreground; in xterm only, MINEDDIM="38;5;83;38;5;245" gives a moderate gray  in either 88 or 256 color mode; in rxvt only, MINEDDIM="38;5;83" gives a moderate gray.\
 →NEW→  MINEDDIM can also be set to an empty value to have mined apply  dim colour to the indications; the colour value is computed  from the current foreground and background colours (works  in xterm). The ANSI colour 7 (white) is temporarily  redefined for this purpose and restored when mined exits.

### Display mode of menu borders

→NEW→  The display colour of menu borders and menu headers can be  configured with the environment variable MINEDBORDER. Suitable values are "35" (magenta), "34" (blue) and "31" (default).

### Status line highlighting

Highlighted parts of status line messages (e.g. initial letters  for help selection after F1) can be configured with the  environment variable MINEDEMPH, using foreground ANSI modes. The default is "31" (effectively red background).

### Scrollbar colour

The foreground and background colours of the scrollbar can  be configured with MINEDSCROLLFG and MINEDSCROLLBG, respectively,  using ANSI modes; if only the background is configured,  the foreground is the reverse of it. In general, to support  fine-grained scrollbar display in UTF-8 terminals, the  foreground and background colour settings should be the  reverse of each other. The default for the background is "46;34;48;5;45" if  use of 256 colour mode is enabled, or "46;34" if it is disabled. The default for the foreground is "", meaning that the reverse  background is used, with a workaround for hanterm (see above).

### Menu colour and border style

The highlighting background colour of the selected menu item  can be configured with MINEDSEL, using reverse ANSI modes (i.e.  using foreground parameters for the background) and MINEDSELFG  for the foreground, using reverse ANSI modes. The default values  are MINEDSELFG="43" and MINEDSEL="34", giving yellow on blue. If selected menu items appear too dark (which mined tries to  avoid, depending on the terminal), try one of the workarounds  MINEDSEL="34;1" or MINEDSELFG="43;1".\
 Menu border styles can be selected with the option  -Q. For a nice selection bar that extends from left to right menu  border, the setting -QQ is  recommended (this is the default unless the terminal is  assumed not to provide sufficient font configuration for this  option; it depends on certain graphic Unicode characters being  included in the terminal font and can be disabled with  -Qq).

### Combining character display

The highlighting background colour of combining characters  displayed in separated mode can be configured with  MINEDCOMBINING, using ANSI background modes. The default value is MINEDCOMBINING=46, to change colour e.g.  to yellow background, use MINEDCOMBINING=43.

### Online Help access

Mined looks for its online help file in a number of typical  directories for installation of the Mined runtime support library. If it is placed in a non-standard location, the environment  variable MINEDDIR should point to the directory. (Mined also tries to find the online help file in the directory  where it was started from; this is especially useful for the  DOS/Windows version.)

### Mined configuration

### Script highlighting

The the mined distribution contains a file  src/colours.cfg; it contains entries with the  script name (as listed in the Unicode data file  Scripts.txt), blank space, and a colour index  into the xterm 256-colour mode. (To make good use of 256  colour mode, the terminal program should be compiled with 256  colour support enabled. Configure xterm with  configure \\-\\-enable-256-color .)\
 Edit colours.cfg before building mined to  adapt coloured script display to your preferences.

### Encodings and Encoding menu

The mined distribution contains a file src/charmaps.cfg  which defines the character encodings that mined knows and how  they are presented in the Encoding menu, together with flags for  indication in the Encoding flag and tags for use with the  -E and +E  options (and the MINEDDETECT environment variable).\
 The configuration file allows the definition of sub-menus in the  Encoding menu.\
 Each character encoding entry charmap-name must  correspond to an existing character mapping file  charmaps/charmap-name.map. Additional character mappings can be generated with the script  mkchrmap.

### Encodings recognised by locale names

The mined distribution contains a file src/locales.cfg  which maps locale names to associated character encodings. While this list contains mainly locale names without explicit  encoding suffix, mined also checks generic locale name suffix  values and assumes the corresponding terminal encoding. Thus the given names or suffixes can be used even on legacy  systems without locale support to indicate the terminal  environment and preferred text encoding properly to mined.

### Keyboard mapping (Input method)

The mined distribution contains a file src/keymaps.cfg  and a script mkkbmap; go into the  src directory and use the script to generate  additional keyboard mappings: The parameter to the mkkbmap script can be one of

- path.../name.mim

  a keyboard mapping file of the m17n-db multilingualization package

- path.../name.kmap

  a keyboard mapping file of the yudit text editor

- path.../name.vim

  a keyboard mapping file of the vim text editor

- path.../name.cit

  an input method mapping file of the cxterm terminal,  binary form; only works if the cxterm binary/text  conversion utility cit2tit is accessible

- path.../name.tit

  an input method mapping file of the cxterm terminal,  text form; only works if the character set  conversion utility iconv is accessible and  works on the mapping file

- path.../name.utf

  an input method mapping file of the cxterm terminal,  already converted to UTF-8 encoding (e.g. with iconv)

- Cangjie \[ \< HKSCS Changjie table file name \> \]

  with this tag, a keyboard mapping for the Cangjie input method  will be generated, taking information from the Unihan database (unicode.org);\
   with a second parameter, a Big5-encoded table of HKSCS  Changjie input codes will be merged in,  the parameter is either the file name or a +  sign which is implicitly expanded to the relative path name etc/charmaps/hkscs/hkscs-2004-cj.txt; the HKSCS input codes file should be taken from  http://info.gov.hk/digital21/eng/hkscs/

- MainlandTelegraph , TaiwanTelegraph

  with one of these tags, a keyboard mapping will be generated  using one of these telegraph codes as an input method, taking information from the Unihan database (unicode.org)

- Cantonese , HanyuPinlu , Mandarin , Tang

  with one of these tags, a keyboard mapping will be generated  using the according Chinese pronunciation as an input method, taking information from the Unihan database (unicode.org)

- JapaneseKun , JapaneseOn

  with one of these tags, a keyboard mapping will be generated  using Japanese or Sino-Japanese pronunciation as an input method, taking information from the Unihan database (unicode.org)

- Korean , Vietnamese

  with one of these tags, a keyboard mapping will be generated  using Korean or Vietnamese pronunciation as an input method, taking information from the Unihan database (unicode.org)

- VIQR , VNI , Vtelex

  with one of these tags, a keyboard mapping will be generated  for the respective Vietnamese input methods, taking character information from the Unicode database (unicode.org)

- *script tag*

  for many scripts listed in the UnicodeData.txt database,  character names listed there can build a useful  keyboard mapping;  mkkbmap will then generate an according  keyboard mapping file, e.g. for Bopomofo

Each successful generation of a mapping table adds an entry  to the configuration file keymaps.cfg; the  entry is however initially disabled as it usually needs manual  adjustment: edit the configuration file; enable the new  entry by removing the leading '#' character, check the first  element which will be the name of the mapping to appear in the  Input Method menu, check the last element of the entry  which is a two-letter shortcut and must be unique for all  mappings, then move the entry to the position where you want  it to appear in the menu. You can also group mappings by  adding "-" lines in this configuration file.\
 For the Unicode data version used for included keyboard mappings,  see the mined change log.\
 For the keyboard mappings generated from Unihan data,  characters are sorted according to the priorities of their  Unicode ranges (assigning lower priority to "Supplement" and  "Extension" and "Compatibility" ranges). So for some input mnemos, the "pick list" for the Cangjie  input method is displayed more in order of relevance (since  2000.10).\
 For keyboard mappings for CJK encodings, mkkbmap will add  appropriate punctuation mapping entries for Chinese, Japanese,  Korean, respectively, in addition to the entries derived from  the respective data source.

### MSDOS-only notes

*DOS binaries:* Two DOS-based versions, compiled with djgpp  and with cygwin, are available for download from the  mined web site  http://towo.net/mined/  for users who want a quick binary on DOS-based systems. The djgpp binary is a "dual-mode" executable which runs on  plain DOS and also supports long file names in a Windows  98/2000/XP/... console window (not NT4.0). It does not run  in an xterm, however.

*Highlight mode:* The ANSI codes for selecting normal and exposed display can be  chosen with the environment variable MINEDCOL. The two  selections are separated by a space. Each selection is a  semicolon-separated list of the code values. The default behaviour corresponds to the setting

- set MINEDCOL=7 27

  Example: Green on red text, red on green status:

- set MINEDCOL=34;42 32;44

  For command line options, "/" can be used instead of "-".

The "ESC -" command cannot go back within a group of  files named by the same wildcard expression. It goes to  the previous file name (or wildcard expression) instead.

*Enabling the keypad HOP key:* If you have a very old and  crappy BIOS, you may have to enable use of the cursor block  "5" key (for use as a HOP key) with a TSR driver (ENHKBD.COM)  or an enhanced keyboard driver. (Older PC keyboard drivers were often so ignorant  to forbid you to use that key.)

Immediate adjustment to changed window size does not work in  the DOS version if the size change is caused by a TSR (e.g.  VGAMAX using a hotkey); in that case, mined adjusts its  screen display only after the next key is typed.

The cygwin terminal environment (cygwin in a Windows console  window) provides an emulation of a Unix 8 bit character set so  non-ASCII characters entered in this version are different  from those entered in other DOS-based versions. Editing UTF-8 text, on the other hand, works transparently in  all DOS-based versions. See PC terminals above for more details.

In order to enable mouse use in a Windows console window,  deactivate "QuickEdit mode" in the properties menu.

	The following only applies if DOS ANSI driver output is used  which is currently not the case in any configuration:

	The default colour setting depends on an extended ANSI driver  (like NNANSI) as does the scroll down function anyway.  Unfortunately, there is no way to find out the current colour  setting nor is there an inverse video mode in many ANSI  drivers (only a fixed black on white mode) so that it is  impossible to implement just inverse display for highlighting.  Therefore, if mined thinks to see an ANSI driver of the  simpler kind, it will change its colour setting defaults. In  any case, these can be overridden with the MINEDCOL variable. *Recommended ANSI drivers:*

- NNANSI by Tom Almy (very capable, but needs some

  installation effort), or

- ANSI.COM by Michael J. Mefford (small, works well at

  usual screen sizes).

Mined tries to analyse the ANSI drivers capabilities by  checking some control sequences. This works, however, only if  the ANSI driver is at least able to send cursor position  reports. For primitive ANSI drivers that cannot even do that, mined's  operation can be ensured with an emergency procedure: A faked pseudo-report should be stuffed into mined as its  first input (with some key-stuffing program) and mined will  use no further cursor position requests. It will also assume a  simple ANSI driver then. The faked report should consist of  the screen size in lines and columns, embedded at the  positions of the ANSI cursor report sequence but with  different surrounding characters. For an invocation of mined  on a 25 lines and 80 columns screen a batch file for this  would look like:

- keypress xx25x80xx

  - mined %1 %2 %3 %4 %5 %6 %7 %8 %9

  The remaining remarks apply to the Turbo-C version only  which is no longer supported (use djgpp instead):

- •

  The file size being edited is limited to 200KB to 500KB  (depending on average line length and number of lines).

- •

  Typing of Ctrl-P while display output is active  (i.e., during screen paging) can hang the system. Typing of  Ctrl-C or Ctrl-Break while display output is active can  at least leave some garbage on the screen. Ctrl-S may stop  screen output until Ctrl-Q is typed. Typing of  Ctrl-P, Ctrl-C, or Ctrl-Break while a search  operation is active can be desastrous. (Can anyone tell me how  to disable BIOS/MSDOS interpretation of these characters from  Turbo-C?)

- •

  The Turbo-C version is configured to handle screen output  using the "conio" module. (It used to use an ANSI driver.) The disadvantage of conio is that it doesn't handle arbitrary  screen modes and sizes whereas good ANSI drivers support them  all.

## ENVIRONMENT VARIABLES

Environment variables for configuration of mined are listed  in the script file profile.mined  in the Mined runtime support library  together with explanations and suggested values.\
\
 	Further variables used by mined in the usual meaning are:

- HOME

  - USER

  - SHELL

  - SYS$SCRATCH (VMS)

  - TMPDIR

  - TMP

  - TEMP *(MSDOS)*

  - TERM

  Terminal type to be assumed.

- ESCDELAY

  Delay after an ESCAPE character that mined waits for  recognition of a function key control sequence. Default is 450 ms.

- MAPDELAY *(non-standard)*

  Similar delay that mined applies to wait for subsequent  input characters when applying keyboard mapping for an  input method. Default is 900 ms.

- LINES, COLUMNS *(MSDOS ANSI mode only)*

  Line / column count of terminal to be assumed.

- windir

  Used to determine if it runs under MS Windows and set some  defaults (screen output delay) accordingly.

### Environment variables to configure Printing

- MINEDPRINT

  Print command to use instead of uprint; the value must  contain an embedded "%s" which is replaced with the file name.

- FONT

  Name of a font file, e.g. LucidaBrightRegular or bodoni.ttf  for use with uprint/uniprint (the file must reside in the  configured font path),  or name of a font as specified with fontconfig  (in $HOME/.fonts.conf or /etc/fonts/fonts.conf) for use with  uprint/paps.

- FONTPATH

  Directory search path (separate directory names with ":")  for use with uprint/uniprint which uses Truetype fonts.

- FONTSIZE

  Font size to be used with uprint (paps or uniprint).

- LPR

  Print spooling command to be used by uprint (or  mined itself if uprint does not work) instead of the  system-specific print spooling command (e.g. lpr).

- PRINTER

  Name of printer to spool to.

## FILES

### Unix

- $MINEDDIR

  directory in which the Mined runtime support library is  installed, including the online help file mined.hlp  and the printing script uprint

- $MINEDDIR/help/mined.hlp

  online help file, first attempt to find it

- $0/mined.hlp

  online help file in mined program directory, next attempt

- /usr/share/mined/help/mined.hlp

  online help file, next attempt

- /usr/local/share/mined/help/mined.hlp

  online help file, next attempt

- /usr/share/lib/mined/help/mined.hlp

  online help file, next attempt

- /opt/mined/share/help/mined.hlp

  online help file, next attempt

- /usr/share/doc/packages/mined/help/mined.hlp

  online help file, next attempt

- $MINEDTMP

  directory for auxiliary files, first attempt Using this variable and $MINEDUSER (see below), you can  establish copy and paste among machines that share network  directories but are normally configured to use separate  (usually local) temporary directories.

- $TMPDIR

  directory for auxiliary files, next attempt

- $TMP

  directory for auxiliary files, next attempt

- $TEMP

  directory for auxiliary files, next attempt

- /usr/tmp

  directory for auxiliary files, next attempt

- /tmp

  directory for auxiliary files, next attempt

- $MINEDUSER

  user name assumed instead of $USER for building  auxiliary file names; using this, common copy-and-paste buffers  can be used on a network file system from different machines  where the user possibly has different user names

- $HOME/.fonts.conf

  fonts configuration file for use with uprint/paps;  for description, see  http://fontconfig.org/fontconfig-user.html  or man fonts.conf

- minedbuf.\< USER \>.\< PID \>.\< NN \>

  temporary file for paste buffer;  USER is either $MINEDUSER or $USER

- minedbuf.\< USER \>

  file for inter-window paste buffer;  USER is either $MINEDUSER or $USER;  see descriptions of $MINEDTMP and $MINEDUSER above for  how to set up a common inter-window paste buffer in a  heterogeneous network

- minedpanic.\< USER \>.\< PID \>

  panic file to rescue text in case of crash or external signal caught

### VMS

- SYS$MINEDTMP:$MINEDBUF$user.pid.nn

  paste buffer, first attempt

- SYS$SCRATCH:$MINEDBUF$user.pid.nn

  paste buffer, next attempt

- SYS$SCRATCH:$MINEDPANIC$user.pid

  panic file, first attempt

- SYS$MINEDTMP:$MINEDBUF$user

  inter-window paste buffer, first attempt

- SYS$SCRATCH:$MINEDBUF$user

  inter-window paste buffer, next attempt

- SYS$SCRATCH:$MINEDPANIC$user.pid

  panic file, next attempt

- *If SYS$SCRATCH is not available, SYS$LOGIN is used instead.*

  ### MSDOS / Windows

- %MINEDDIR%\\help\\mined.hlp

  online help file, first attempt (to find it)

- mined.hlp *(in mined program directory)*

  online help file, next attempt

- %MINEDTMP%\\minedbuf.nn

  paste buffer

- %MINEDTMP%\\minedbuf

  inter-window paste buffer

- %MINEDTMP%\\minedbuf.%MINEDUSER%

  inter-window paste buffer, as configured to use the same  file as other mined versions in a heterogeneous network;  note, however, that %MINEDUSER% will be shortened to 3 characters  in pure DOS

- %MINEDTMP%\\mined-pa.nic

  panic file

- *If %MINEDTMP% is not available, %TEMP% or %TMP% or \\ are used.*

  ## DIAGNOSTICS

In all cases where it is considered sensible, the appropriate  message of a system error occurred is displayed (instead of  printing numerical hieroglyphs or indistinguished commonplace  messages as many other UNIX tools do).

## BUGS

In an extremely narrow terminal window (less than 8 characters),  if lines are shifted out of the display, moving the cursor around  may cause positioning errors and display garbage.

(Unix:) Mined cannot edit a pipe or device file and hangs if  you try to do so. (But it can insert from, or write to, a pipe.)\
 This restriction does not refer to editing from standard  input in a piped command like cmd \| mined  which works of course.

(MSDOS, Windows:) With non-cygwin versions (djgpp), piped  editing from standard input does not work for unknown reason.

(Windows:) Non-cygwin versions (djgpp) do not work in xterm,  rxvt, or MinTTY.

## AUTHOR AND ACKNOWLEDGEMENTS

Long ago, the initial version of mined was written for the Minix  educational operating system by Michiel Huisjes. It was adapted to Unix by Achim Müller who added termcap support. Mined was later debugged, partly rewritten and enhanced and  is now maintained by Thomas Wolff.\
 Please send comments, suggestions, bug reports to  mined@towo.net.

### Mailing list

Mined is also hosted as a  sourceforge project (sf.net/projects/mined) where a  mailing list is available. To subscribe for information about  updates, or discussion, error reports, and feature requests,  or to send a mail, please go to the  Mined mailing list page.

### Acknowledgements

- •

  Thanks to Nadim Shaikli \< shaikli @ yahoo.com \> for discussion  of right-to-left issues and interworking with mlterm.

- •

  Thanks to Mike Fabian \< mfabian @ suse.de \>  for making the RPM package included in the SuSE distribution.

- •

  Thanks to Ziying Sherwin \< sherwin @ nlm.nih.gov \>  and R. P. Channing Rodgers \< rodgers @ nlm.nih.gov \>  for suggestions and information about CJK input method support  and multiple choice handling (pick lists).

- •

  Thanks to Tobias Ernst \< tobias\_ernst @ eml.cc \> for  providing a Mac OS X makefile and suggestion and information  to implement Emacs command mode.

- •

  Thanks to &#21556;&#21647;&#28828; (Wu Yongwei)  \< yongwei @ eastday.com \>  for suggestions and information about Pinyin input methods,  for discussion about keyboard mappings for CJK punctuation,  and for further maintaining the Pinyin input method.

- •

  Thanks to Ramakrishnan Muthukrishnan \< rkrishnan @ debian.org \>  for making the Debian package.

- •

  Thanks to Thierry Thomas \< thierry @ FreeBSD.org \>  for making the FreeBSD package.

- •

  Thanks to Tobias Nygren \< tnn @ NetBSD.org \>  for making the NetBSD package.

- •

  Thanks to Jim Breen for suggesting better overview of input  methods and more language-specific advice for non-techy  persons which led to the new chapter on Language support.
