NAME

mined – powerful text editor with extensive Unicode and CJK support

SYNTAX

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

xmined ...
umined ...

wmined ...

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

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

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
wmined ...
(on Windows) starts a new rxvt terminal in stand-alone mode (i.e. without needing X windows), using Windows look-and-feel, and invokes mined in it; the terminal is configured to run in UTF-8 mode which may work with a future version of rxvt (currently ignored)

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). 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 LF (stripping CR at line ends).
-R
Convert Mac line ends (CR) to Unix LF.
+R
Recognise Mac line ends and indicate them on display; nothing is transformed with this option.
+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)
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 (input method handling)
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 now 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.
-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)
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.)

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 from a line position which would have been inside the Tab column range, the default behaviour is to position on the left end of the Tab. This option changes that to position right of the Tab.

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.
-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.

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 Control-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 Control-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). Control-mouse-wheel always scrolls by 1 line. Shift-mouse-wheel scrolls by 1 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
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. The (assumedly more useful) mined default is to assign the frequently used paste buffer functions (mark, copy, cut) to these keys. In any case, shifted keys (Shift-Home etc) will invoke the according paste buffer functions and Control-Home etc. the more widespread functions to these keys, provided your terminal supports it (see Keypad configuration for further hints).
-*
Disable mouse support.
-M
Suppress display of menu header line (including flags). Pull-down and pop-up menus can still be opened with keyboard commands. 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. (For backwards compatibility, -o without a subsequent digit toggles scrollbar.)
-p
Enables distinguished display of line ends and paragraph ends with different symbols.
-t< Tab >
Sets the character to be used for visible Tab character indication.
-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
Mark
8
9
PgUp
4
5
HOP
6
1
Copy
2
3
PgDn
0
Paste
.
Cut
<p> <pre> +------+------+------+ | (7) | (8) | (9) | | Mark | ^ | PgUp | +------+------+------+ | (4) | (5) | (6) | | &lt;- | HOP | -> | +------+------+------+ | (1) | (2) | (3) | | Copy | v | PgDn | +------+------+------+ | (0) | (.) | | Paste | Cut | +------+------+------+ </pre>

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 character deletion can still be done with the Del key on the smaller keypad.
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:
  • The more common Home/End/Del function assignments (line navigation and character deletion) to the respective keypad keys are also easily accessible (Alt-Home/End/Del).
  • The -k option switches to the more common assignment by exchanging the unshifted keypad assignments with the Alt- assignments, keeping the mined assignment available with Alt.
  • Using Del without a paste buffer gives an additional hint on alternative usage.
  • 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 these usual redundancy of these two keypad blocks.
    By default, the numeric keypad will be assigned the paste buffer functions while the small keypad will be assigned the line navigation and character deletion functions.
  • Regardless of -k mode, the more common function assignments (line navigation and character deletion) are always assigned to Control-Home/End/Del, while the paste buffer functions are always assigned to Shift-Home/End/Del (at least on the small keypad).
  • Note: Shifted keypad key assignments may require proper keyboard configuration, see Keypad configuration for details.

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
    On scroll-bar:
    • left click
      moves one page down
    • middle click
      moves to text position corresponding to cursor
    • right click
      move one page up
    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 or mouse 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 or mouse scroll
      opens flag 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) 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) 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), activate 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.

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 Control-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 Control-Backarrow or F5 Backarrow to delete only one character left. (Control-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 Control-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 linefeed character in the search string with ^V^J or \n. (In some cases there are still display problems; then update the screen with the ESC "." command.)

Header line underlining

The command HOP "-" (e.g. Control-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.

Structured input

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). 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 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).
Note: 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 Control-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 Control-F2 to save a file or by prefixing any file writing command with HOP. This enforces creation of the marker file.
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.
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
		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.


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 the latter, further options can be selected to configure the information shown.
  • (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 code
    • "PC": PC DOS character code ("codepage 437")
    • "PL": PC Latin character code ("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, .xml, .jsp, .sgml; 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)
· non-breaking space (character code hex A0)
« 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. 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 Control/Alt-1 or Control-, 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 marker of selected items in flag menus can be changed with the environment variable MINEDMENUMARKER. If it is empty, the default marker is changed to a nice preconfigured alternative.



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 a 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 a 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áč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").


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 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 a 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, 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
Control-:
diaeresis
Alt-Ctrl-F6
Control-–
descender / macron
Alt-F5
Control-/
stroke
Control-& hook / middle hook
Alt-Shift-F5
Control-(
breve
Control-; tail / tick / upturn
F6
Control-'
Control-´
vertical stroke
Shift-F6
Control-`
grave
Shift-F5
Control-~
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 a respective command line parameter. 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 a respective command line parameter. 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 a respective command line parameter. 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 a respective command line parameter. 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, 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 Control-' 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
Control-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
Control-:
Control-"
dialytika
Shift-F5
Control-~
perispomeni
Control-F5
Control-,
iota (ypogegrammeni)
Control-Shift-F5
Control-;
prosgegrammeni
Alt-Shift-F5
Control-(
vrachy
F6
Control-'
(Ctrl-apostrophe)
tonos
Control-F6
Control-´
(Ctrl-acute)
Control-^
oxia
Shift-F6
Control-`
(Ctrl-grave)
varia
Alt-F6
Control-<
psili
Alt-Shift-F6
Control-.
dasia
Control-Shift-F6 macron
Alt-6 psili and oxia
Control-Alt-6 dasia and oxia
Alt-7 psili and varia
Control-Alt-7 dasia and varia
Alt-8 psili and perispomeni
Control-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. 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 a respective command line parameter. 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 a respective command line parameter. 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 a respective command line parameter. 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 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 a respective command line parameter. 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 a respective command line parameter. 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 a respective command line parameter. 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.

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.

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 Control-/Alt-/Alt-Control digit keys are used for Vietnames 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 Â ' (Control-V A-circumflex apostrophe)
enters the composite character U+1EA4 (A with circumflex and acute)
^V ~ Ô (Control-V O-circumflex tilde)
enters the composite character U+1ED6 (O with circumflex and tilde)
Control-6 A
enters U+00C2 (A with circumflex)
Alt-4 A
enters U+1EAA (A with circumflex and tilde)
Control-Alt-3 A
enters U+1EB2 (A with breve and hook above)
Control-Alt-3 O
enters U+1EDE (O with horn and hook above)
Note: With 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 a respective command line parameter. 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 non-breaking space within quotes (U+00A0, can be entered with Control-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 Control-cursor-left and Control-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.
    • If the cursor is on a combined character, Control-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.
    • Control-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: Control-cursor-left and Control-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. Control-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).

    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). It is applicable in all text encodings (since mined 2000.12).

    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, or (Alt-x) to toggle the preceding character and its hexadecimal code. For details, see the section in the command summary.

    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 between Latin-1 and 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 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)