mined(1) Unicode text editor mined(1)NAME
MinEd - powerful text editor with extensive Unicode and CJK support
SYNTAX
mined [ -/+options ] [ +line ] [ +/search ] [ files ... ]
xmined ...
umined ...
wined ...
minmacs ...
mstar ...
mpico ...
→NEW→ Note: Mined suppresses backup file names from the command line
file list if they appear after their base version name as generated by
command line auto-completion, in order to prevent their accidental
editing; thus after file name "x" the following would be excluded from
the file list (where N is a number): "x~", "x;N", "x.~N~", so that,
e.g., mined x* edits x and x1 but not x~.
DESCRIPTION
Mined is a text editor with
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 con‐
trol, 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 func‐
tions that can be most easily reached and remembered by
intuitively amplifying or expanding the associated func‐
tion
· Interactive file chooser and →NEW→ interactive file
switcher
· Proper handling of window size changes in any state of
interaction
Versatile character encoding support
· Extensive Unicode support, including double-width and
combining characters, script highlighting, various meth‐
ods of character input support (mapped keyboard input
methods, mnemonic and numeric input), supporting CJK,
Vietnamese, Hebrew, Arabic, and other scripts
· Character information from recent Unicode version
· 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
· Support of Arabic ligature joining on all terminals
· East Asian character set support: handling of major CJK
encodings (including GB18030 and full EUC-JP with combin‐
ing characters)
· Support for a large number of 8 bit encodings (with com‐
bining 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 pronuncia‐
tion
· 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 com‐
bining 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 termi‐
nal encoding
· Encoding support tested with: xterm, mlterm, rxvt,
cxterm, kterm, hanterm, KDE konsole, gnome-terminal,
Linux console, cygwin console, mintty, PuTTY
Text editing features
· Many text editing features, e.g. paragraph wrapping,
auto-indentation and back-tab, smart quotes (with quota‐
tion 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 conver‐
sion
· Marker stack for quick return to previous text positions
· Multiple paste buffers (emacs-style)
· Optional rectangular copy/paste area
· Interactive selection highlighting (with mouse or key‐
board selection), standard dual-mode Del key behaviour
· Program editing features, HTML support and syntax high‐
lighting, 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 charac‐
ters, different line-end types, character codes that can‐
not be displayed in the current mode)
· Full binary transparent editing with visible indications
(illegal UTF-8 or CJK, mixed line end types, NUL charac‐
ters, ...)
· Print function that works in all text encodings
· Optional password hiding
· Optional emacs command mode
Small-footprint operation, portability and interworking
· Plain text mode (terminal) operation
· Optimized use of terminal features for a wide range of
terminals, including large terminal support (2015x2015)
of recent xterm and mintty
· Instant start-up
· Runs on many platforms (including legacy systems): Linux,
→NEW→ Android, →NEW→ Raspberry Pi, Unix (SunOS, BSD, Mac
OS X, QNX, GNU Hurd, HP-UX, IBM AIX, →NEW→ Irix, SCO
UnixWare, Ultrix, Tru64), DOS (djgpp), Windows (cygwin,
Interix, →NEW→ MSYS), OpenVMS, Haiku
This manual contains the main topics
· Command line options
· Editing text with mined, an overview
· Keypad layout
· The HOP function
· Mouse control and Menus
· Paste buffers
· Visual selection and Keypad modes
· Rectangular copy/paste
· Text position marker stack
· Paragraph justification
· Auto indentation and Structure input support
· Search and replace multiple lines
· Overview: input support features
· Handling files with mined
· Tags file support
· Data safety and security, →NEW→ Backup and recov‐
ery files and File locking
· Line end modes and binary-transparent editing
· File info: Memory of file position and editing
style parameters
· →NEW→ File chooser and File switcher
· Version control integration
· Printing
· Working with mined
· Quick Options (Mode indication) flags
· Structured editing support
· Password hiding
· Visible indication of line contents
Language support
· Character handling support
· Combining characters
· Character information display
· Character conversion features
· Smart quotes
· Character input support
· Accented and mnemonic input support
· Combining character input
· Special character input shortcuts
· Character input mnemonics
· Keyboard Mapping and Input Methods
· Character encoding support
· Auto-detected character encodings
· CJK and mapped 8 bit encoding support
· Combining characters
· Unicode support
· Character input support
· Encoding conversion support
· Bidirectional terminal support
· Joining characters
· CJK support
· CJK input method support
· Han character information display
· Terminal encoding support Mined Command reference (com‐
mand and key function assignments)
· Generic command modifiers (esp. HOP key)
· Cursor and screen motion
· Entering text
· Input support commands
· Modifying text
· Text block and buffer operations
· Search
· File operations
· Menu
· Miscellaneous
· MSDOS keyboard functions
· Emacs mode
· Windows keyboard mode
· WordStar mode
· Configuration of user preferences
· Environment interworking and configuration hints
· Mined runtime support library
· PC versions
· VMS version
· Android version
· Terminal environment
· Locale configuration
· PC terminals
· Terminal setup and configuration
· Terminal interworking problems
· Keyboard Mapping / Input Method pre-selection
· Smart Quotes style configuration
· Han info configuration
· Common paste buffer configuration
· Keypad configuration
· Printing configuration
· Mined configuration
· Environment variables
· Author and Acknowledgements
Interactive help is available with F1.
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 out‐
put)
· 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 cur‐
rent TERM variable setting) and invokes mined in it
umined ...
starts a new terminal window in UTF-8 mode (xterm or rxvt,
depending on font availability and usage capabilities) and
invokes mined in it
wined ...
(in cygwin) starts mined in a window (using the mintty terminal,
applying Windows look-and-feel)
wined.bat ...
(in Windows) starts mined in a window, using Windows keyboard
emulation mode
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. (Also triggered if programm name starts
with "r", e.g. rmined).
++ End of options; subsequent file name can start with "-" or "+".
+@ Apply extended grooming to file info file; drop entries for
files that are not accessible. See File info: Memory of file
position and editing style parameters for details.
File handling
+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 permis‐
sion is set only where also read permission is set.
+bX Select backup mode, where X is one of:
· -: no backup files
· s: simple backup files (F~)
· e: emacs style numbered backup files (F.~N~)
· v: VMS style numbered backup files (F;N)
· n: numbered backup files (whichever style occurs)
· a: automatic backup files (whichever style occurs)
See Backup files for details.
+zX Preselect file chooser sort options, where X is one of:
· x: sort by file name extensions
· d: list directories first
Line end handling (transparent and transforming)
-r Convert MSDOS line ends (CR LF) to Unix line ends (LF) (strip‐
ping CR at line ends). Can be combined with -R or +R. Also
sets line end type for new files to LF for the djgpp version
(which defaults to CR LF).
+r Convert Unix line ends (LF) to MSDOS line ends (CR LF) (adding
CR at line ends). Can be combined with -R or +R. Also sets
line end type for new files to CR LF.
-R Convert Mac line ends (CR) to Unix line ends (LF). Can be com‐
bined with -r or +r.
+R Recognise Mac line ends (CR) and indicate them on display; noth‐
ing is transformed with this option. Can be combined with -r or
+r.
+u-u Interpret Unicode line separator and paragraph separator as nor‐
mal 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 compatibil‐
ity.)
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 (separat‐
ing base character and combining characters). This mode can
also be toggled from the Options menu or by clicking on the Com‐
bining 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 Char‐
acter encoding flags listing in the Quick Options (Mode indica‐
tion) 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 sup‐
ported character encodings for text interpretation. For details
on supported encodings, see the Quick Options (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 encod‐
ing 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 Quick
Options (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 Uni‐
code Copy/Paste buffer conversion.
-E? (character set)
Determine the encoding(s) of the text file(s) given as parame‐
ters by auto-detection, print out the information and quit.
-KX (input method handling)
Configure the Space key to perform a certain function in key‐
board mapping selection menus ("CJK input method pick lists"),
where X is one of:
'n' to navigate to the next choice (like cursor-right),
'r' to navigate to the next row (like cursor-down),
's' to select the current choice (like Enter).
-K=im-im (input method selection)
Select input method and/or standby input method (for quick
switching with Alt-k). The syntax is the same as for the
optional environment variable MINEDKEYMAP (see below).
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 config‐
ured to indicate UTF-8 as it should (see Unicode handling / Ter‐
minal environment).
Also, mined performs auto-detection of UTF-8 terminal encoding
and UTF-8 terminal features (different width data versions, han‐
dling of double-width, combining and joining characters), so
even if the environment is not correctly configured, mined
should work without this explicit terminal mode parameter.
+UU (terminal mode)
Selects bidirectional terminal support. This mode implies UTF-8
and also assumes that Arabic ligature joining (of LAM/ALEF com‐
binations) is applied; it will be handled by mined accordingly.
+UU-U (terminal mode)
Selects bidirectional terminal support without Arabic ligature
joining (like mintty).
-cc (terminal mode)
Assumes that the terminal does not support combining characters.
By default - unless otherwise detected - mined assumes that com‐
bining 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 sup‐
ported character encodings. For details on supported encodings,
see the Quick Options (Mode indication) flags listing. For
details on terminal encoding support, see Terminal encoding sup‐
port.
+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 con‐
figuration, 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 Quick
Options (Mode indication) flags listing.
+E? (terminal mode)
Determine the terminal encoding and further terminal encoding
features and properties by auto-detection, print out the infor‐
mation and quit.
-C (character set and terminal mode)
(Deprecated.) Turns a subsequent -E option (with a single-let‐
ter 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 prop‐
erly 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.)
-nc →NEW→ Suppress usage of terminal colour attributes.
Information display
+?c Enable character code information display on status line.
+?X Enable character code information display (implies +?c) with
additional information, where X is one of:
· s: Unicode script
· n: Unicode character name
· d: Unicode character decomposition
· m: mined input mnemonics available for this character
Note: setting any of these options may disable some others as not all
combinations are considered useful.
+?h Enable full Han character information display as a popup. In
addition to the character description, a set of pronunciations
can be selected with the variable MINEDHANINFO.
+?x Enable compact Han character information on status line. In
addition to the character description, a set of pronunciations
can be selected with the variable MINEDHANINFO.
+?f Enable file and position information display on status line
(enabled by default). Note that when editing a file that does
not fit completely in memory (e.g. large file on old system),
this option may cause considerable swapping. In that case, dis‐
able the feature with -?f.
-?X Deselect the respective +? option.
Editing behaviour
-w Recognise fewer places as word boundaries for word skip and
delete commands.
-a Append mode: Append to text buffer or external file for
copy/delete commands instead of replacing it.
+j Set justification level 1 (or increment level previously set by
environment variable to 1 or 2): Level 1 initially enables auto‐
matic word wrap at line end when typing over right margin. Can
be changed by clicking on the j/J flag.
+jj Set justification level 2: Level 2 initially enables automatic
word wrap at line end when typing within paragraph; buggy. Can
be changed by clicking on the j/J flag.
-j Set justification level 1 or 2 (other than previously set). Can
be changed by clicking on the j/J flag.
-T When moving vertically over a Tab character, stay left of the
Tab column range (on the Tab character). The default depends on
the previous position. Also, stay left on a wide character when
moving vertically over it.
+T When moving vertically over a Tab character, stay right of the
Tab column range (behind the Tab character). The default
depends on the previous position.
-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).
+[ Initially enable rectangular paste buffer mode. See Rectangular
copy/paste.
-[ Initially disable rectangular paste buffer mode.
Keyboard function mode selection
+eX Select emulation mode, especially control key function mapping,
where X is one of
· e: emacs mode
· s: WordStar mode
· w: Windows keyboard mode
· W: Windows behaviour (keyboard mode, CRLF for new files,
cmd.exe with ESC !)
· p: pico mode
· m: mined default
-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.
-W Select WordStar mode. This configures WordStar command key lay‐
out and enables many functions of the ^K, ^O, and ^Q menus.
-kX →NEW→ Select keypad modes, where X is one of
· m: mined keypad mode.
· s or S: Shift-select mode: Shifted keypad keys (cursor
keys, PgUp/PgDn/Home/End) start or extend text selection
(with visual highlighting) and visual selection behaviour
is slightly adapted to common usage; in addition, Shift-
HOP is mapped to the Copy function. Unshifted keypad
keys retain their default mined functions.
· w: Windows keypad mode; implies -kS (also implied by
+ew):
· c: Home and End keys of small ("editing") keypad invoke
Mark/Copy to paste buffer (overriding selected mode for
them)
· C: Home and End keys of big ("numeric") keypad invoke
Mark/Copy to paste buffer (overriding selected mode for
them)
+t (Deprecated.) Windows keypad mode, like -kw.
+tt (Deprecated.) Shift-select mode, like -kS.
-k (as single-letter option)
Switch the Home and End key functions of the two keypads (small
keypad, numeric keypad), i.e. exchange the two keypads with
respect to these keys. This assigns the more usual functions
"goto line beginning", "goto line end" to the Home and End keys
of the right keypad. The (assumedly more useful) mined default
is to assign the frequently used paste buffer functions (mark,
copy) to these keys.
In turn, the assigned functions of the Home and End keys of the
small keypad ("editing keypad") are exchanged to provide the
other function than on the right keypad, respectively - provided
the terminal and its configuration support this distinction.
Also Alt-Home/End are assigned the respective other functions on
each keypad so the most useful keypad functions should always be
quite easily available.
Regardless of this switching, mined tries to map fixed functions
to modified Home and End keys: Ctrl-Home/End for line begin/end
movement (both keypads), Shift-Home/End for the paste buffer
copy functions (small keypad) - provided the terminal, its mode
and configuration support distinction of modified keypad keys.
See also the section on Keypad layout for a motivating overview
of the mined keypad assignment features and options.
About terminal support and configuration, see Keypad configura‐
tion for further hints.
+k Enforce usage of terminal "keypad mode" which switches the
numeric keypad to send "application keypad" escape sequences.
This is normally not needed. On certain terminals, mined will
automatically use this mode (e.g. Linux console), and in termi‐
nal emulators it is usually not needed unless you are running a
misconfigured X windows system in which case you can enable dis‐
tinguished keypad functions by using the NumLock function of the
keyboard and switching on this option.
-B (Deprecated.) Enforce the Del control character to delete left,
Backspace to move left. Should normally not be used, see "Auto‐
matic backspace mode adaptation" below.
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 ter‐
minal capabilities.
-O Disable script colour highlighting (for Greek, Cyrillic...).
+O Enable script colour highlighting (for Greek, Cyrillic...).
(Disabled by default in dark terminals.)
-f Restrict usage of graphic characters: use cell-grained scroll‐
bar, 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 charac‐
ters (including VT100 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 sup‐
pressed.
-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. Also, trigger substitution display of a
number of special characters in text (like in non-Unicode termi‐
nals).
+F Revert the effect of one -F option (e.g. preconfigured in the
environment variable MINEDOPT) or a corresponding assumption of
mined about the specific terminal which would limit font usage.
+FF Fully enable usage of characters for special indications.
Further mode selection, interface and display behaviour
-4 Set Tab size to 4 rather than 8. The effective Tab size can
also be toggled while editing with the ESC T command.
-8 Set Tab size to 8. (May be used on command line to override Tab
size being set to 4 be MINEDOPT environment variable.) The
effective Tab size can also be toggled while editing with the
ESC T command.
-+4 Set spacing Tab with size 4; a Tab input character will be
expanded to an appropriate number of spaces. To enter a real
Tab character, type Ctrl-V Tab (^V^I). The effective Tab size
can also be toggled while editing with the ESC T command. Tab
expansion mode can also be toggled while editing with the HOP
ESC T command.
-+8 Set spacing Tab with size 8; a Tab input character will be
expanded to an appropriate number of spaces. To enter a real
Tab character, type Ctrl-V Tab (^V^I). The effective Tab size
can also be toggled while editing with the ESC T command. Tab
expansion mode can also be toggled while editing with the HOP
ESC T command.
-P Hide passwords; enables hidden display of one word behind the
string "assword" in a line (to accommodate for "password" or
"Password"): hidden characters are indicated by reverse "*"
characters. By default, this mode is activated when editing a
file whose name starts with ".".
+P Unhide passwords; always display them.
+ZZ →NEW→ Virtual bold stropping: displays keywords of Algol-like
programming languages in bold while transparently editing them
in all-capital letters ("upper stropping"), which is started
with entering only one capital letter. Implicitly enabled on
file name suffix .a68 (disable with -ZZ).
+Z_ →NEW→ Virtual underline stropping: like +ZZ with underlined dis‐
play.
-LN (N is a number) Define mouse wheel movement to scroll by N lines
(default 3). Ctrl-mouse-wheel always scrolls by 1 line. Shift-
mouse-wheel scrolls by 1 page. Mouse-wheel on the scrollbar
scrolls by half a page.
+* Enable enhanced mouse control: Menu items can be navigated with
the mouse without button pressed. Enabled by default for
mintty, xterm, gnome-terminal, cygwin console.
-* Disable enhanced mouse control (if enabled by default or by pre‐
vious option), otherwise disable mouse support altogether.
-** Disable mouse support altogether.
-M Suppress display of menu header line (including flags). Pull-
down and pop-up menus can still be opened with keyboard com‐
mands. Mouse control remains enabled.
-MM Suppress display of menu header line (including flags) and dis‐
able quick menu (right-click on text). Pull-down and pop-up
menus can still be opened with keyboard commands, the quick menu
can still be opened with Alt-space or ESC space.
-MM+M Disable quick menu but leave menu header and flags line enabled.
-oN Select scrollbar display mode. N=0 disables the scrollbar (may
speed up editing on slow remote lines), N=1 enables cell-grained
scrollbar display, N=2 (default) enables finer-grained scrollbar
display on a UTF-8 terminal.
-oo Selects old (until 2000.14) left/right click behaviour on
scrollbar.
-o Disables the scrollbar.
+o Enables the scrollbar.
-p Enables distinguished display of line ends and paragraph ends
with different symbols.
-X Disables display of the filename in the window title bar.
-s Stay with cursor in top line after page down or bottom line
after page up instead of center line.
-S Use scrolling for page up/down.
-dN Apply delay between lines of page output to achieve visually
effective display build-up which may help to quickly focus on
the new cursor position (the screen output is displayed starting
from the cursor position, proceeding to the screen edges).
If N lies between '0' and '9', the respective number of
milliseconds is applied between display of two lines. If N='0',
still an output flush is performed. If N='-', no delay at all
is applied though still the order of display output is from cur‐
sor 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. This is obso‐
lete for newer terminals since they display proportional fonts
at fixed cell width. It was intended for true proportional dis‐
play (like with SunOS shelltool and old xterm versions) but
never really worked there as those terminals didn't get cursor
positioning right.
All options are also looked for in the environment variable MINEDOPT
(or MINED for compatibility).
On the command line, options containing wildcard characters ("?", "*")
may need to be quoted (if matching files starting with "-" or "+"
exist).
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 or expands 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:
· Mined optimizes keypad usage for most frequently used
functions, especially paste buffer functions in addition
to navigation functions, by making them easily accessible
on the keypad.
· For this purpose, mined distinguished between
Home/End keys on the numeric keypad and on the
small keypad (whenever possible with the terminal)
in order to avoid the waste of resources by the
usually redundant mapping of these two keypad
blocks.
· Note: this means that on the big ("numeric") key‐
pad the mined keypad function assignment for
Home/End deviates from their more usual meanings.
This is deliberately designed to enhance support
of quick copy/paste with these easily reachable
keys, while line movement can also easily be
achieved with HOP cursor-left or HOP cursor-right,
respectively.
This keypad function assignment gives you the best
benefit of keypad usage and is thus considered
much more useful than the "standard assignment".
· The Del and →NEW→ Backarrow keys perform their
usual dual-mode function; if a visual selection is
active, they delete the selection (with a Cut to
the paste buffer), if there is no visual selec‐
tion, they delete the next or previous character,
respectively.
small ("editing") keypad and big ("numeric") keypad:
+-------+-------+-------+ +-------+-------+-------+
| Insert| Home | PgUp | | (7) | (8) | (9) |
| Paste |LineBeg| | | Mark | ^ | PgUp |
+-------+-------+-------+ +-------+-------+-------+
| Delete| End | PgDn | | (4) | (5) | (6) |
|Del/Cut|LineEnd| | | <- | HOP | -> |
+-------+-------+-------+ +-------+-------+-------+
| (1) | (2) | (3) |
| Copy | v | PgDn |
+-------+-------+-------+
| (0) | (.) |
| Paste |Del/Cut|
+-------+-------+-------+
· The centrally placed HOP key is a prefix modifier that
can be used for intuitive modification of navigation
functions and for useful alternatives of paste buffer
functions.
big ("numeric") keypad after HOP:
+-------+-------+-------+
| (7) | (8) | (9) |
|go Mark|Scr top|FileBeg|
+-------+-------+-------+
| (4) | (5) | (6) |
|LineBeg| |LineEnd|
+-------+-------+-------+
| (1) | (2) | (3) |
|Append |Scr bot|FileEnd|
+-------+-------+-------+
| (0) | (.) |
|Cross-paste |+Append|
+-------+-------+-------+
· Mined offers additional function mappings for modified
keypad keys, both for providing unambiguous mappings in
any case and to handle the deviation of its benefit-opti‐
mized Home/End keypad mapping from frequent expectations,
and an option to customize Home/End:
· Alt-Home/End are mapped to the Home/End functions
of the other keypad, respectively. So by default,
on the numeric keypad they invoke the line naviga‐
tion functions.
· The -k option exchanges Home/End functions of the
small and numeric keypads with each other, and
switches Alt-Home/End to also invoke the "other"
function, respectively: keypad function assign‐
ments:
· (cf Windows keypad mode below) Ctrl-Del is always
mapped to character deletion, while Shift-Del is
mapped to the paste buffer Cut function, regard‐
less of the visual selection.
· (cf Windows keypad mode below) Ctrl-Home/End are
always mapped to line navigation, while Shift-
Home/End are mapped to the paste buffer functions
Mark/Copy, regardless of the -k option.
· Alt-Del is mapped to the respective "other" func‐
tion, depending on visual selection.
· Note: Keypad function assignments as described
depend on terminal support to distinguish all
involved keys and modifiers which is unfortunately
not always the case.
Terminal support for proper distinction of differ‐
ent keypads and modified keys may be enhanced by
appropriate terminal configuration, see the sec‐
tion on Keypad configuration.
· →NEW→ Two Keypad modes (see below) change the function
assignment of the keypads.
· In Shift-select mode (option -kS), Shift-modified
keypad keys activate or extend a visual text
selection; also Shift-5 (on keypad) performs Copy
to paste buffer.
· In Windows keypad mode (option -kw), additionally
non-shifted keypad keys are changed to perform the
more common functions, at the price of losing the
easy Home/End assignment to invoke Mark/Copy to
paste buffer (which can however be overridden with
options -kc and -kC). See Keypad modes below for
an overview.
The HOP function
This function, triggered by any of the HOP keys, amplifies or expands
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/expander 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 are stuck in a line-oriented movement and
insertion paradigm which implies some weird and counter-intuitive be‐
haviour.
Mined handles the end-of-line position like any ordinary character
during movement and editing operations. Also search and replacement
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
· Shift-left click (works in mintty) →NEW→ extends
the selection
· left click-drag-release selects a text area and
(with option auto-copy) copies it to the paste
buffer
· double-click (actually click on current position)
→NEW→ word selection
· middle click display the text status line or,
→NEW→ if permanent file status is enabled, display
character information
· right click pops up the quick menu
· mouse wheel scroll scrolls by N lines (default 3,
adjust with option -L) Ctrl-mouse-wheel always
scrolls by 1 line. Shift-mouse-wheel scrolls by 1
page. Note: Mouse-wheel on the scrollbar scrolls
by half a page.
On scroll-bar:
· left click moves one page towards the mouse posi‐
tion (as seen from the current scrollbar position
marker)
or (with option -oo) moves one page down
· middle click moves to text position in file corre‐
sponding to relative mouse position on scrollbar
· left click-drag moves text position in file by
moving relative mouse position on scrollbar
· right click moves one page away from the mouse
position (as seen from the current scrollbar posi‐
tion marker)
or (with option -oo) moves one page up
· mouse wheel scroll scrolls by half a page
On bottom line (status line):
· left click moves one page down
· middle click displays the text status line or, if
permanent file status is enabled, display charac‐
ter information
· right click moves one page up
On pull-down menu header (in left menu area of upper line):
· left or right click or mouse wheel scroll opens
menu
· middle click opens menu with HOP-modified func‐
tions
On flag indication (in right flag area of upper line):
· middle click toggles flag
· left click →NEW→ opens flag menu if menu is open:
toggles flag (effectively allowing double-click to
toggle)
· right click or mouse wheel scroll opens flag menu
On open menu
· mouse wheel scroll navigates in menu
· mouse movement (without holding button) navigates
in menu - enabled by default in mintty, xterm,
gnome-terminal, cygwin console; may be controlled
with -* / +* command line options mouse movement
right/left (well beyond menu border) navigates to
neighbour menu mouse movement right (a few posi‐
tions) on submenu item opens submenu
· left click invokes menu item pointed to with the
mouse
· left or right drag (holding button down after
opening the menu) navigates in menu
· left or right release (after mouse dragging)
invokes selected menu item
· middle click toggles HOP modifier
· Ctrl-mouse-wheel switches to next or previous menu
Configuration hint: To enable mouse operation in a Windows console
window, deactivate "QuickEdit mode" in the properties menu.
Menus
Mined provides three kinds of menus, all can be opened with either
mouse clicks or commands. The menus offer the most important editing
functions (apart from simple movement). Some menus have their items
grouped into sections, some of which have subtitles.
The HOP flag can be toggled while a menu is open with any of the HOP
key, ^G, Space, or the middle mouse button. When a pull-down menu is
opened with the middle mouse button, the HOP variation is initially
triggered, offering the HOP variations of the menu items.
The three menu groups are used as follows:
· A pull-down menu is opened by clicking the mouse on the
menu header (in the left part of the top screen line) 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, Alt-I, Alt-K, Alt-Q, or Alt-E, respectively
(or use an ESC prefix instead of an Alt- modifier respec‐
tively).
· 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 submenu is open, cursor-left goes back to the parent menu, cur‐
sor-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 start‐
ing with that letter, or containing a word starting with
that letter); activate menu item with Enter key.
· With mouse clicks: open menu with click (and release)
mouse button, switch to other menu with another click,
click on item to activate it. The mouse wheel may be used
to navigate menu items.
· With mouse dragging: open menu with mouse button (left or
right), browse menus and items with button held down,
activate selected item with releasing mouse button.
Methods may be mixed, e.g. open a menu with either mouse click or key‐
board, navigate with mouse wheel, then select with Enter.
When selecting a menu item, in most cases the associated function is
carried out and the menu closed afterwards. In some cases, an option
is toggled and the menu stays open (esp. in Info menu: Han info pronun‐
ciation selection, character information "with" attributes selection).
Scrollable menus: In a low-height terminal (e.g. 24 lines), longer
menus (especially the Encoding menu and the Input Method menu) may not
fit on the terminal. All menus are scrollable with cursor keys, includ‐
ing Page Down/Up, Home, End keys.
When the window size is changed, open menus are closed in order to pre‐
vent 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 move‐
ment (e.g. with Windows). An option -L1 could compensate for that scal‐
ing (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 modi‐
fier, set the xterm resource metaSendsEscape to true and the rxvt
resource meta8 to false as suggested in the example file Xde‐
faults.mined in the Mined runtime support library. (With older ver‐
sions 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 dynami‐
cally with the +D option.
Interoperable and multiple paste buffers
System paste buffer
→NEW→ In the Windows/cygwin version, Shift-Ins inserts the Windows
paste buffer rather than the mined paste buffer. Copy to paste buffer
always fills both paste buffers.
Inter-window paste buffer
Mined can perform copy/paste operations within different editing ses‐
sions (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 configura‐
tion.
Multiple paste buffers
Mined provides emacs-style multiple paste buffers that are organised as
a buffer ring. Every buffer cut or copy operation (that places the text
between the marked and the current position to the buffer) creates a
new buffer and stacks it to the list of buffers. If the feature
"deleted word/line appends to buffer" is enabled (+VV) the commands
delete-end-of-line (^K), delete-word (^T) and delete-end-of-sentence
(currently emacs mode only) append to the top buffer (disabled with the
option -VV).
To paste a non-top-most buffer, paste the most recent buffer first as
usual, then use the buffer-ring command (Alt-Ins or Ctrl-F4, or M-y in
emacs mode) to exchange the pasted text with the previous buffer. This
can be repeated, going down the stack of buffers, and at its bottom,
starting over from the top again.
Keypad modes and Visual selection
Mined highlights text selection visually, with both mouse selection and
keyboard selection.
→NEW→
Keypad modes
· In Shift-select mode (enabled with option -kS), Shift-
modified keypad keys start or extend visual text selec‐
tion; otherwise the keypad functions are not modified, so
that e.g. the useful quick Mark/Copy selection with
Home/End keys can still be used.
Note: terminal support to report Shift-modified cursor
keys is required to enable this feature.
The option adjusts some other interactive responses as
well to match common selection practice:
· auto-copy (after click-and-drag) is disabled
· Shift-mouse-left-click extends the selection (if
supported by terminal)
· mouse-right-click does not extend the selection
before opening the menu
· in addition, Shift-HOP is mapped to the Copy func‐
tion
Shift selection keypad functions are as follows:
Shift-Left
select character left
Shift-Right
select character right
Shift-Control-Left
select word left
Shift-Control-Right
select word right
Shift-Up
select line up
Shift-Down
select line down
Shift-Control-Up
select to previous beginning of paragraph
Shift-Control-Down
select to next beginning of paragraph
Shift-Home
select to beginning of line
Shift-End
select to end of line
Shift-Control-Home
select to beginning of text
Shift-Control-End
select to end of text
Shift-PgUp
select to previous page
Shift-PgDn
select to next page
Shift-5 (on keypad)
copy selected text to paste buffer
· In Windows keypad mode (enabled with option -kw, also
implied by Windows emulation option +ew), additionally
non-shifted keypad keys are changed to perform the more
common functions, at the price of losing the easy
Home/End assignment to invoke Mark/Copy to paste buffer
(which can however be overridden with options -kc for the
small ("editing") keypad and -kC for the big ("numeric")
keypad). Also, some Control-modified keys change their
function assignment to match more common usage.
Keypad functions include the Shift selection functions
above and add the following functions:
Home move cursor to previous beginning of line
End move cursor to next end of line
Control-Left
move cursor to previous beginning of word
Control-Right
move cursor to next end of word
Control-Up
move cursor to previous beginning of paragraph
Control-Down
move cursor to next beginning of paragraph
Control-Home
move cursor to beginning of text
Control-End
move cursor to end of text
Control-Backarrow
delete word left
Control-Del
delete word right
HOP Control-Backarrow
delete to beginning of line
HOP Control-Del
delete to end of line
Shift-select mode (-kS) may become the default in a future version.
Visual selection is toggled by the following actions:
· Start visual selection highlighting:
· mouse click (then drag)
· Mark command (Home key, Control-space, or
Mark/Select from quick menu or Edit menu)
· →NEW→ (in Shift-select mode) Shift-cursor keys
· Extend visual selection highlighting:
· mouse drag
· keyboard navigation
· →NEW→ (in Shift-select mode) Shift-cursor keys
· mouse click
· →NEW→ (in Shift-select mode) Shift-mouse-click
· Hide visual selection highlighting:
· modify text
· (unless in Windows keypad mode) Copy (End key or
from quick menu or Edit menu)
· Mark twice (e.g. press Home Home)
· (unless in Windows keypad mode) mouse release
(after drag, with auto-copy option)
· Find (except Find matching parenthesis) (except
with "keep on search" option)
· Goto text position
· Open file
· Re-enable selection highlighting and continue previous
selection:
· "continue Select" from menu
· →NEW→ (in Shift-select mode) Shift-cursor keys
· →NEW→ (in Shift-select mode) Shift-mouse-click
Selection behaviour can be tuned with a few options in the Paste buffer
menu.
Note: The actual behaviour of the paste buffer functions acting on the
text selection (Copy, Cut) are not affected by the visual selection;
they work alike even if the selection is hidden.
The Delete key is the only function that is actually modified by visual
selection, following a dual-mode behaviour consistent with most contem‐
porary text editors: if a non-empty visual selection is active, it
deletes the selected area (Cut to paste buffer), otherwise, it deletes
the next character.
Rectangular copy/paste
Rectangular copy/paste area mode can be toggled on the Paste buffer
flag (see also description of Quick Options (Mode indication) flags),
in the Paste buffer menu, with HOP Mark while already on marked posi‐
tion, or preselected with the option +[. Rectangular area is a prop‐
erty of the copy/paste function, not of the paste buffer.
Note: The result of rectangular paste may not be quite as expected in
these cases:
· The paste buffer contains lines of different length.
· The border of the paste area (in either the text or the
paste buffer) contains characters of different width,
like TAB, double-width, or isolated combining characters,
or even incomplete character codes.
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 termina‐
tion 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 for‐
matting, i.e. no text property is required that would
affect visual layout of the text.
Note: Additional visual support of paragraph end detec‐
tion is available with the mined option -p that distin‐
guishes 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 Quick Options (Mode indication)
flags display; see description of Quick Options (Mode indication)
flags.
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 charac‐
ters (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 pre‐
fixing a parenthesis character with HOP. For example, HOP "{" would
enter a pair of "{" "}", both auto-indented on their respective new
line. Other pairs are "(" ")", "[" "]", "<" ">".
HOP "/" enters an indented Javadoc comment frame.
Back-Tab (Undent function / reverse indent)
A Backarrow key from a position that is only preceded by white space on
the line and on the line above will revert the input position to the
previous matching indentation level. To avoid auto-undentation
("Delete single"), use Ctrl-Backarrow or F5 Backarrow to delete only
one character left, →NEW→ or toggle auto-indentation off from the
Options menu.
Note: Ctrl-Backarrow only works if configured in your X configuration,
see the example configuration file Xdefaults.mined in the Mined runtime
support library.
Tab expansion
With one of the options -+4 or -+8, a Tab key input will be expanded to
an appropriate number of Space characters instead of inserting a Tab
character. You can still insert a literal Tab character with Ctrl-V
Tab.
Search and replace multiple lines
Mined has overcome the typical Unix tool limitation of line orientation
in search operations. Search and replacement patterns can contain
embedded newlines. Enter a newline (linefeed character) in the search
string with ^V^J or \n (or \r to match CRLF newlines). (In some cases
there are still display problems; then update the screen with the ESC
"." command.)
Header line underlining
The command HOP "-" (e.g. Ctrl-G -) underlines the header line before
the cursor position with as many "-" characters as needed; it applies
to the current line unless the cursor is at a line beginning in which
case it applies to the previous line.
Automatic backspace mode adaptation
There is much confusion about what character codes are delivered by the
Backarrow and Del keyboard keys in different operating environments and
configurations. For proper operation, the "stty erase CHAR" configura‐
tion should generally be set correctly to reflect the actual code emit‐
ted by the terminal. Mined detects this setting and adjusts its han‐
dling accordingly, so that the "Backarrow" key should normally work as
expected (delete a character left).
Overview: input support features
Character input
Mined provides several methods to support input of special characters
that may not be easily available on the keyboard.
· Accented and mnemonic input support defines Accent prefix
keys to compose accent combinations with subsequently
entered characters.
· It also provides Character input mnemonics for easily
memorisable input of a wide range of characters, includ‐
ing most composed Unicode characters.
· Input support commands include a quick shortcut for two-
character mnemonics.
· Input support commands also provide for character input
by hexadecimal / octal / decimal character code or Uni‐
code value, including support for subsequent entry of
multiple numeric characters according to ISO 14755.
· Keyboard mapping switching the keyboard to support
another script. This mechanism also provides CJK input
methods.
Structured input
· HTML tag input (starting/closing or embedding marked
text).
· Auto indentation and Back-Tab.
· Structure input commands: Input of indented matching
parentheses and Javadoc frames.
· Paragraph justification (line/word wrap).
· Header line underlining
Special features
· Smart quotes automatic transformation of entered straight
quote marks into typographic quotation marks (style can
be selected in flags area) or apostrophe, separate
accents as appropriate typographic symbols, as well as
smart dashes and other smart text replacements.
· Right-to-left script input support.
Handling files with mined
Tags file support / Identifier and file lookup
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.
As a special function, if ESC t is typed on an include statement (line
beginning with "#include" or "include"), the included file will be
opened.
Note: Like with a number of positioning commands, ESC t places the cur‐
rent 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 safety and 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.
Backup files
With command line option(s) +b, mined saves a backup copy of any file
being overwritten (like saving the file being edited, saving to a dif‐
ferent file, copying the paste buffer to a file). It supports three
backup file name conventions and a few combined modes to select among
them:
+b- no backup files
+bs simple backup files: filename~
+be emacs style numbered backup files: filename.~N~ where N are
increasing version numbers
+bv VMS style numbered backup files: filename;N (using the original
notation of the VMS operating system) where N are increasing
version numbers
+bn numbered backup files, either emacs or VMS syntax, whichever
already exists (with a higher version number)
+ba automatic backup files, either numbered if numbered backups
(either style) already exist, or simple
Note: In order to preserve possibly existing hard links to the file
being edited, it is actually copied, not just renamed for the backup
version (like with joe, vim, or emacs with option backup-by-copying).
Note: In mined 2011.19, +ba (automatic simple/numbered backup) is the
default, and +b is a shortcut for +ba. This is subject to change in a
future version, however. Note: To select your preference, include the
respective option in the environment variable MINEDOPT, or set the
environment variable VERSION_CONTROL (compatible with usage by emacs
and cp) with the following mapping:
none or off
+b- - no backups
numbered or t
+be - numbered backups (emacs style)
existing or nil
+ba - automatic backup mode
simple or never
+bs - simple backups
Note: To place backup files in a different directory than the original
file, use the environment variable BACKUP_DIRECTORY or BACKUPDIR. It
can be either an absolute pathname (e.g. $HOME/.backups) or a relative
pathname (e.g. .~) in which case backup files are stored relative to
the respective working directory of mined. Note: On VMS, backup
options are ignored as VMS handles backup files natively.
File locking
Mined checks and maintains interoperable lock files, which are symbolic
links mentioning the user and machine currently editing the file (not
on MSDOS and VMS). If the user tries to modify the text of a file
locked by somebody else, mined informs the user and changes editing
mode to view-only. The lock can be overridden (removed or ignored)
from the File menu.
Edited text / Recovery files
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, even when editing without an asso‐
ciated filename (in which case other popular editors ignore loss of
edited text).
There are three cases, however, in which edited text would be lost:
· if the user explicitly discards edited text (e.g. ESQ q
and not answering the "Save?" question with "y")
· if mined is sent an external terminating signal (e.g. on
terminal I/O error); two exceptions are the SIGKILL sig‐
nal (which cannot be caught by a program) and SIGTERM
(see below)
· in the rare case that mined should fail with an internal
signal (e.g. if out of memory)
In these cases, mined can save the edited text in a recovery file
dir/#name# (when editing file dir/name); in the explicit case, this is
only done if the answer to the "Save?" question is "r" (to "recover
later"). If the edited file is later opened, and a recovery file still
exists (which is newer than the file being opened), mined will display
a notice. In the File menu, there is the option to recover the text
from the recovery file. Note: The recovery file is interoperable with
emacs (as are the use cases); however, mined is superior here because
emacs mangles non-ASCII characters in recovery files. Mind, though,
that interoperability with respect to recognising recovery files
depends on consistent configuration of their location; see the direc‐
tory configuration option below. Note: If mined is sent an explicit
SIGTERM signal it tries to terminate normally instead, writing modified
text to the file being edited, including interactive handling if
needed. Note: After catching a signal, mined also tries an emergency
save of the edited text into a "panic file" in one of the directories
$TMPDIR, $TMP, $TEMP, /usr/tmp, or /tmp (whichever variable is defined
first and directory is writable in this order; or similar directories
under VMS or MSDOS). The file contains the edited text, identical to
the recovery file. It is written first, before the recovery file, to
provide a quick save attempt e.g. if the system is crashing and the
file system of the edited file is no longer available. Note: If possi‐
ble, mined also tries to continue normally after panic handling (unless
multiple external signals are nested). Note: To place recovery files
in a different directory than the original file, use the environment
variable AUTO_SAVE_DIRECTORY or AUTOSAVEDIR or BACKUP_DIRECTORY or
BACKUPDIR as described for backup files above.
Overwriting files and →NEW→
Change monitoring If any command is issued to write to a file not pre‐
viously read in (after change of file name or working directory, or
with a Copy to file command), mined prompts for confirmation.
→NEW→ Also, if mined detects that the file being edited has been
changed, it displays a notice and asks for confirmation before saving.
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 pre‐
served 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 stan‐
dard 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 cre‐
ated (using the delete character right function on the last line end).
NUL characters are handled as virtual line ends. Lines too long for
internal handling are split transparently (with a "none" virtual line
end).
Character codes that are illegal in the currently selected text
encoding are maintained transparently and are clearly indicated (e.g.
illegal UTF-8 sequences in Unicode text).
Files with mixed encoding (e.g. UTF-8 / 8 bit sections) can be
edited comfortably.
Input: To enter a NUL character, use ^V # 0 or ^V < NUL or Ctrl-
Space > (if the keyboard supports the latter).
File info: Memory of file position and editing style parameters
On every file saving command, mined remembers the last text position,
paragraph justification margins (only if automatic paragraph justifica‐
tion is active), selected Smart Quotes style and Input Method (Keyboard
Mapping), and TAB display width. File info memory is relative to the
working directory, using a hidden file info file (.@mined - mined also
handles its DOS short name @MINED~1 where it occurs, to provide some
interoperability with the DOS version of mined); previously used file
marker files (@mined.mar) will be migrated and cleared from duplicate
entries.
Note: File information is stored every time the user invokes a
command to save the file (even if no write is performed because the
text has not been edited). When editing that file again (from the same
working directory), mined will automatically move to that position (and
set text marker 0 to it).
File info grooming
Mined checks and removes duplicate entries (from previous versions) in
the file info file. With option +@, mined also checks whether file
info entries correspond to actual files that exist and are visible to
the user; it will otherwise remove such entries. Mined can be called
with this option alone and will then exit after file info grooming.
Mind, however, that files may be invisible only temporarily (e.g. due
to unmounted file systems, or unplugged USB drives), and will get their
info entries removed then, too.
File chooser
To select a filename for a file operation (e.g. open, save, insert,
write buffer), mined opens an interactive file chooser that presents a
listing of files and directories in the current directory (for the
change directory command, only directories are shown). The list can be
navigated and manipulated in these ways:
· cursor keys (including page down/up, end/begin)
· mouse movement and scroll
· entering a filename prefix which navigates to the first
file matching it
· TAB will usually copy the current filename into the edit‐
ing field (if it was partially matching a file name, it
is thus completed, similar to file completion on the com‐
mand line but case-insensitively)
· TAB on a directory will navigate the file chooser into it
· TAB or HOP while the filename editing field is containing
wildcards interprets the entered file name as a pattern
and switches to a filtered file listing (recognising "*",
"?", "[abc-x]", "[^abc-x]" wildcard expressions, no
escapes)
· Enter on a directory will navigate the file chooser into
it (unless for the ESC d command in which case it is
selected)
· Enter on a selected (or entered) filename will choose the
name
Also, a filename can be typed in directly (being interpreted as a file‐
name prefix interactively). The filename or prefix is displayed in the
title bar of the popup file chooser menu. When entering file or direc‐
tory names, the leading ~ notation to refer to one's home directory is
accepted. Note: The full path name of the currently displayed direc‐
tory is shown as the first entry in the file chooser menu. Note: A few
sorting options are offered in the "Options" - "File sort options..."
submenu. They can also be preselected with the command line option
+zX. See the file chooser options for details. Note: On some file sys‐
tems, retrieving directory information can be very slow. →NEW→ Mined
handles this and provides feedback about delayed operation, retrieves
directory information lazy by page being displayed, and flushes display
of the file chooser by line to provide visual feedback about the file
information being retrieved.
→NEW→
File switcher The File switcher presents a list of active files to
select from, comprising files supplied on the command line, and files
opened or saved later. Invoke the File switcher with Alt-# or ESC #,
or Alt-F3 or ESC F3, or from the File menu. The Close file command
(from the File menu) closes the current file and removes its name from
the list. The list can be navigated and manipulated in these ways:
· cursor keys (including page down/up, end/begin)
· mouse movement and scroll
· entering a filename prefix which navigates to the first
file matching it
· Enter on a selected (or entered) filename will choose the
name
To reload the current file and stay (approximately) at the current
position, use Alt-Enter or ESC Enter after reloading.
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 memory is enabled; see File info: Memory of file position
and editing style parameters above.
Restricted mode (tool mode)
Restricted mode is triggered with
<code>mined -- [ filenames ... ]
or (if installed)
<code>rmined [ 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.
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 config‐
ured properly, printing works in any selected character encoding. See
Printing configuration for further details.
In Windows, mined uses notepad /p for printing.
Note: The font size interactively configured in notepad also affects
the print size; with a fixed-width font, a font size of not more than
10pt gives you at least 80 characters per line; if 72 characters per
line are enough, you can use 11pt font size.
Working with mined
Quick Options (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 tog‐
gled quickly with a left-click or middle-click. (Keyboard shortcuts
for handling flags and menus are also available.)
· Information display mode
· "?": this flag menu offers options for perma‐
nent File info, Char info, or Han character infor‐
mation display. For Char info and Han info, fur‐
ther options can be selected to configure the
information shown.
(Note that in extreme situations, permanent File
info display might cause swappping (when editing a
file that does not fit completely in memory, e.g.
large file on old system). In that case, disable
the feature.)
· (In non-Latin-1 text and terminal mode only) Input Method
(Keyboard Mapping)
· "--": no keyboard mapping is active.
· "...": a two-letter input method tag indi‐
cates 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 map‐
ping.
· Left mouse button on this indication toggles
between the current and the previous selected key‐
board 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 Uni‐
codeData.txt
· "H": generated from Unihan database Uni‐
han.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 typo‐
graphic quote mark (double or single, respec‐
tively), 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 transpar‐
ently; 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, respec‐
tively)
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 / "code‐
page" 1252 (superset of Latin-1)
· "L9": Western "Latin-9" character set (with
Euro sign) / ISO 8859-15
· "Cy": Cyrillic character set / KOI8-RU encod‐
ing (Russian, Ukrainian, Bjelorussian)
submenu more Cyrillic:
· "Ru": Cyrillic / Russian KOI8-R encoding;
used if locale environment indicates this as ter‐
minal 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 ter‐
minal 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
submenu 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 (super‐
set of ISO 8859-8)
submenu more Latin:
· "MR": Mac-Roman character encoding
· "PC": PC DOS character encoding ("codepage
437")
· "PL": PC Latin character encoding ("codepage
850")
· "LN" where N is 2..8 or "0": Latin-N or
Latin-10 encodings / ISO 8859-2/3/4/9/10/13/14/16
CJK encodings:
· "B5": Traditional Chinese character set /
Big5 encoding with HKSCS extensions
· "GB": Simplified Chinese character set /
GB18030 encoding, includes GBK encoding, includes
GB 2312 / EUC-CN encoding
· "CN": Traditional Chinese character set / CNS
/ EUC-TW encoding (including 4-byte code points)
· "JP": Japanese character set / JIS X 0208 /
0212 / 0213 / EUC-JP encoding (including 3-byte
code points)
· "sJ": Japanese character set / Shift-JIS
encoding (including single-byte mappings to
Halfwidth Forms)
· "KR": Korean Unified Hangul character set /
UHC encoding, includes KS C 5601 / KS X 1001 /
EUC-KR encoding
· "Jh": Korean Johab character set and encoding
Further Asian encodings:
· "VI": Vietnamese character set / VISCII
encoding
· "TV": Vietnamese character set / TCVN encod‐
ing
· "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 char‐
acters 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 differ‐
ent file name (or discard)
· Paste buffer (double flag)
· "%": normal copy/paste mode
· "[": rectangular copy/paste mode
· "=": cut/copy replaces (overwrites) paste
buffer
· "+": cut/copy appends to paste buffer
· "%" or "[", "=" or "+": as above, and indi‐
cates Unicode paste buffer mode (in non-Unicode
text encoding)
· Auto-indent mode
· "�": auto-indentation enabled: entering a
newline indents the following line like the cur‐
rent 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 justifica‐
tion
· " ": 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 abso‐
lute 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 charac‐
ter, 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; if mined detects a dark
terminal background (works with xterm and mintty), it adds a highlight‐
ing background to improve the contrast. Other highlighting modes apply
to HTML comments and JSP code. This option is activated if the file
name suffix is one of .html, .htm, .xhtml, .shtml, .sgml, .xml, .xul,
.jsp, .asp, .wsdl, .dtd, .xsl, .xslt; it can be toggled from the
Options menu.
HTML tag matching: With the ESC ( or ESC ) command, mined searches for
the opening / closing HTML tag corresponding to the current one.
Note: While you edit within a line and change its HTML ending status
(by entering or deleting '<' or '>'), the display status of subsequent
lines is not changed. (You may refresh the display with ESC ".")
Configuration hint: The colour used for displaying HTML tags can be
configured with the environment variable MINEDHTML using an ANSI
sequence, e.g. MINEDHTML=34 (the default).
Search structure match
With the ESC ( or ESC ) commands, mined searches for a matching end of
various structures, like opening/closing HTML/XML tags (see above),
matching parentheses or brackets, matching comments (/* */), matching
conditional macros (#if...), mail messages (in a mailbox file), MIME
attachments. See the ESC ( command in the command reference for
details.
Structure input
A structure template with opening and closing ends can be inserted with
the structured input feature. HOP followed by one of { , ( , [ , <
enters a corresponding bracket pair, HOP / enters a Javadoc comment
frame. HOP - enters an underlining line matching the previous line.
Visual structure input is supported by Auto indentation
Password hiding
With the option -P, mined hides one word (separated by white space)
behind the string "assword" in a line (to accommodate for "password" or
"Password") and displays reverse "*" instead. Password hiding can be
disabled with +P.
By default (without any P option), password hiding is activated when
editing a file whose file name starts with "." (Unix "hidden" file con‐
vention).
Virtual bold/underline stropping
With the option +ZZ, mined displays all-capital words in bold lower-
case and supports their input using only a first capital letter, then
small letters to input a word in all-upper-case. This is to support
editing computer programs in Algol-like languages in their typical pub‐
lication look. Use +Z_ for underline stropping, disable with -ZZ.
Enabled by default if the filename ends with ".a68".
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)
customize 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
customize indication with MINEDDOSRET or MINEDUTFDOSRET
� CR (Mac-type line end)
on black and white terminals, @ is used instead
customize indication with MINEDMACRET or MINEDUTFMACRET
transparently handled and displayed with +R command line option
� NUL character (pseudo line end)
� "none" line end (virtual line end as used to split input lines
too long for internal handling; will be joined into a single
line when saving the file)
� no-break space (Unicode character U+00A0)
� Unicode line separator
� Unicode paragraph separator
customize indication with MINEDPARA or MINEDUTFPARA
� end of paragraph (if enabled by -p)
customize indication with MINEDPARA or MINEDUTFPARA
� line extending the end of the screen line
(move cursor right to shift line display)
customize indication with MINEDSHIFT or MINEDUTFSHIFT
� line shifted out left of the screen line
(move cursor left to shift line display back)
customize indication with MINEDSHIFT or MINEDUTFSHIFT
� position spanned by Tab character
customize 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 and other special (esp.
invalid) character indications with MINEDSPECIAL. 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. MINEDDIM can also be
set to an empty value or to an integer percentage value (e.g.
MINEDIM="50%") to have mined apply dim colour to the indications; the
colour value is computed from the current foreground and background
colours (works in xterm and mintty).
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 func‐
tions), a number of help bars can be displayed in the bottom line.
F1 followed by another F1, optionally modified by a combination of Con‐
trol/Shift/Alt, displays a help line with function attachments to the
respectively modified function keys; F1 followed by Ctrl-1/Alt-1/Alt-
Ctrl-1 or Control with a punctuation key (e.g. Ctrl-,) displays a help
line for the respective accent prefix functions attached. See the F1
help bars command reference for details.
Menu display
Menu borders are displayed using Unicode Box Drawing characters in a
UTF-8 terminal, using VT100-mode 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 con‐
figuration 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 graphics capability for the terminal you
use but you know (or want to try if) your terminal has that capability,
use of graphical borders can be enforced with the -Qv command line
option.
Configuration hint: The colour of menu borders can be changed with the
environment variable MINEDBORDER. The marker of selected items in flag
menus can be changed with the environment variable MINEDMENUMARKER.
Language support
Most of the information in this chapter is redundant. It collects lan‐
guage-specific features described in the other chapters in a more tech‐
nical 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 submenu "more Latin"), or use the
respective command line parameter. See Character encoding flags for
details.
Terminal: If your terminal runs any of these encodings, mined can
detect this by proper setting of environment variables (LC_*, LANG or
TERM). See Terminal environment for details.
Character input support
For input of accented characters and ligatures, mined provides an
extensive set of accent prefix functions, as well as mnemonic input.
See Character input support for more details.
Language-specific mnemonic conversion support
The generic mnemonic transformation command ESC _ (which transforms a
mnemonic transcription in the text into its accented or ligature char‐
acter) has a few national variants, using keys available on the respec‐
tive 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 (submenu "more Latin"), or use the respective command
line parameter. See Character encoding flags for details.
Terminal: If your terminal runs any of these encodings, make sure to
indicate this properly with an environment variable (LC_* / LANG). See
Terminal environment for details.
Character input support
For input of accented characters, mined provides an extensive set of
accent prefix functions, covering
· Macron (Latvian, Lithuanian, Polynesian languages
· Breve (Romanian, Turkish)
· Dot above (Lithuanian, Polish)
· Ogonek (Lithuanian, Polish)
· Caron/H�č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 han‐
dled properly if a Lithuanian locale setting is detected
(LC_ALL/LC_CTYPE/LANG begins with "lt").
Turkish and Azeri: Case conversion of i/dotless i is handled properly
if a Turkish locale setting is detected (LC_ALL/LC_CTYPE/LANG begins
with "tr" or "az").
Esperanto
Character sets
In addition to Unicode, mined supports the Latin-3 character set, plus
the DOS codepage CP853 (especially as terminal encoding). To view and
edit a file in Latin-3 encoding, select it from the Encoding menu (sub‐
menu "more Latin"), or use the command line parameter -E3. To tell
mined it runs a CP853 DOS setting, use a LC_CTYPE variable setting
(.CP853) or the option +E=CP853. See Character encoding flags for
details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined supports a built-in input method for Esperanto, using the "x-sys‐
tem", plus "Sm" for the Spesmilo sign. Select it from the Input method
menu.
Accented character input support
Instead of the input method, also the following accent prefix functions
can be used:
Ctrl-F6
Ctrl-^ circumflex
Alt-Shift-F5
Ctrl-( breve
Hawai'ian
Accented character and 'okina input support
The following shortcuts and accent prefix functions can be used:
HOP ` (grave accent)
glottal stop / 'okina (U+02BB)
Alt-Ctrl-F6
Ctrl-- (Ctrl-minus)
macron (long vowel)
Note: In smart quotes mode, the grave accent (or backquote) ` alone
enters a glottal stop as well.
Russian, Ukrainian, other Cyrillic-script languages
Character sets
In addition to Unicode, mined supports ISO Cyrillic, Windows Cyrillic,
and KOI8-RU which is a convenient merge of KOI8-R (Russian) and KOI8-U
(Ukrainian) (which are also supported separately but not included in
the menu). To view and edit a file in one of these encodings, select
it from the Encoding menu ("Cyrillic" or submenu "more Cyrillic"), or
use the respective command line parameter. See Character encoding
flags for details.
Terminal: If your terminal runs any of these encodings, make sure to
indicate this properly with an environment variable (LC_* / LANG). See
Terminal environment for details.
Input method
Mined supports a built-in input method for Cyrillic. Select it from
the Input method menu.
Accented character input support
In combination with a Cyrillic input method or keyboard, mined provides
accent prefix support for Cyrillic accented letters. Accent prefix
functions for Latin letters are reused for Cyrillic accents, see the
following table:
F5
Ctrl-: diaeresis
Alt-Ctrl-F6
Ctrl-- descender / macron
Alt-F5
Ctrl-/ stroke
Ctrl-& hook
Ctrl-- Ctrl-&
middle hook
Alt-Shift-F5
Ctrl-( breve
Ctrl-; tail / tick / upturn
F6
Ctrl-'
Ctrl-� vertical stroke
Shift-F6
Ctrl-` grave
Shift-F5
Ctrl-~ titlo
acute acute
double acute
grave grave
double grave
See Character input support for more details.
Script highlighting
To distinguish some Cyrillic letters from Latin look-alikes, Cyrillic
is by default displayed with colour highlighting.
Tadjik
Character sets
In addition to Unicode, mined supports KOI8-T. To view and edit a file
in this Tadjik encoding, select it from the Encoding menu (submenu
"more Cyrillic"), or use the respective command line parameter -E:Tj.
See Character encoding flags for details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined supports a built-in input method for Cyrillic. Select it from
the Input method menu.
Accented character input support
See above for Cyrillic accented input support.
Script highlighting
Cyrillic is by default displayed with colour highlighting.
Kazakh
Character sets
In addition to Unicode, mined supports PT154. To view and edit a file
in this Kazakh encoding, select it from the Encoding menu (submenu
"more Cyrillic"), or use the respective command line parameter -E:Kz.
See Character encoding flags for details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined supports a built-in input method for Kazakh. Select it from the
Input method menu.
Accented character input support
See above for Cyrillic accented input support.
Script highlighting
Cyrillic is by default displayed with colour highlighting.
Georgian
Character sets
In addition to Unicode, mined supports Georgian-PS. To view and edit a
file in this encoding, select it from the Encoding menu (submenu "more
Cyrillic", tell me if that's not suitable), or use the respective com‐
mand line parameter -E:GP. See Character encoding flags for details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Greek
Character sets
In addition to Unicode, mined supports ISO Greek. To view and edit a
file in this encoding, select it from the Encoding menu (submenu
"Greek/Oriental"), or use the respective command line parameter -E:I7.
See Character encoding flags for details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined supports a built-in input method for Greek. Select it from the
Input method menu.
Accented character input support
In combination with a Greek input method or keyboard, mined provides
accent prefix support for both monotonic Greek and polytonic Greek.
Monotonic Greek uses only one accent, the tonos which looks like acute
and can be entered with the F6 or Ctrl-' prefix function.
Polytonic Greek uses - among many others - the oxia accent which is
nowadays considered identical and looks like the monotonic tonos. How‐
ever, for historic reasons, there are two sets of Greek accented let‐
ters with this accent in Unicode, one with tonos and one with oxia.
While this may be considered a design flaw of Unicode, in fact both
kinds of characters exist and mined provides support for both accents.
The choice of usage is up to the user. Note, e.g. that
F6 < alpha >
enters the Greek letter alpha with tonos
Ctrl-F6 < alpha >
enters the Greek letter alpha with oxia
Likewise, with mnemonic input
^V ' < alpha > (using the apostrophe key)
enters the Greek letter alpha with tonos
^V � < alpha > (using the acute accent key)
In these examples, < alpha > indicates the Greek letter alpha, which
may e.g. be entered by selecting the Greek input method and typing the
a key.
Accent prefix functions for Latin letters are reused for Greek accents,
see the following table:
F5
Ctrl-:
Ctrl-" dialytika
Shift-F5
Ctrl-~ perispomeni
Ctrl-F5
Ctrl-, iota (ypogegrammeni)
Ctrl-Shift-F5
Ctrl-; prosgegrammeni
Alt-Shift-F5
Ctrl-( vrachy
F6
Ctrl-' (Ctrl-apostrophe) tonos
Ctrl-F6
Ctrl-� (Ctrl-acute)
Ctrl-^ oxia
Shift-F6
Ctrl-` (Ctrl-grave) varia
Alt-F6
Ctrl-< psili
Alt-Shift-F6
Ctrl-. dasia
Ctrl-Shift-F6
macron
Alt-6 psili and oxia
Ctrl-Alt-6
dasia and oxia
Alt-7 psili and varia
Ctrl-Alt-7
dasia and varia
Alt-8 psili and perispomeni
Ctrl-Alt-8
dasia and perispomeni
For polytonic Greek, 2 or 3 accents can be combined by applying the
respective accent prefix functions in sequence. For convenience, the
most frequent combinations of 2 accents are also available as dedicated
accent prefix keys as listed above. Also, modified Ctrl-/Alt-/Alt-
Ctrl- digit keys are used for polytonic Greek accent prefix functions.
See Character input support for more details.
Script highlighting
To distinguish some Greek letters from Latin look-alikes, Greek is by
default displayed with colour highlighting.
Language-specific case conversion
Case conversion of final sigma is handled properly.
Amharic
Input method
Mined supports two built-in input methods for Amharic, one is called
"Ethiopic" (source: yudit), the other is called "Amharic" and was gen‐
erated from Unicode character names (preferable according to user feed‐
back). 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 (submenu "Greek/Oriental"), or use the respective command
line parameter -E:I6 or -EA. See Character encoding flags for details.
Terminal: If your terminal runs ISO Arabic, make sure to indicate this
properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined supports a built-in input method for Arabic. Select it from the
Input method menu.
Accented character input support
Not yet implemented. Tell me if you have a proposal or preference for
assignment of accent prefix functions to the keyboard.
Bidi support
Mined has implicit primitive support for visual right-to-left input
which is however not the preferred storage method as complete right-to-
left text should be stored in logical order.
Mined auto-detects and cooperates with a bidi terminal (mlterm) in
which case visual right-to-left input is disabled.
A full context-aware bidi display and editing technique would still
have to be integrated into mined. Tell me if you are interested.
Hebrew
Character sets
In addition to Unicode, mined supports ISO Hebrew and Windows Hebrew
(CP1255). To view and edit a file in one of these encodings, select it
from the Encoding menu (submenu "Greek/Oriental"), or use the respec‐
tive command line parameter -E:I8 or -EE. See Character encoding flags
for details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined supports a built-in input method for Hebrew. Select it from the
Input method menu.
Accented character input support
Not yet implemented. Tell me if you have a proposal or preference for
assignment of accent prefix functions to the keyboard.
Bidi support
Mined has implicit primitive support for visual right-to-left input
which is however not the preferred storage method as complete right-to-
left text should be stored in logical order.
Mined auto-detects and cooperates with a bidi terminal (mlterm) in
which case visual right-to-left input is disabled.
A full context-aware bidi display and editing technique would still
have to be integrated into mined. Tell me if you are interested.
Smart replacement
As a special case of smart dash input replacement (enabled together
with smart quotes), mined inserts Hebrew Maqaf as a dash in the context
of Hebrew letters.
Chinese
Character sets
In addition to Unicode, mined supports Big5 (with HKSCS extension),
GB18030 (including EUC-CN and GBK), and CNS (EUC-TW) multi-byte charac‐
ter sets. To view and edit a file in one of these encodings, select it
from the Encoding menu (section "Chinese"), or use the respective com‐
mand line parameter -EB or -EG or -EC. See Character encoding flags
for details.
Auto-detection: Big5 and GB18030 text encoding are also auto-detected
when opening a file (with a certain success rate). Set the environment
variable MINEDDETECT="BG" to constrain auto-detection to Big5 and
GB18030 encodings. See Mined configuration for details.
Terminal: Mined supports native CJK terminals; make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
encodings support for details on detection and handling of CJK terminal
features.
Input method
Mined provides the following built-in input methods for Chinese:
Pinyin, Cangjie, WuBi, 4Corner, Boshiamy, and special support for a
Radical/Stroke lookup input method. Select the input method of your
preference from the Input method menu.
Han character information display
Mined provides special support for display of Han character information
according to the Unihan database. It comprises semantic information and
Mandarin, Cantonese, Hanyu Pinlu, Hanyu Pinyin, XHC Hanyu pinyin, and
Tang dynasty pronunciation.
Accented character input support
For Latin-based Pinyin transcription of Chinese, the usual accent pre‐
fix functionality is available.
Japanese
Character sets
In addition to Unicode, mined supports JIS character set in EUC-JP or
Shift-JIS multi-byte encoding. To view and edit a file in one of these
encodings, select it from the Encoding menu (section "Japanese"), or
use the respective command line parameter -EJ or -ES. See Character
encoding flags for details.
Auto-detection: EUC-JP and Shift-JIS text encoding are also auto-
detected when opening a file (with a certain success rate). Set the
environment variable MINEDDETECT="JS" to constrain auto-detection to
EUC-JP and Shift-JIS encodings. See Mined configuration for details.
Terminal: Mined supports native CJK terminals; make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
encodings support for details on detection and handling of CJK terminal
features.
Input method
Mined provides the following built-in input methods for Japanese: Hira‐
gana, 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 charac‐
ters 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 pre‐
fix functionality is available.
Korean
Character sets
In addition to Unicode, mined supports UHC (including EUC-KR) and Johab
multi-byte character sets. To view and edit a file in one of these
encodings, select it from the Encoding menu (section "Korean"), or use
the respective command line parameter -EK or -EH. See Character encod‐
ing flags for details.
Auto-detection: UHC text encoding is also auto-detected when opening a
file (with a certain success rate). Set the environment variable
MINEDDETECT="K" to constrain auto-detection to UHC encoding. See Mined
configuration for details.
Terminal: Mined supports native CJK terminals; make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
encodings support for details on detection and handling of CJK terminal
features.
Input method
Mined provides the following built-in input methods for Korean: Hangul,
Hanja, and special support for a Radical/Stroke lookup input method.
Select the input method of your preference from the Input method menu.
Han character information display
Mined provides special support for display of Han character information
according to the Unihan database. It comprises semantic information and
Hangul and Korean pronunciation.
Vietnamese
Character sets
In addition to Unicode, mined supports VISCII and TCVN character sets.
To view and edit a file in one of these encodings, select it from the
Encoding menu (section "Vietnamese"), or use the respective command
line parameter -EV or -EN. See Character encoding flags for details.
Auto-detection: VISCII text encoding is also auto-detected when opening
a file (with a certain success rate). Set the environment variable
MINEDDETECT="V" to constrain auto-detection to VISCII encoding. See
Mined configuration for details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined provides the following built-in input methods for Vietnamese: VNI
and VIQR. Select the input method of your preference from the Input
method menu.
It may be more convenient, however, to use the extensive accented char‐
acter input support provided by mined together with a normal Latin-
based keyboard (so without a keyboard-mapping input method), see Char‐
acter input support for Vietnamese below.
Character input support
Mined provides input support for multiple accented characters as used
in Vietnamese, as well as convenient accent prefix functions for combi‐
nations of two Vietnamese accents. Modified Ctrl-/Alt-/Alt-Ctrl- digit
keys are used for Vietnamese accent prefix functions. Alternatively,
mnemonic character input can be used. See Accented and mnemonic input
support for details, and see below for some introducing comments.
An accent prefix can either be applied to the plain Latin base letter,
or to a precomposed Vietnamese letter which already has one of the
accents. These are:
U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
U+0102 LATIN CAPITAL LETTER A WITH BREVE
U+0103 LATIN SMALL LETTER A WITH BREVE
U+01A0 LATIN CAPITAL LETTER O WITH HORN
U+01A1 LATIN SMALL LETTER O WITH HORN
U+01AF LATIN CAPITAL LETTER U WITH HORN
U+01B0 LATIN SMALL LETTER U WITH HORN
Examples: Suppose your keyboard is mapped to have Vietnamese characters
like A with circumflex available. Then:
^V � ' (Ctrl-V A-circumflex apostrophe)
enters the composite character U+1EA4 (A with circumflex and
acute)
^V ~ � (Ctrl-V O-circumflex tilde)
enters the composite character U+1ED6 (O with circumflex and
tilde)
Ctrl-6 A
enters U+00C2 (A with circumflex)
Alt-4 A
enters U+1EAA (A with circumflex and tilde)
Ctrl-Alt-3 A
enters U+1EB2 (A with breve and hook above)
Ctrl-Alt-3 O
enters U+1EDE (O with horn and hook above)
Note: Using composite base characters in mined character mnemonics or
accent prefix combinations as just described also works in non-UTF-8
text encoding mode (e.g. in VISCII or TCVN encoding).
Thai
Character sets
In addition to Unicode, mined supports the TIS-620 character set (with
CP874 extensions). To view and edit a file in this encoding, select it
from the Encoding menu (section "Thai"), or use the respective command
line parameter -ET. See Character encoding flags for details.
Terminal: If your terminal runs this encoding, make sure to indicate
this properly with an environment variable (LC_* / LANG). See Terminal
environment for details.
Input method
Mined provides a built-in Thai input method. Select the input method
from the Input method menu.
Accented character input support
Not yet implemented. Tell me if you have a proposal or preference for
assignment of accent prefix functions to the keyboard.
Typographic quotation marks
The smart quotes features transforms straight quote marks typed at the
keyboard into typographic quote marks. Select the Smart Quotes style
from the Smart Quotes menu.
English
Use English quote marks. In British English, single quotation
marks are used for outer level quotations and double quote marks
are used for inner level quotations. Simply use the respective
single or double quote key.
Spanish, Portuguese, Turkish
Use either English or French or Swiss quote marks.
Irish Use English quote marks.
German, Danish, Slovak, Czech, Serbian
Use German or Danish quote marks.
Bulgarian, Icelandic, Lithuanian
Use German quote marks.
Romanian
Use German quote marks, or traditional Dutch� quote marks.
Croatian
Use Danish quote marks.
Polish Use German or Danish quote marks, or traditional Dutch quote
marks.
Hungarian
Use German or Danish� quote marks or traditional Dutch quote
marks.
French Use French quote marks or Swiss quote marks (depending on which
inner quotation style is preferred). Pad additional no-break
space within quotes (U+00A0, can be entered with Ctrl-Shift-
space if configured).
Russian
Use either German or French or Swiss quote marks.
Slovenian
Use either German or French or Swiss quote marks, or Danish�
quote marks.
Armenian
You may use French quote marks.
Italian
Use either French or Swiss quote marks, or English� quote marks.
Albanian
Use either French or Swiss quote marks.
Swiss Use Swiss quote marks.
Norwegian
Use either Norwegian or Swiss quote marks, or English� quote
marks.
Swedish, Finnish
Use either of the Swedish or Finnish quote marks.
Dutch You may use traditional Dutch quote marks, or Swedish quote
marks.
Afrikaans
You may use traditional Dutch quote marks.
Greek Use either French, Swiss, or Greek quote marks, or traditional
Greek quote marks.
Hebrew Use Hebrew Gershayim.
Chinese
Use either CJK corner brackets, English quote marks, or (?) tra‐
ditional 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 spe‐
cific 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 com‐
bined 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 Quick Options (Mode indi‐
cation) flags area (right part of the top screen line), or by the menu
entry "Options - Combined display"; separated display mode can also be
selected by the command line option -c.
Combined display and editing mode (Combining display flag �)
Combined characters are displayed as intended (i.e., combined).
· Micro movement into combined characters:
· The cursor can be moved into a combined character with
Ctrl-cursor-left and Ctrl-cursor-right, or ^V cursor-left
and ^V cursor-right.
· You can determine the exact position of the cursor if
permanent character info is switched on (by HOP ESC u or
with HOP "Toggle Char info" in the Options menu).
· Partially editing combined characters:
· If the cursor is on a combined character, delete next
character (e.g. Del on small keypad) will delete the
whole combined character, with all combining accents.
· If the cursor is on a combined character, Ctrl-Del will
delete only the base character, leaving combining accents
which may then be combined with the previous character.
· If the cursor is within a combined character, delete next
character will delete the current combining accent only.
· Ctrl-Backarrow or F5 Backarrow ("Delete single") behind
or within a combined character will only delete the
rightmost combining accent (preceding the cursor posi‐
tion) while Backarrow would delete the whole combined
character.
· You can also position the cursor as described above and
use copy-and-paste operations.
Note: Ctrl-cursor-left and Ctrl-cursor-right only work if these keys
are configured to emit distinguished escape sequences with Control key
held down. With xterm, this works by default. With rxvt, use the
small keypad cursor keys, or enable Control on the right keypad with
the sample configuration file Xdefaults.mined in the Mined runtime sup‐
port library. With mlterm, enable this with the sample configuration
file mlterm/key in the Mined runtime support library. Ctrl-Backarrow
can also be configured to work with xterm but doesn't appear to work
with rxvt or mlterm, use F5 Backarrow instead.
Separated display and editing mode (Combining display flag `)
Combined characters are separated into base character and com‐
bining character(s) for display and editing. Combining charac‐
ters are indicated with coloured background.
· In separated display mode, all cursor and text modifica‐
tion 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 han‐
dled as combining characters by the terminal (which might imple‐
ment 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 charac‐
ter 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 infor‐
mation 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).
In the Info menu, attributes that are shown with the character informa‐
tion can be selected: Unicode script name, Unicode character name, Uni‐
code character decomposition, list of input mnemonics.
Character information display can be selected with the +?c command line
parameter (see parameter description for further options). To prese‐
lect continuous character information display, append +?c to the envi‐
ronment variable MINEDOPT.
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 (begin‐
ning capital), and all capitals. It handles title casing, using Unicode
title case characters for the first character when appropriate. For
Japanese script, it toggles the word between Hiragana and Katakana.
The case mapping is based on the most recent Unicode version compiled
into mined (for the actual version see the mined change log and the
Options menu About command). It is applicable in all text encodings.
Line end type conversion
In the Options menu, a submenu "Lineend type..." offers functions to
convert the line end of the current line to LF or CRLF, or to convert
the line end type of all lines that do not have a special line end to
LF or CRLF.
Numeric conversion
Commands are available to insert characters corresponding to a hexadec‐
imal character code or hexadecimal/octal/decimal Unicode value con‐
tained in the text, to insert a respective value corresponding to the
current character, or to toggle the preceding character and its hexa‐
decimal code (Alt-x). For details, see the section Code conversion in
the Command reference.
Numeric entity (HTML/URL) conversion
HTML numeric character entities (e.g. &x40; for @) or URL escape nota‐
tion (e.g. %20 for space) can be converted into unescaped characters.
Use one of the Mnemonic character substitution commands (ESC _ or
national variants) described below.
Mnemonic conversion
A character mnemonic at the cursor position can be replaced with its
associated character. Use one of the Mnemonic character substitution
commands (ESC _ or national variants) described below.
Encoding conversion support
A special feature offers interactive conversion to or from Unicode
character encoding, see Encoding conversion support in chapter Unicode
support below.
Unicode Copy/Paste buffer
The Copy/Paste buffer can be operated in Unicode mode in which case it
converts between text edited in different character encodings. See
Unicode Copy/Paste buffer conversion below.
Smart quotes
Straight (double or single) quote characters �"� or �'� can be replaced
automatically with an opening or closing typographic quotation mark,
depending on the text context, or an apostrophe where appropriate.
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 left-
click 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 quota‐
tion marks style in two ways: If file position memory is enabled (see
File info: Memory of file position and editing style parameters above),
mined also remembers the last selected smart quotes mode for the file.
If that information is not available, mined auto-detects existing quo‐
tation marks in the file and adjusts its smart quotes mode accordingly.
The smart quotes left/right selection algorithm considers both the text
context and the state (whether an open quote was inserted before) to
automatically support smart quotes also in CJK text, and to try to dis‐
tinguish an apostrophe from a quote mark.
A typographic apostrophe can also be inserted with HOP ' (^G ') or with
HOP � (acute accent), regardless of smart quotes mode. In smart quotes
mode, a typographic apostrophe is inserted on input of � (acute
accent).
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 216 or mintty 0.4).
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 vari‐
able 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: apostrophe, smart dashes, arrows and glottal
stop
If smart quotes are active, some other smart input text replacements
are applied to respective characters being entered. (Replacement of
subsequent character input sequences is suppressed during a repeat com‐
mand entering multiple characters.)
-- if preceded by a Space character: en dash (U+2013)
otherwise: em dash (U+2014)
- if an adjacent character is in the Hebrew script range: Hebrew
hyphen mark Maqaf (U+05BE)
<- leftwards arrow (U+2190)
-> rightwards arrow (U+2192)
<> left right arrow (U+2194)
� apostrophe (U+2019 right single quotation mark)
` glottal stop (U+02BB modifier letter turned comma)
Character input support
Some character input support features support international scripts
(especially with Keyboard Mapping and Input Methods), others mainly
address composite characters. For the latter, it is useful to explain
a few notions:
Combining character:
A character (usually in Unicode) that is defined to combine with
the previous character into a combined character, to be dis‐
played as a single glyph (visual unit).
Combined character:
The glyph combination of a Unicode character (base character)
with one or more Unicode combining characters.
Composed character (or composite character):
A character that has one or more accents composed into it, or is
otherwise composed of components, like the ae ligature, to be
displayed as a single glyph. It can be a single Unicode charac‐
ter or a Unicode combined character consisting of a Unicode base
character and one or two Unicode combining characters.
Accented character (or diacritic character):
A special case of a composite character where a letter is com‐
posed with one or more accents.
Compose key:
A number of system and keyboard vendors have equipped their key‐
boards with a "Compose" or "Combine" key. This key - when con‐
figured and interpreted properly by the operating environment -
produces a composed character which is then provided as input to
the application.
Accented and mnemonic input support
Function keys or character mnemonics can be used to enter accented or
other composite characters. (This is also known as digraph function
with some editors.)
These character composition functions also work on the prompt line.
(Any composite character configured on your keyboard can of course also
be entered directly or using the Compose/Combine key of your keyboard.)
Note that mnemonic input and accent prefix keys can be
combined in flexible ways, e.g.
^V ' Ctrl-F6 e
or
F6 ^V e ^
which both enter U+1EBF (e with circumflex and acute)
Mnemonic input can be applied recursively to compose a character
for further composition, e.g.
^V ' ^V a e
enters U+01FD (� with acute)
Accent prefix keys can use an already precomposed base
character for further composition; if this does not match an
explicitly known mnemonic, the base character is decomposed
first to find a match, e.g.
F6 � or
F5 � which both enter U+01D8 (u with diaeresis and acute)
Up to three accent prefix keys can be combined by entering
them in sequence in order to compose characters with multiple
accents, e.g.
F5 F6 u
enters U+01D8 (u with diaeresis and acute)
Ctrl-2 Ctrl-7 a
enters U+1EB1 (a with grave and breve)
Ctrl-- Ctrl-: u
enters U+1E7B (u with macron and diaeresis)
Ctrl-, Ctrl-( e
enters U+1E1D (e with cedilla and breve)
Alt-7 Ctrl-, < alpha >
Alt-F6 Shift-F6 Ctrl-, < alpha >
Ctrl-< Ctrl-` Ctrl-, < alpha >
all enter U+1F82 (alpha with psili and varia and ypogegrammeni)
where < alpha > indicates the Greek letter alpha, which may e.g.
be entered by selecting the Greek input method and typing the
"a" key
Accent prefix keys
General notes on using keys with Control, Shift, Alt modifiers:
Especially for accented character input, mined makes use of key
combinations modified with Control, Shift, Alt, or a combination
of them. Some of these key combinations may be limited by local
environment, especially the window system, or may need extra
configuration to be enabled.
· Hint on input of Alt/Ctrl-modified function keys: These
are often intercepted by window systems for special func‐
tions.
· Alt: Alternatively to using the Alt key, the ESC
key can be used as a prefix to a function key to
achieve the same modified function, e.g. ESC F6
instead of Alt-F6. Note, however, that there is
an ESCAPE delay (default 450 ms) during which the
subsequent function key should be pressed.
· Control: Alternatively to using the Control key,
Ctrl-V can be used as a prefix to a function key
to achieve the same modified function, e.g. Ctrl-V
F6 instead of Ctrl-F6.
Specific advice:
Window system
suppresses
remedy
KDE Ctrl-Fn, Ctrl-Shift-Fn, Alt-Fn
press the "Window key" additionally at the same time,
e.g. Window-Alt-F6 or use ESC or Ctrl-V prefixes, e.g.
ESC F6 (be fast!), Ctrl-V Shift-F5
gnome-wm
Alt-F5
Window-Alt-F5 or ESC F5 (be fast!)
fvwm2 Alt-Fn
ESC Fn (be fast!)
Exceed Alt-Fn, Alt-Shift-Fn
ESC Fn, ESC Shift-Fn (be fast!)
or: configure ("Tools - Configuration... - Keyboard
Input") "Windows Modifier Behavior - Alt Key:" and select
"To X"
· Modified digit keys (e.g. Alt-2) as well as Ctrl-modified
punctuation keys (e.g. Ctrl-;) are used as extended and
intuitive accent prefix keys. To enable them, either use
a recent version of xterm (216) or configure them with
your terminal.
Configuration instructions for older versions of xterm
and for rxvt can be found in the sample file Xde‐
faults.mined in the Mined runtime support library.
· Note: In rxvt, Ctrl-modified and shifted punctuation keys
(if enabled by configuration following the hint above)
interfere with ISO 14755 input mode of rxvt; if the fol‐
lowing key is entered twice, that mode is aborted and the
modified punctuation key becomes effective as an accent
prefix in mined.
· Warning: The Alt-F4 key combination should not accidently
be hit as many window managers use it to kill the termi‐
nal window!
The following table lists the accent prefix keys:
F5 (Sun: R4/-) diaeresis (umlaut) / dialytika
Shift-F5
(Sun: R5/�) tilde / perispomeni
Ctrl-F5
(Sun: R6/�) ring / cedilla / iota (ypogegrammeni)
Alt-F5 stroke
Ctrl-Shift-F5
ogonek / prosgegrammeni
Alt-Shift-F5
breve / vrachy
F6 (Sun: R3) acute (accent d'aigu) / tonos
Shift-F6
(Sun: R1) grave / varia
Ctrl-F6
(Sun: R2) circumflex / oxia
Alt-F6 caron / psili
Ctrl-Shift-F6
macron / descender
Alt-Shift-F6
dot above / dasia
Ctrl-1 acute
Ctrl-2 grave
Ctrl-3 hook above
Ctrl-4 tilde
Ctrl-5 dot below
Ctrl-6 circumflex
Ctrl-7 breve
Ctrl-8 horn
Ctrl-9 stroke
Ctrl-0 ring / cedilla
Alt-1 circumflex and acute
Alt-2 circumflex and grave
Alt-3 circumflex and hook above
Alt-4 circumflex and tilde
Alt-5 circumflex and dot below
Ctrl-Alt-1
breve/horn and acute (composes following A/a with breve and
acute, or following O/o or U/u with horn and acute)
Ctrl-Alt-2
breve/horn and grave
Ctrl-Alt-3
breve/horn and hook above
Ctrl-Alt-4
breve/horn and tilde
Ctrl-Alt-5
breve/horn and dot below
Alt-6 psili and oxia
Ctrl-Alt-6
dasia and oxia
Alt-7 psili and varia
Ctrl-Alt-7
dasia and varia
Alt-8 psili and perispomeni
Ctrl-Alt-8
dasia and perispomeni
Ctrl-' (Ctrl-apostrophe) acute (d'aigu) / tonos
Ctrl-� (Ctrl-acute) acute (d'aigu) / oxia
Ctrl-` (Ctrl-grave) grave / varia
Ctrl-^ circumflex / oxia
Ctrl-~ tilde / perispomeni / titlo
Ctrl-: diaeresis (umlaut) / dialytika
Ctrl-" diaeresis (umlaut) / dialytika
Ctrl-, cedilla / ring / iota (ypogegrammeni)
Ctrl-/ stroke
Ctrl-- (Ctrl-minus) macron / descender
Ctrl-< caron / psili
Ctrl-. dot above / dasia (with i or j: dotless)
Ctrl-( breve / vrachy
Ctrl-; ogonek / prosgegrammeni / tail / tick / upturn
Ctrl-) inverted breve
Ctrl-& hook
Ctrl-- Ctrl-&
middle hook
Note: If your keyboard assignment provides its own accent prefix keys
("dead keys"), pressing the key twice usually delivers the correspond‐
ing spacing character which can then be used for the extended accent
prefix functionality of mined; e.g. hold Control, then press � (acute
key) twice, to invoke the acute/oxia prefix function of mined.
Note: For combining multiple accents, in most
cases their order does not matter. As an exception, to combine
dot above and macron, enter prefix keys in this order, as s
macron and dot above will be interpreted as dot below.
dot macron
e.g. Ctrl-. Ctrl-- dot above and macron (on A or O)
macron dot
e.g. Ctrl-- Ctrl-. dot below
Note: For the sake of accepting Ctrl--
intuitively both as an accent prefix for macron as well as an
accent modifier to place an accent below a letter, the macron
accent prefix combined with another accent prefix key is also
interpreted as applying that accent below. As a workaround to
ambiguous cases, it has to be applied twice with diaeris for
diaeresis below (U), and three times for line below.
macron macron diaeresis
e.g. Ctrl-- Ctrl-- Ctrl-: diaeresis below
macron diaeresis
e.g. Ctrl-- Ctrl-: macron and diaeresis
diaeresis macron
e.g. Ctrl-: Ctrl-- diaeresis and macron
macron macron macron
e.g. Ctrl-- Ctrl-- Ctrl-- line below
Note: Some accent prefix keys, when applied twice in
sequence, are mapped to a single accent as follows:
acute acute
e.g. F6 F6 double acute accent
grave grave
e.g. Shift-F6 Shift-F6 double grave accent
macron macron
e.g. Ctrl-- Ctrl-- bar/topbar
cedilla cedilla
e.g. Ctrl-, Ctrl-, psili/comma below
Combining character input
Unicode combining characters can be entered
by applying accent prefix keys to the Tab key. They will be vis‐
ually combined with the previous character by rules of Unicode
(and by terminal implementation). Examples:
Ctrl-, Tab
combining cedilla
F6 F6 Tab
combining double acute accent
Special character input shortcuts
Typographic quotation marks can be entered
by applying accent prefix keys to the space key as follows, or
using certain input mnemonics or shifted combinations (see
below):
(twice) grave space
(double) left quotation mark
(twice) acute space
(double) right quotation mark
acute space
e.g. F6 space or Ctrl-' space also serves for input of typo‐
graphic apostrophe (or HOP ')
(twice) cedilla space
(double) low-9 quotation mark
(twice) dot above space
(double) high-reversed-9 quotation mark
^V < < or ^V > >
double angle quotation marks � �
^V < space or ^V > space
single angle quotation marks
Alt-' plain single quote mark (U+27)
Alt-" plain double quote mark (U+22)
Some characters are specifically mapped to special key
combinations or specific applications of accent prefix keys for
convenience or for Windows compatibility:
Ctrl-Shift-space
no-break space (U+00A0)
Ctrl-@ a/A
�/�
Ctrl-& a/A
�/�
Ctrl-& o/O
oe/OE ligature
Ctrl-& s
�
Ctrl-? �
Ctrl-! �
As with modified keys in general, these shortcuts may depend on proper
terminal configuration according to the sample files in the Mined run‐
time support library.
Line ends
Key combinations are available to enter specific kinds of line ends
(works in xterm and mintty):
Ctrl-Enter
Unicode line separator
Shift-Enter orHOP Enter
Unicode paragraph separator
Ctrl-Alt-Enter
DOS or Unix line end (if editing Unix or DOS file, respectively)
Ctrl-Shift-Alt-Enter
Mac line end
Also, the line end type of a line can be changed from a submenu
of the Options menu.
Character input mnemonics
The enter-control-code prefix (^V by default, ^Q in emacs keyboard
mode, ^_ in Windows and pico keyboard modes, ^P in WordStar keyboard
mode) can be used for mnemonic character composition. This covers
accented characters and other mnemonics. The available mnemonics
include RFC1345 mnemonics (extended to provide generic accent mnemonics
for Unicode characters), mnemonics known from HTML and TeX and useful
supplementary mnemonics. See Character Mnemos reference on the mined
web site for a listing.
Supplementary character mnemonics are consistent with generic RFC1345
mnemonics; scripts covered are Latin, Greek, Cyrillic.
For accent compositions, mnemonic patterns (generic accent mnemonics)
are listed in the following table; the respective letter to place the
accent(s) on is indicated with an "x" below.
For Greek and Cyrillic accented characters, mnemonics combining accents
with Greek or Cyrillic base characters are generated automatically from
the UnicodeData.txt database.
Greek and Cyrillic accent prefix keys reuse those for Latin accents and
are listed in the sections on Greek and Cyrillic script support (see
Language support).
generic mnemonic
accent placed on the base character ("x")
x: or "x
diaeresis (umlaut)
x' or �x
acute (accent d'aigu)
x! or `x
grave
x> or ^x
circumflex
x? or ~x
tilde
x0 or �x
ring above
x, cedilla
x- macron
x( breve
x. dot above / middle dot
x_ or _x
line below
x/ stroke
x" or x''
double acute
x; ogonek
x< caron
x2 hook above
x9 horn
x-> or >x
circumflex below
x-. or .x
dot below
x--. or .x-
dot below and macron
x.-. or .x.
dot below and dot above
x7 or x.-
dot above and macron
x~- or x?-
tilde and macron
x;- ogonek and macron
x:- diaeresis and macron
x-: macron and diaeresis
x-' macron and acute
x-! macron and grave
-x or x--
topbar
--x or x--
bar
,x or x-,
comma below / left hook
x# or x!!
double grave
x) inverted breve
x& hook
%x retroflex hook
x,, palatal hook
x~~ middle tilde
x} curl
x-? or ?x
tilde below
x--: or :x
diaeresis below
x-0 or ox
ring below
x-( or (x
breve below
x(-. or .x(
breve and dot below
x>-. or .x>
circumflex and dot below
x9-. or .x9
horn and dot below
x'. acute and dot above
x(' breve and acute
x(! breve and grave
x(2 breve and hook above
x(? breve and tilde
x<. caron and dot above
x,' cedilla and acute
x,( cedilla and breve
x>' circumflex and acute
x>! circumflex and grave
x>2 circumflex and hook above
x>? circumflex and tilde
x:' diaeresis and acute
x:< diaeresis and caron
x:! diaeresis and grave
x9' horn and acute
x9! horn and grave
x92 horn and hook above
x9? horn and tilde
x0' ring above and acute
x/' stroke and acute
x?' tilde and acute
x?: tilde and diaeresis
See also the description of the ^V function below for more input
options.
Two-letter mnemonics can also be entered in reverse order if this is
unambiguous. Detection of reverse order mnemomics (two letters or one
letter and multiple accents) as well as the generic accent mnemonics "
^ ` ~ � � � � � works with both short mnemonic entry (two-letter
"^Vxy") and full mnemonic entry ("^V xy... ").
Mnemonic character substitution commands (ESC _ and national variants)
replace characters at the cursor position with the respective character
described by them. The following substitute descriptions are detected:
· Two-character mnemonic
· HTML character mnemonic
· HTML numeric character entity
· URL escape notation (bytewise hexadecimal with % pre‐
fixes)
Keyboard Mapping and Input Methods
Mined supports optional keyboard mapping which is especially useful for
Unicode or CJK editing. When a keyboard mapping is selected, input
characters or sequences are transformed to other characters or
sequences, typically of a certain Unicode script range.
Keyboard mappings for Greek, Cyrillic, Hebrew, Arabic, and major CJK
input methods are preconfigured (they have been ordered in the Input
Method menu according to the order of their respective basic ranges in
the Unicode character set, or to the order of the letters of the usual
abbreviation CJKV for East Asian text processing - Chinese, Japanese,
Korean, Vietnamese). The Radical/Stroke input method provides addi‐
tional functionality as a special case.
Mined provides compile-time configuration of additional input methods;
for this aim, further mappings can be generated using the mkkbmap
script (from tables in various formats as used by other editors or sup‐
plied by the m17n multilingualization package) and then compiled into
mined. See Mined configuration below for details.
Keyboard mapping works as follows: You enter a key sequence that is
mapped to a character sequence in the selected keyboard mapping table.
The transformed character sequence is used as input.
As some typical keyboard mappings contain ambigous key sequences where
one may be a prefix of another, a short delay is applied in these cases
to allow recognition of any such sequence to be mapped. After a time‐
out, the shorter sequence already matching will be used; the timeout
can be cut short by typing a Space key, the Space character itself will
then be discarded. (The timeout value is 900 ms by default and can be
configured with the environment variable MAPDELAY.)
Pick lists
Some keyboard mappings, especially for CJK input methods, contain mul‐
tiple choice mappings. In these cases, a selection menu is displayed
that offers a "pick list" to select a character from. A character can
be picked with a mouse click, or by navigation to the desired choice
with the cursor keys (down/up, right/left, page down/up) or the '<'/'>'
keys , or by just selecting the menu row first (cursor-up/down), then
typing a digit 1-9 or 0 to select the numbered character.
The Space key can be configured to either navigate to the next choice,
the next row, or to select the current choice; see option -K. If the
pick list is too large to fit on the screen, the menu will be scrol‐
lable or pageable (using cursor keys).
While navigating through the pick list, the line and the selected item
in the line are highlighted accordingly; if the current item is a CJK
character, also its character information (description and optionally
pronunciations as configured with the Han info option of the '?' infor‐
mation flag menu) is displayed on the status line. If the item is a
word comprising multiple CJK characters, the information for only the
first of them is shown. The available information is derived from the
Unihan database.
Keyboard mapping data are based on Unicode. So in CJK text mode, the
selection menu (the pick list) may contain symbols that are not mapped
to the active CJK text encoding. In a UTF-8 terminal, these will still
be displayed but cannot be inserted. In a CJK terminal, some characters
may not be displayed; an empty entry is shown instead. (In a non-Uni‐
code, when editing text in a different encoding, there may even be
characters that cannot be displayed in the selection menu but can be
inserted.)
Input method selection
An active and a standby input method (keyboard mapping) are maintained.
They can be toggled quickly for text input, also on the prompt line.
The current mapping is indicated as the Input Method flag by its two-
letter script tag in the flags area, showing "--" if no mapping is
active.
The active mapping can be selected in the following ways:
ESC k or Alt-k or Ctrl-Alt-F12 or left click on Input Method flag
toggles between current (active) and previously selected
(standby) input method (keyboard mapping)
(Alt- toggle functions also work on prompt line)
HOP ESC k (or HOP Alt-k)
clears input method, i.e. resets keyboard mapping to none
(unmapped input)
ESC I or Alt-I or ESC K or Alt-K or Ctrl-F12
opens the Input Method (Keyboard Mapping) selection menu
(Alt-I or Alt-K or Ctrl-F12 also work on prompt line)
right click on Input Method flag
opens the Input Method selection menu
HOP ESC K or HOP Alt-K
cycles through available input methods / keyboard mappings
If file position memory is enabled (see File info: Memory of file
position and editing style parameters above), mined also remembers the
last selected input method for the file.
Note: For preselecting the active or standby input method by environ‐
ment configuration, see about usage of the environment variable MINED‐
KEYMAP below.
Note: Keyboard mapping is implicitly suppressed temporarily where it is
not useful: during mnemonic character input, HTML marker input, command
letter entry, help selection, yes/no prompting.
Character encoding support
A character encoding for interpretation and handling of text is
selected in one of the following ways:
· Interactively from the Encoding Menu (one of the flag
menus), the encoding interpretation can be changed while
editing; to open it, click with the right mouse button on
the encoding indication in the flags area of the top
line, or type Alt-E. See also Quick Options (Mode indi‐
cation) flags for an overview. To toggle between the
current and the previously selected encoding, click the
Encoding flag with the left mouse button.
· Explicitly with a command line option -E... with a num‐
ber of options to specify the desired text encoding (see
the encoding command line options above).
· By auto-detection (heuristic counting of valid character
codes). Note: The encodings to be taken into account for
auto-detection can be configured with the MINEDDETECT
environment variable. Set it to the desired list of sin‐
gle-letter encoding indications to disable auto-detection
of other encodings. Recognised encoding indications are
mentioned in the list of auto-detected encodings below
(they are the same as used with the -E parameter); UTF-8
auto-detection cannot be disabled this way.
· By the environment variable TEXTLANG (see Locale configu‐
ration), which overrides other locale variable settings
for the purpose of text encoding without affecting them
otherwise.
· By checking the locale environment (see Locale configura‐
tion).
Auto-detected character encodings
The following encodings are auto-detected unless overridden with a -E
command line option (or -l or -u):
- UTF-8
- UTF-16 encoding (big or little endian) with or without BOM (byte
order marker)
8 any 8 bit encoding; this is auto-detected in a generic way; the
actual 8 bit encoding assumed corresponds to the terminal encod‐
ing if it is an 8 bit terminal; otherwise, Latin-1 is assumed;
using "8" in the environment variable MINEDDETECT excludes all
CJK encodings from auto-detection (but not UTF-8), and adds all
8 bit encodings that are not included by default
L Latin-1 (ISO 8859-1)
W Windows Western ("ANSI", CP1252)
P PC Latin-1 (CP850)
M MacRoman
- CJK encoding (with unspecified mapping) is pre-auto-detected in
a generic way; usually the actual CJK encoding is determined,
too
G GB18030
B Big5
J EUC-JP
S Shift-JIS
K UHC
V VISCII
CJK and mapped 8 bit encoding support
Mined supports major CJK encodings as well as mapped 8 bit encodings
("character sets"). Mined has built-in support for a large number of 8
bit encodings which appear to be in use or unique for a region. The
Encoding menu has been structured with submenus to provide a concise
menu selection feature.
Combining characters
In all character encodings handled by mined that contain combining
characters, mined handles them and provides partial editing and an
optional separated display mode as described above in section Combin‐
ing characters. (CJK encodings EUC-JP, Shift-JIS and GB18030, Viet‐
namese TCVN and Thai TIS-620, ISO Arabic, Mac Arabic, ISO Hebrew, Win‐
dows Hebrew). Handling of combining text characters is properly coor‐
dinated with the set of combining characters supported by the terminal.
For Japanese, the JIS characters that map to two Unicode characters are
supported.
Character code related commands
The command ESC u displays character encoding information in the bottom
status line (conforming to ISO 14755); this includes the character
code, the mapped Unicode character value, and optionally script and
character category information, combining and Unicode decomposition
information, and mined mnemonic input information, as configured in the
Info menu. For CJK characters, also Han pronunciation and description
information is available. See Character information display for
details.
With HOP ESC u, permanent display is toggled.
Other commands insert the code of the current character, insert a char‐
acter taking its character code or Unicode value from the text, or tog‐
gle the preceding character and its hexadecimal code (Alt-x). For
details, see Code conversion in the Command reference.
Terminal environment for CJK encoding support
Mined supports handling of CJK text encoding in any terminal (see Ter‐
minal encoding support below). However, proper display of a wide range
of CJK characters can obviously only work in either a Unicode terminal
(recommended) or in a native CJK terminal that runs the same encoding
as the selected text encoding.
CJK terminals: For terminals that support native CJK encodings (e.g.
cxterm, kterm, hanterm), the terminal encoding assumed by mined can be
specified with a command line option or by proper locale indication in
one of the environment variables LC_ALL, LC_CTYPE or LANG. For avail‐
able encodings, see Quick Options (Mode indication) flags. For usage
of the +E options, see the description of the Terminal encoding options
above. For usage of the locale environment variables, see Locale con‐
figuration.
Note: In native CJK terminals, it is often troublesome to find a work‐
ing encoding configuration and font setup, and the locale environment
is not automatically set by the terminals. A collection of wrapper
scripts is available ( http://towo.net/mined/terminals.tar.gz) to help
with this setup problem and demonstrate the invocation of a number of
different CJK and 8 bit encoded terminal windows, along with selection
of suitable fonts and proper locale environment setting.
Note: Native CJK terminals have a different assumption of the range of
character codes supported in an encoding family, e.g. Big5 / Big5 with
HKSCS, GB2312 / GBK / GB18030, EUC-KR / UHC, EUC-JP without/with 3 byte
codes. For compact handling, mined always assumes the largest superset
of these encoding families. It does, however, have some features to
prevent display garbage in most cases when a terminal supports a
smaller character set: By default, mined does not display the following
CJK character codes in a native CJK terminal, i.e. it displays a sub‐
stitute indication for them (see CJK character display above):
· Unknown characters: CJK characters that have no defined
mapping to a valid Unicode character. Use the +C option
to override this display suppression and enforce trans‐
parent display of unknown characters in a CJK terminal.
· Invalid characters: CJK characters that do not match the
encoding scheme (e.g. wrt. to specified byte ranges) of
the selected encoding. Use the +CC option to override
this display suppression and enforce transparent display
of invalid character codes in a CJK terminal.
· Extended characters: CJK characters encoded with 3 or 4
bytes. Use the +CCC option to override this display sup‐
pression and enforce transparent display of extended
character codes in a CJK terminal.
Regardless of all these features and options, it may not always be pos‐
sible to prevent display garbage, especially if the font used by the
terminal does not cover the needed character range. To avoid these
problems in general, it is recommended to use a Unicode terminal for
editing CJK encoded files.
See also Terminal interworking problems for special hints about certain
terminals.
Unicode support
Introduction: handling Unicode encodings
Mined interprets UTF-8 which is a multi-byte character encoding of the
ISO-10646 character set, part of which is also known as Unicode. When
reading a file, it detects UTF-8 encoding automatically (unless over‐
ridden by explicitly selecting a text encoding with a command line
option -u or -l or -E...). It can also edit UTF-16 encoded Unicode
files (UTF-16 can represent the complete 21 bit Unicode subset of
ISO-10646). UTF-16 big or little endian with or without BOM (byte
order mark U+FEFF) is auto-detected or can be selected with a command-
line option (see notes under Locale configuration below).
UTF-16 is maintained transparently, i.e. a UTF-16 encoded file is writ‐
ten back in UTF-16, and if it was beginning with a BOM this is main‐
tained. No explicit UTF-16 entry exists, however, in the Encoding menu
since the text is internally handled in UTF-8. However, the character
encoding flag indicates UTF-16 file encoding with either "16" (big
endian) or "61" (little endian).
UTF-8 internal representation, transparent handling of other text
Mined handles UTF-8 representation internally and also edits and keeps
illegal UTF-8 sequences. This way, if you happen to open a Latin-1 or
CJK or any other encoded file in UTF-8 mode, or switch encoding while
editing, or edit a file with mixed encoding, the text contents can
still be edited and you will not loose any file contents information.
Character encoding indication
The upper-right flags area has a character encoding indication which
shows "U8" if UTF-8 text interpretation is selected. For Latin-1 text
interpretation "L1" is shown, for others see Quick Options (Mode indi‐
cation) flags. You may click on the indication flag to toggle between
the current and the previous selected encoding.
Character information display
The Character information display command ESC u is described above;
character information display can also be preselected by environment
configuration. In UTF-8 mode, information shown includes the UTF-8
encoding byte sequence.
Character input support
With ^V, mined's special character input support is invoked (both while
editing text and entering text on the prompt line, e.g. as a search
expression). With this feature, (in addition to plain control charac‐
ters) a composite character can be entered by its accent combination or
other mnemonic character description; a more-than-two letter character
mnemonics would be embedded in space characters after the ^V. In addi‐
tion, numeric character codes or values can be entered with leading
^V#, octal/decimal with ^V##/^V#=, Unicode with optional u/U/+. (For
examples, see description of the ^V function below.) With numeric
character input, mined supports successive multiple character entry
according to ISO 14755; if the numeric code is terminated by a Space
key, another numeric character can be entered subsequently; an Enter
key terminates numeric character input.
See also the generic section Character input support above for input
support for accented characters and keyboard mapping.
Encoding conversion support
Two functions support interactive character encoding conversion
(Latin-1 to UTF-8 or UTF-8 to current encoding) to partially fix files
with mixed encoding. In either text encoding mode, the search function
looks for characters encoded in UTF-8 (when not editing in UTF-8 mode)
or not (when editing in UTF-8 mode); the command is HOP ESC ( or Alt-
F11 . Then, convert the character with ESC _ or its national variant
(see mnemonic character substitution commands in the Command refer‐
ence).
For repeated interactive conversion, both functions can be combined
into Alt-Shift-F11 (convert current character, then search next).
Unicode Copy/Paste buffer conversion
For the Copy/Paste buffer, Unicode mode can be selected which maintains
its contents always in Unicode, so that Copy/Paste of text works
between differently encoded files (or sections of a file, if encoding
is switched while editing) with automatic character code conversion.
This mode is only effective while editing with non-Unicode encoded text
interpretation.
Select this mode with the command line option -Eu or in the Paste buf‐
fer menu (righ-click on the Buffer mode flag "=" or "+") and select
"Unicode".
Unicode buffer mode is indicated by cyan background of the Paste buffer
flag (then "=" or "+"), except in Unicode text mode.
Smart quotes and dashes
If smart quotes mode is enabled (see the Quotes style menu under the
Quotes flag left to the Encoding flag and menu), quote mark keys will
enter typographic smart quotes instead. Smart dashes also apply. See
Smart quotes above for more details.
Bidirectional terminal support
A bidirectional terminal (such as mlterm) will probably also apply Ara‐
bic LAM/ALEF ligature joining. Mined auto-detects this feature and
enables bidi terminal handling automatically. Otherwise, bidi terminal
handling can be configured with the option +UU.
In this mode, when displaying a menu, underlying text lines that con‐
tain right-to-left characters are cleared first in order to prevent
display confusion between the terminal's bidi algorithm and the menu
position.
Also, with bidi terminal handling enabled, mined assumes that the ter‐
minal applies Arabic LAM/ALEF ligature joining and properly accounts
for this feature in display position handling.
In separated display mode, the joining part of the ligature is indi‐
cated similar to the handling of combining characters.
Input support for right-to-left scripts ("poor man's bidi" mode)
This support feature for input of right-to-left text pieces is enabled
by default unless the terminal is detected to be in bidi mode itself
(e.g. mlterm).
"Poor man's bidi" mode is suitable to insert small pieces of right-to-
left text (words, phrases) within left-to-right text, it stores right-
to-left text in visual order (see below) and works as follows:
After entering a right-to-left Unicode character, the cursor position
is moved left of it, so subsequent characters will be appended left and
the text shifted right. Characters are stored in visual order while
input support is implicit, based on the characters being typed. Enter‐
ing a left-to-right character will automatically skip behind the previ‐
ously entered right-to-left text on the line and switch to left-to-
right direction; this behaviour optimizes inserting small pieces of
right-to-left text into basically left-to-right text; this priority is
justified by the assumption that this mode (with visual storing order)
is only useful for inserting small right-to-left quotations into left-
to-right text and not for editing right-to-left documents (which should
be stored in logical order).
Newline, Space, Tab, and combining characters attempt to behave well
according to what was entered before; however, intermediate cursor
movement is not considered.
Note: For proper support of right-to-left text editing stored in logi‐
cal order, please use mined in a right-to-left terminal (mintty,
mlterm). Adding a feature for advanced bidi support in all terminals is
being considered.
Note: →NEW→ Poor man's bidi mode also works in non-Unicode text encod‐
ings.
Note: Poor man's bidi mode is similar to the "revins" (reverse insert)
option of vim.
Unicode line ends
Mined detects and handles Unicode line separators and paragraph separa‐
tors (unless disabled with +u-u). They are displayed as shown above.
Interpretation of these characters as line ends is disabled if a file
is explicitly opened in non-Unicode encoding (but not if non-Unicode
encoding is just auto-detected).
HOP Enter will insert a Unicode paragraph separator, Enter in a line
that already has a Unicode line end will insert a Unicode line separa‐
tor. Also the keys Shift-Enter or Ctrl-Enter insert a paragraph sepa‐
rator or line separator respectively.
Configuration: In order to enable shift and control with the Enter
keys, xterm or rxvt must be configured as shown in the example configu‐
ration file Xdefaults.mined in the Mined runtime support library.
Unicode display
In UTF-8 terminal mode, mined displays all Unicode characters if they
are contained in the font used by the terminal. Fonts usually have a
substitute glyph to indicate characters not contained in the font.
Wide characters (double-width glyphs) are displayed in a double-width
character cell of the terminal. Combining characters are displayed
either combined or separated (see Combining characters below).
Illegal UTF-8 sequences are displayed with highlighted background,
using the following indications. Furthermore, control characters
encoded as a UTF-8 sequence and control characters in the "C1" range
(values 0x80..0x9F) will be displayed similar to normal control charac‐
ters but with coloured highlighting.
8 for an unexpected UTF-8 continuation byte (range 80-BF)
4 for a 0xFE (254) byte
5 for a 0xFF (255) byte
� for a too short UTF-8 sequence if followed by a single-byte
character (00..7F)
� for a too short UTF-8 sequence if followed by a multi-byte char‐
acter (C0..FF)
Illegal or non-Unicode characters are indicated with the following
replacements:
�
(or ? or []) a character code ending with FFFE or FFFF (override
substitution for transparent display with +C)
�
(or ? or []) a surrogate code point (override substitution for
transparent display with +CC)
�
(or ? or []) a code point outside the defined Unicode range
(override substitution for transparent display with +CCC)
Character substitution display
Legal characters (in the effective text encoding) that cannot be dis‐
played in a non-Unicode terminal are indicated with the following
replacements:
� or � (if wide) a non-combining Unicode character that cannot be
displayed
% or % (if wide) (if the terminal cannot display �) a non-combining
Unicode character that cannot be displayed
` (or wide)
a Unicode combining character that cannot be displayed
" or
' (or wide) a double or single quotation mark character (typo‐
graphic quote mark)
- or ~ or = (or wide) a dash or hyphen character
e, �, etc a combined or other character that cannot be displayed which
is based on the displayed character by its Unicode decomposition
E the Euro sign € U+20AC
V, X, Z the check mark ✓ U+2713, ballot X ✗ U+2717 ,
zigzag arrow ↯ U+21AF
' glottal stop 'okina ʻ U+02BB
0 ..9 ,
A ..Z etc a corresponding fullwidth ASCII character
Configuration: Display colour of special or illegal UTF-8 indications
can be changed with the environment variable MINEDUNI, the value should
be the numeric part of an ANSI terminal control sequence; optionally,
the value can be preceded by a character to be used for Unicode charac‐
ter indication in non-Unicode terminal mode.
(The default configuration value is "� 46").
Combining and joining characters
Mined supports handling of combining characters, featuring optional
separate display and partial editing, as described above in section
Combining characters.
Joining characters
If mined assumes that the terminal applies LAM/ALEF ligature joining
(either configured with the +UU right-to-left display option or auto-
detected; correct native support is known of mlterm), the joined char‐
acter width will be handled correctly in cooperation with the terminal.
In all other terminals mined will apply LAM/ALEF joining itself.
Mined supports ligature joining in both combining character display
modes:
· In combined display mode, the screen position is
accounted properly. Also, when deleting a character, a
joined ligature is deleted together with the base charac‐
ter, just like combining characters.
· In separated display mode, the joining part of the liga‐
ture is indicated using the appropriate isolated form,
highlighted with Unicode special indication background
colour (similar to the handling of combining characters).
Search expression limitations
Unicode search ranges can not be very large as all included characters
are listed in an internal buffer which is limited to ca. 1 KB.
UTF-8 preservation and byte-transparent editing
When splitting lines that are too long for internal handling, consis‐
tency of UTF-8 sequences is preserved (they are not split); combining
characters may get split off their base characters, however, they will
join seemlessly as lines are joined again (e.g. when saving the file).
Note that isolated combining characters, e.g. at the beginning of a
line, are always displayed as if in separated display mode.
Terminal environment
Unicode text can be edited in any terminal encoding (UTF-8, 8 bit,
CJK), however, a UTF-8 terminal is preferable. UTF-8 terminal opera‐
tion can be configured in either of these ways:
· Auto-detection: If the terminal emits cursor position
reports, mined can uniquely recognise UTF-8 terminal
encoding and further UTF-8 features (see Terminal encod‐
ing support below).
· Environment: By proper environment variable settings.
For more details, see Locale configuration.
Note: In general, it is advisable to start a terminal
window using a wrapper script that sets a suitable locale
environment at the same time, in order to support all
kinds of applications that are more dependent on proper
environment setting than mined is. The mined installa‐
tion also provides the script uterm for this purpose,
with its own manual page. (In case uterm is not
installed, it is also included in the Mined runtime sup‐
port library.)
· Parameter: +EU selects UTF-8 terminal mode.
See also Terminal interworking
problems for special hints about certain terminals.
CJK support (Chinese/Japanese/Korean Han character features)
Mined provides CJK support features uniformly in Unicode and in major
CJK encodings. For information relating to CJK character encoding see
Character encoding support below.
CJK input method support
Input methods for CJK characters are supported with the keyboard map‐
ping mechanism. A number of popular input methods for CJK text input
are pre-configured, others can be added at compile-time with the
mkkbmap script.
Radical/Stroke input method
Mined provides a Radical/Stroke input method for CJK characters with
specific functionality in addition to keyboard mapping; it works at
two-levels, selecting a radical first, then a character from a list
sorted by stroke count. If this input method is active, a selection
menu for the 214 CJK radicals is displayed (without prior keyboard
input). The menu displays all variations of each radical. After
selecting a radical from this menu, a second-level menu is displayed,
showing all CJK characters based on the selected radical, sorted by the
number of strokes. Many of these menus will not fit on the screen and
can be scrolled. Pressing Escape here would return to the radical
menu; pressing Escape there would disable the input method. To enter a
non-mapped character (e.g. a line end), you need to disable Radi‐
cal/Stroke input method temporarily; just toggle it back on with Alt-k
(or Esc k) or Ctrl-Alt-F12 and the radical menu will be displayed again
for continued input.
For the Unicode version used as the character data source, see the
Options - About information or the mined change log.
CJK character display
Combining characters (in both JIS encodings and GB18030) are handled
and the combined characters are displayed properly in either combined
or separated display mode in a UTF-8 terminal (like for UTF-8 encoded
text). The following special CJK character indications apply:
� or � CJK character that cannot be displayed in the terminal
% or % (if the terminal cannot display �) CJK character that cannot
be displayed in the terminal
` or ` CJK combining character that cannot be displayed in the termi‐
nal
? or ? CJK character code that has no known mapping to Unicode
(to enforce display on CJK terminal use option +C)
# or # invalid CJK character code that is outside of the code range
assigned to the encoding scheme
(to enforce display on CJK terminal use option +CC)
# CJK character in extended code range (esp. 3 and 4 byte codes,
or codes with 0x80...0x9F byte range) that cannot be displayed
on CJK terminal due to terminal capability limitations
(to enforce display on CJK terminal use option +CCC)
< incomplete or otherwise illegal CJK code
Han character information display
When the cursor is on a Han character and either descriptive or pronun‐
ciation information about this character is available in the Unihan
database (from unicode.org), mined can optionally display this informa‐
tion, with a selection of display details which may include semantic
information and various pronunciations.
To enable Han info, select it in the Info menu. To open the Info menu,
type Alt-F10 or right-click the "?" flag. The information can option‐
ally be shown on the status line (where it may be truncated if too
long) or in a pop-up menu next to the character.
Pronunciation information to be displayed can be selected in the Info
menu. While selecting multiple pronunciation options, the menu stays
open.
The same information is always shown while you are browsing an input
method pick list (then on the status line).
Han character information display can be selected with the +?h command
line parameter (or +?x for short display on the status line). To pres‐
elect continuous Han character information display, append this parame‐
ter to the environment variable MINEDOPT.
The information includes the character code (in CJK encoding, both CJK
code and corresponding Unicode value are shown). The amount of
descriptive information (from the Unihan database) to be shown can also
be preconfigured with the environment variable MINEDHANINFO; see Han
info configuration below.
(For the Unicode version used for the Unihan data source, see the
Options - About information or the mined change log.)
Terminal encoding support
Mined supports UTF-8 terminals, CJK terminals, Latin-1 and other 8-bit
encoded terminals.
Terminal feature detection
Mined performs auto-detection of a number of terminal features:
· For UTF-8 terminals, mined performs auto-detection of
terminal features (detection of UTF-8 terminal, different
width data and combining data versions, handling of dou‐
ble-width, combining and joining characters).
· For CJK terminals, mined performs some auto-detection of
specific CJK terminal features (handling of non-EUC code
points, handling of extended code range, GB18030, 3-byte
and 4-byte encodings, detection of kterm JIS encoding,
detection of rxvt emulating CJK encoded terminal, special
CJK width properties, and terminal support of combining
characters).
· For mapped 8-bit terminals, mined performs auto-detection
of terminal support of combining characters.
· For the Unicode version used for width and combining
character properties, see the Options - About information
or the mined change log.
· CJK terminals cannot always be distinguished from 8-bit
terminals by auto-detection. Neither can the encoding of
either CJK or 8-bit terminals be auto-detected. It is
thus advisable to setup proper settings of locale envi‐
ronment variables (LC_ALL, LC_CTYPE, LANG). Alterna‐
tively, the effective terminal encoding can be indicated
to mined with a command line option (+EX). For configu‐
ration details, see Locale configuration below.
Specific terminal properties
For more specific configuration hints (especially for PC-based termi‐
nals), see the Terminal environment configuration hints below.
For interworking issues with specific terminals see also the listing of
Terminal interworking problems.
Mined Command reference (command and key function assignments)
General note on using keys with Control, Shift, Alt modifiers:
Mined makes use of many key combinations modified with Control,
Shift, Alt, or a combination of them, as a resource for invoking
a larger number of specific functions, providing modified func‐
tionality as well as accented character input support. Some of
these key combinations may be limited by local environment,
especially the window system, or may need extra configuration to
be enabled.
Especially modified function keys are often intercepted by win‐
dow systems for special functions.
In general, mined interprets an ESC prefix as an alternative for
an Alt-key combination. For further advice and window system
specific hints on further remedies, as well as configuration
hints, to enable modified key input see the hint box under
Accent prefix keys above.
Generic command modifiers (esp. HOP key)
^Q or ^G or "5" (on keypad) or Menu (in Linux) or * (on keypad) or
Shift-TAB
HOP key (except ^G followed by a digit).
In order to enable the "5" key to invoke the HOP function, or
assign the HOP function to another key (e.g. on laptops which
lack the numeric keypad), some configuration may be necessary;
see Keypad configuration below.
ESC Prefix for subsequent "letter commands".
Also: Generic prefix for "Alt" modified command (to apply to a
subsequent command for which the terminal does not support the
Alt key).
^V (Prefix for control character input, but also:)
Generic prefix for "Control" modified command (to apply to a
subsequent command for which the terminal does not support the
Control key).
Ctrl-< punctuation key >
Set of accent prefix keys to enter composed characters.
Cursor and screen motion
^E or cursor-up
Move cursor 1 line up.
... with HOP:
Go to top of page.
^X or cursor-down
Move cursor 1 line down.
... with HOP:
Go to bottom of page.
^S or cursor-left
Move cursor 1 character left.
... with HOP or Ctrl-Home
Go to beginning of line.
^D or cursor-right
Move cursor 1 character right.
... with HOP or Ctrl-End
Go to end of line.
^A or Shift-cursor-left (on small keypad)
Move word left (to preceding beginning of a word).
... with HOP:
Go to beginning of sentence.
^F or Shift-cursor-right (on small keypad)
Move word right (to beginning of next word).
... with HOP:
Go to end of sentence.
Ctrl-Shift-cursor-up
Move backward to previous beginning of paragraph.
Ctrl-Shift-cursor-down
Move forward to next beginning of paragraph.
Shift-cursor-up (on small keypad)
Go to top of page.
Shift-cursor-down (on small keypad)
Go to bottom of page.
^R or PgUp or PrevScreen (VT100)
Scroll backward 1 page (Top line becomes bottom line).
... with HOP:
Go to beginning of text.
^C or PgDn or NextScreen (VT100)
Scroll forward 1 page (Bottom line becomes top line).
... with HOP:
Go to end of text.
Home (on small keypad)
Move to beginning of line. If already there, move to beginning
of previous line. Only if keyboard is configured to emit dif‐
ferent control sequences for the two keypads, see Keypad config‐
uration hints below.
Ctrl-Home (on small keypad)
Move to beginning of line.
End (on small keypad)
Move to end of line. If already there, move to end of next
line. Only if keyboard is configured to emit different control
sequences for the two keypads, see Keypad configuration hints
below.
Ctrl-End (on small keypad)
Move to end of line.
Navigation support for combined Unicode characters
Enabling partial editing of base character and combining charac‐
ters (accents) in combined display mode.
Ctrl-cursor-right or ^V cursor-right
Micro movement: Move partial character right into Unicode com‐
bined character.
Ctrl-cursor-left or ^V cursor-left
Micro movement: Move partial character left over Unicode combin‐
ing character.
^W or Ctrl-PgUp
Scroll screen backward 1 line.
... with HOP:
Scroll backward half a screen.
^Z or Ctrl-PgDn
Scroll screen forward 1 line.
... with HOP:
Scroll forward half a screen.
^G nn or ESC g nn
Move to a line (prompts for line number). (Terminate command
with Enter or Space.)
^G nn % or ESC g nn %
Move to position in text determined by percentage.
^G nn p or ESC g nn p
Move to page in text (set page length with ESC P).
^G < command > or ESC g < command >
If not immediately followed by a digit, the positioning command
works as an alternative HOP key.
^G N ' (N=0..9) Go to marker N. ("'", "g", "." may be used.)
ESC ' N (deprecated)
(N=0..9) Go to marker N.
HOP Home or ^G ^@ or ^G ^] or HOP ESC ^
Move to the position previously marked by Home/^@/^]/ESC ^
ESC Enter or Alt-Enter (Alt-Return)
Return backward to the previous position marked in the position
stack.
HOP ESC Enter or HOP Alt-Enter (HOP Alt-Return)
Return forward to the next position marked in the position
stack.
left mouse button
move cursor to position
Entering text
< printable char >
Insert the character at cursor position.
< Enter > or < LF Linefeed char > or < CR Return char >
Insert a newline at cursor position, clone line end type. Apply
auto-indentation if enabled.
Ctrl-Enter
Make a new line by inserting a Unicode line separator at cursor
position (unless disabled with +u-u). (See also Unicode line
ends for key configuration.)
Shift-Enter
Make a new line by inserting a Unicode paragraph separator at
cursor position (unless disabled with +u-u). (See also Unicode
line ends for key configuration.)
Ctrl-Alt-Enter
Make a new line by inserting a DOS or Unix line end at cursor
position (if editing Unix or DOS file, respectively). (See also
Unicode line ends for key configuration.)
Ctrl-Shift-Alt-Enter
Make a new line by inserting a Mac line end at cursor position.
(See also Unicode line ends for key configuration.)
< Tab char >
Insert a Tab character at cursor position. with option -+4 or
-+8: Tab expansion; insert as many space characters as needed to
fill line up to the next Tab position.
^V < Tab char >
Insert a Tab character (even in Tab expansion mode).
HOP {, HOP (, HOP [, HOP <
Enter indented pair of matching parentheses.
HOP / Enter an indented Javadoc comment frame.
HOP ' or HOP � (acute accent)
Enter an apostrophe (U+2019). Note: In smart quotes mode, �
alone also enters an apostrophe.
HOP ` (grave accent)
Enter a glottal stop / 'okina (U+02BB). Note: In smart quotes
mode, ` alone also enters a glottal stop.
HOP - Underline the line that starts before the cursor position.
^O Make new line at current position. If the current line has a
"NUL" or "NONE" special line end type, it will be reproduced for
the new line. (Entering a new-line key always produces a real
line end.) If the current line is terminated by a Unicode para‐
graph separator, a line separator is inserted.
Auto-indentation is not applied.
HOP ^O Split a line in two binary-transparently, i.e. enter a "NONE"
virtual line end.
Accented character input support by accent prefix keys
Mined defines a number of function keys, modified function keys, mod‐
ifed digit keys, and modified punctuation keys for single and multiple
accent composition with a subsequently entered character; for a
detailed listing and description, see Accent prefix function keys
above.
Up to three accent prefix keys can be combined by entering them in
sequence in order to compose characters with multiple accents. These
functions also work on the prompt line (e.g. to enter search expres‐
sions).
F5 < character >
Compose character with diaeresis (umlaut accent), e.g. a � �
Shift-F5 < character >
Compose character with tilde, e.g. a � �
Ctrl-F5 < character >
Compose character with ring or with cedilla, e.g. a � � , c � �
Ctrl-Shift-F5 < character >
Compose character with ogonek.
Alt-Shift-F5 < character >
Compose character with breve.
F6 < character >
Compose character with acute accent (accent d'aigu), e.g. a � �
Shift-F6 < character >
Compose character with grave accent, e.g. a � �
Ctrl-F6 < character >
Compose character with circumflex accent, e.g. a � �
Ctrl-Shift-F6 < character >
Compose character with macron.
Alt-Shift-F6 < character >
Compose character with dot above.
Ctrl-0 ... Ctrl-9
Compose character with accent, esp. for Vietnamese accented
characters.
(Ctrl-)Alt-1 ... (Ctrl-)Alt-5
Compose character with two accents, esp. for Vietnamese double
accented characters.
(Ctrl-)Alt-6 ... (Ctrl-)Alt-8
Compose character with two accents for Greek multiple accented
characters.
Ctrl-< punctuation key >
Compose character with accent (looking similar to the modified
punctuation character, e.g. Ctrl-, composes with cedilla, Ctrl-:
with diaeresis, Ctrl-minus with macron, Ctrl-( with breve,
Ctrl-< with caron, Ctrl-/ with stroke, Ctrl-; with ogonek, etc;
see Accent prefix function keys above for details).
Input support commands
Ctrl-V special input support
These functions also work on the prompt line (e.g. to enter
search expressions).
^V < control character >
Enter control character.
^V [ or ^V \ or ^V ]
Enter one of the control characters ^[, ^\, ^].
^V ^ ^ or ^V _ _
Enter one of the control characters ^^, ^_.
^V ^ ' or ^V ^ "
Enter one of the plain quote marks ' or " (needed in smart
quotes mode)
^V < accent > < character >
Compose accented character.
^V # xxxx < Space or Enter >
Enter character defined by a hexadecimal number being input
(depending on applicable encoding, byte value, Unicode value, or
valid CJK code is required).
^V # # xxxxxx < Space or Enter >
Like ^V # but using an octal number.
^V # = xxxxx < Space or Enter >
Like ^V # but using a decimal number.
^V # u or U or +
(followed by a numeric input as described above, with optional #
or = for octal or decimal input) interprets the input as a
numeric Unicode value which is converted into the current text
encoding.
^V # ... Space ...
With numeric character input, mined supports successive multiple
character entry according to ISO 14755 if the numeric code is
terminated by a Space key.
^V < function key >
This is not an input support function but rather the function
key is invoked as if pressed together with the control key.
Mnemonic character input support
Mnemonics recognised include the following:
· RFC 1345 mnemos (except mappings to Unicode private use
areas); in ambiguous cases, the RFC 1345 mnemos must be
entered in long mnemonic input mode, e.g. with "^V pi "
rather than "^Vpi".
· HTML mnemos; in ambiguous cases, the HTML mnemos must be
prepended with a "&".
· TeX mnemos (macros) and substitutes, leaving out any "\".
· Supplementary mnemos as listed on the mined character
mnemos page.
Unless there is an ambiguous mapping, all two-letter mnemonics can also
be entered in reverse order.
^V < Space > < name > < Space or Enter >
Lookup character mnemonic and enter character. RFC 1345 mnemon‐
ics take precedence in ambiguous cases.
^V < character > < character >
Compose two characters. Non-RFC 1345 mnemonics take precedence
in ambiguous cases.
Note: A number of mnemonics are defined with already precomposed base
characters (especially for Vietnamese input) which can be used for fur‐
ther composition.
^V can be applied recursively to compose a character for further compo‐
sition.
See examples with � below for both cases.
Examples:
^V^A Enter Ctrl-A.
^V^[ or ^V[
Enter the escape character.
^V__ Enter Ctrl-_.
^V'e Enter � (e with accent d'aigu).
^Vae Enter � (the ae ligature).
^V ae' (terminated by Space or Enter)
Enter U+01FD (� with acute).
^V�' Enter U+01FD (� with acute).
^V ^Vae' (terminated by Space or Enter)
Enter U+01FD (� with acute).
^V'^Vae
Enter U+01FD (� with acute).
^VOK or ^Vcm
Enter the check mark ✓ (U+2713)
^Vzz or ^V zigzag (terminated by Space or Enter)
Enter the downwards zigzag arrow ↯ (U+21AF)
^V-, Enter � (the negation symbol).
^V neg (terminated by Space or Enter)
Enter � (the negation symbol).
^Va* or ^V a* (terminated by Space or Enter)
Enter the Greek small letter alpha.
^V ae' (terminated by Space or Enter)
Enter the Latin ligature ae with acute accent.
^V euro (terminated by Space or Enter)
Enter the Euro character.
^V#20ac (terminated by Space or Enter)
Enter the character with hexadecimal value 20AC (which is the
Euro character in UTF-8 encoding).
^V#U20ac (terminated by Space or Enter)
Enter the Euro character (which has the hexadecimal Unicode
value 20AC) encoded in the currently selected text encoding.
^V#+20ac < Space > +20ac < Enter >
Enter two Euro characters in successive multiple character entry
mode (ISO 14755).
Input method (Keyboard mapping) selection
ESC k or Ctrl-Alt-F12 or left-click or middle-click on Input Method
flag
toggles between current and previously selected input method (or
initially the configured standby input method) Note: (Alt-k or
Ctrl-Alt-F12 also works on prompt line)
HOP ESC k
clears input method, i.e. resets keyboard mapping to none
(unmapped input)
ESC I or ESC K or Ctrl-F12 or right click on Input Method flag (mapping
indication in flags area)
opens the Input Method selection menu Note: (Alt-I or Alt-K or
Ctrl-F12 also works on prompt line)
HOP ESC K
cycles through available keyboard mappings / input methods
Modifying text
Note on the Home and End keys
Sometimes people expect the "Home" and "End" keys to move the
cursor to the beginning or end of line, respectively. In the
keyboard usage approach of mined, these functions can easily and
quite intuitively be invoked with "HOP left" and "HOP right",
i.e. by pressing the keypad keys "5 4" or "5 6" in sequence. So
there is enough room left for mapping the most frequent paste-
buffer functions to the keypad as described above which is con‐
sidered much more useful. Use Ctrl-Home and Ctrl-End for the
line positioning functions, depending on terminal support and
configuration; or use the -k option if preferred to switch key‐
pad key function assignments for the Home and End keys. See
Keypad layout above for a motivating overview of the mined key‐
pad assignment features and options.
Backarrow or ^H
→NEW→ Dual-mode function:
If a visual selection is active: Cut selected area to paste buf‐
fer.
Otherwise: Delete character left. If there is only blank space
before the current position in the current line and the line
above →NEW→ and auto-indentation is enabled, the auto-undent
function (Back-Tab) is performed instead, deleting multiple spa‐
ces back to the previous level of indentation. Note: Mined
tries to map this function to the Backarrow key on the keyboard
whether it is assigned to the Backspace or DEL control charac‐
ters, by inspecting the setting of the terminal interface, see
Automatic backspace mode adaptation.
Ctrl-Backarrow (if key properly configured) or F5 Backarrow
"Delete single": Delete only right-most combining accent of com‐
bined character left of cursor position. If not next to a com‐
bined character: delete character left, avoiding auto-undent
function.
Del (on keypad)
Dual-mode function:
If a visual selection is active: Cut selected area to paste buf‐
fer.
Otherwise: Delete next character right, including any combining
characters.
Ctrl-Del (on keypads, if key properly configured)
Delete character right, excluding any combining characters.
Shift-Del (on small keypad, if key properly configured)
Cut selected area to paste buffer.
DEL (ASCII character)
If detected to be attached to the keyboard Backarrow key: Delete
left. (Or delete visual selection, see above.) (Enforce with
option -B.)
Otherwise: Delete right.
HOP Backarrow
Delete beginning of line (left of current position).
^B Delete character right (next character).
^T Delete next word.
^^ (overridden when used as accent prefix, e.g. with newer xterm)
Delete previous word.
^K Delete tail of line (from current position to line-end); if at
end of line, delete line end (joining lines).
HOP ^K Delete whole line.
Code conversion
ESC X Insert hexadecimal representation of current character code.
(In UTF-8 mode, this is the UTF-8 byte sequence of the character
in hexadecimal notation.)
... with HOP:
Insert character with hexadecimal code scanned from text at cur‐
rent position.
ESC U Insert (hexadecimal) Unicode value of current character (with
either 4/6/8 hexadecimal digits, depending on the value); in CJK
or mapped 8 bit encoding mode, the value is transformed from the
current text encoding into Unicode.
... with HOP or Ctrl-Shift-F11
Insert character with hexadecimal Unicode value scanned from
text at current position; in CJK or mapped 8 bit encoding mode,
the value is transformed from Unicode into the current text
encoding.
ESC A Like ESC U but inserting an octal Unicode value.
... with HOP:
Like HOP ESC U but scanning an octal Unicode value.
ESC D Like ESC U but inserting a decimal Unicode value.
... with HOP:
Like HOP ESC U but scanning a decimal Unicode value.
Alt-x Toggle the preceding character and its hexadecimal code. The
command detects a 2 to 6 hex digit character code with a valid
Unicode value, or a non-digit Unicode character, respectively.
Case conversion
ESC C or F11
Exchange case (low/capital) of character under cursor. Case
mapping is based on Unicode (but applicable in all text encod‐
ings). Special handling is applied for: Greek final s, Turkish
"i" if the effective locale environment variable (LC_ALL,
LC_CTYPE, LANG) begins with "tr" or "az", case mappings to mul‐
tiple characters, Lithuanian special conditions. Japanese char‐
acters are toggled between Hiragana and Katakana.
... with HOP or Shift-F11
Apply case conversion to word from cursor.
Shift-F3
Cycle casing of a word between all small, title case, and all
capitals (title case means the first letter is either capital or
actually a Unicode title case, the following letters are small).
For Japanese script, it toggles the word between Hiragana and
Katakana.
Mnemonic and special conversion
ESC _ or Ctrl-F11
Mnemonic character substitution replaces the two characters at
the cursor position with a suitable composite character (e.g.
accented character) if possible. With Ctrl-F11, transformations
are the same as with the ^V two-letter character input mnemon‐
ics. With ESC _, language-dependent preferences may take prece‐
dence (see variations below) according to the current locale
environment.
Example: ae->�
Special conversion features
· If the text at the cursor position contains an HTML char‐
acter tag (starting with "&" and optionally ending with
";"), it is replaced with the actual character it repre‐
sents.
Example: ¬->�
· If the text at the cursor position contains an HTML
numeric character entity (starting with "" and option‐
ally ending with ";"), it is replaced with the respective
character it denotes.
Example: @->@
@->@
· If the text at the cursor position contains a URL numeric
escape notation (starting with "%") it is replaced with
the actual character it represents.
Example: %40->@
· The command also transforms between Latin-1 and UTF-8
encoded characters if an accordingly encoded character is
found at the current position; the current character
encoding mode is used to determine the target character
set.
Example: � (Latin-1 encoding)->� (current UTF-8 encoding)
or
� (UTF-8 encoding)->� (current encoding)
As variations of ESC _, there are some commands ESC LETTER using
national letters that occur on respective national keyboards. They
apply basically the same transformations but with some national prefer‐
ences taking precedence:
ESC � or ESC � or ESC � or ESC �
Similar to ESC _, but with German transformation preferences.
example: ae->�, oe->�
ESC � or ESC � or ESC � or ESC � or ESC �
Similar to ESC _, but with French transformation preferences.
example: oe->œ (oe ligature U+0153)
ESC � or ESC � or ESC �
Similar to ESC _, but with Danish transformation preferences.
example: ae->�, oe->�
Encoding conversion
HOP ESC ( or Alt-F11
Search for a character encoded in the "wrong encoding", i.e. a
UTF-8 character in non-UTF-8 text mode, or a Latin-1 character
in UTF-8 text mode.
ESC _ or ESC � etc.
If invoked on a non-ASCII character, UTF-8 / non-UTF-8 character
encoding conversion is applied: If the character is not encoded
in the current text encoding it is converted into the current
text encoding (from UTF-8 or from Latin-1).
Alt-Shift-F11
Convert Latin-1 / UTF-8, then search for the next "wrong
encoded" character.
Paragraph formatting
ESC j ("Clever Justify") Format paragraph by word-wrapping according
to the currently set right margin value; left margins are
derived from the contents of the paragraph and line. Heuristic
detection of numbered items automatically triggers appropriate
indentation.
End-of-paragraph is a line without trailing blank space.
... with HOP:
Same, but end-of-paragraph is considered to be a blank line.
ESC J ("Normal Justify") Format paragraph by word-wrapping according
to the currently set left and right margin values.
End-of-paragraph is a line without trailing blank space.
... with HOP:
Same, but end-of-paragraph is a blank line.
ESC < Set left margin for justification.
ESC ; Set left margin of first line of paragraph only.
ESC : Set left margin of next lines of paragraph only.
ESC > Set right margin for justification.
HTML support
ESC H (every first time)
Enter HTML tag (and remember for subsequent ESC H). (Note that
Alt-Shift-H will do the same thing if your terminal is config‐
ured appropriately - see the example configuration file Xde‐
faults.mined in the Mined runtime support library.) The tag can
be entered with attributes and values; these will not be
repeated in the closing tag (see next entry on ESC H).
ESC H (every second time)
Enter closing HTML tag. Any tag attributes and values entered
with the tag (see previous entry on ESC H) will be left out.
HOP ESC H
Put text between mark and current position in HTML tags. The
"A" tag gets special treatment.
Text block and buffer operations
Note on the Home and End keys
Sometimes people expect the "Home" and "End" keys to move the
cursor to the beginning or end of line, respectively. In the
keyboard usage approach of mined, these functions can easily and
quite intuitively be invoked with "HOP left" and "HOP right",
i.e. by pressing the keypad keys "5 4" or "5 6" in sequence. So
there is enough room left for mapping the most frequent paste-
buffer functions to the keypad as described above which is con‐
sidered much more useful. Use Ctrl-Home and Ctrl-End for the
line positioning functions, depending on terminal support and
configuration; or use the -k option if preferred to switch key‐
pad key function assignments for the Home and End keys. See
Keypad layout above for a motivating overview of the mined key‐
pad assignment features and options.
^@ (Ctrl-Space)
or Home (on right keypad) or Shift-Home
or ^] or ESC @ or ESC ^
or Stop (sun)or Select (VT100) Set mark (to remember the current
location).
... with HOP:
Goto mark or: (if on already marked position) Toggle rectangular
selection.
^Y
or End (on right keypad) or Shift-End
or Copy (sun) or Do (VT100) Copy selected text (between mark and
current position) to paste buffer. If rectangular copy/paste
mode is selected: Copy rectangular area spanned by mark and cur‐
rent position to paste buffer.
... with HOP:
Append to buffer.
^U
or Del (with visual selection) or Shift-Del (small keypad)
or Cut (sun) or Remove (VT100) Cut selected text (between mark
and current position) to paste buffer. If rectangular
copy/paste mode is selected: Cut rectangular area spanned by
mark and current position to paste buffer.
... with HOP:
Append to buffer.
^P or Ins or Ctrl-Ins
or Paste (sun) or InsertHere (VT100) Paste contents of paste
buffer to current position. If rectangular copy/paste mode is
selected: Paste contents of paste buffer as rectangular area to
current position and corresponding positions of subsequent
lines. With ^P or Ctrl-Ins, the cursor is placed before the
pasted region. With Ins, the cursor is placed behind the pasted
region unless the option -V was used.
In rxvt, with Ins on the left keypad, the cursor is placed
before (left of) the pasted region.
... with HOP: (e.g. HOP Ins or ^G^P)
Paste from inter-window buffer. Thus you can quickly copy text
from one invocation of mined to another.
→NEW→ Shift-Ins (Windows/cygwin version)
Insert text from Windows paste buffer. →NEW→ With Ctrl-Shift-
Ins, the cursor is also placed before the pasted region.
Alt-Ins or Ctrl-F4
Replace text just pasted with preceding paste buffer. This com‐
mand uses a ring of paste buffers (like emacs "yank ring").
^G N m or ESC g N ,
(N=0..9) Set marker N. (^G N , also works.)
ESC m N
(N=0..9) Set marker N.
^G N ' or ESC g N '
(N=0..9) Go to marker N. (^G N g or ^G N . also works.)
ESC ' N (deprecated)
(N=0..9) Go to marker N.
ESC b or Shift-F4
Copy contents of paste buffer into a file.
... with HOP:
Append to file.
ESC i or F4
Insert file at current position.
Print from File menu
Print text being edited (to default printer).
HOP ESC ! or (deprecated) ESC c
Invoke operating system command (prompted for) with paste buffer
as input.
Search
Note on case-insensitive searching
Mined applies case-insensitive search pattern matching where the
search pattern contains small characters, unless when searching
for an identifier (current identifier occurence, HOP F8, or
identifier definition, Alt-t). For a case-sensitive search for a
small letter, use a single-letter range expression like [x] or a
backslash escape like \x (note, however, that \n and \r have
special meaning).
ESC / or Find or F7 or F8 or / (on keypad)
Search forward (prompt for regular expression).
... with HOP:
Search for current identifier.
ESC \ or Alt-F7 or Alt-F8 or Alt-/ (on keypad)
Search backward (prompt for regular expression).
HOP F8 or Shift-F9
Search for current identifier.
HOP Alt-F8 or Alt-Shift-F9
Search for current identifier backward.
HOP Shift-F8 or ESC t or Alt-t
Search for definition of current identifier (using tags file),
or open file referred to. See ESC t below for further descrip‐
tion.
HOP Ctrl-Shift-F8
Search for identifier definition (prompts for identifier).
HOP Ctrl-F8 or Ctrl-Shift-F9
Search for current character.
^N or F9
Search for next occurence (using previous search expression and
direction).
... with HOP:
Repeat last but one search; two alternating search expressions
can be used with this command.
Alt-F9 Search again (for last expression) but in the opposite direc‐
tion.
ESC , or Shift-F8
(Global) Substitute (prompt for search and replacement strings).
ESC r or Ctrl-F8
(Global) Replace with confirmation prompting (first prompt for
strings).
ESC R or Ctrl-Shift-F8
(Line Replace) Substitute on current line (prompt for strings).
ESC ( or ESC ) or ESC { or ESC }
Perform one of the following matching searches, depending on
text: Search for corresponding bracket matching the bracket at
current position in one of the pairs (), [], {}, <>, ��.
(Nested matching bracket pairs are skipped.) In an HTML or XML
file, search for matching tag (nesting considered). Search for
matching /* */ comment delimiter. Search for matching #if
#else/#elif #endif structures (nesting considered). On an #else
or #elif directive, the search direction depends on the command
character, i.e. ESC ( searches backward, ESC ) searches forward.
In a mailbox file, on any mail header line, search for next or
previous mail message, depending on the command character, i.e.
ESC ( searches backward, ESC ) searches forward. In a mailbox
file or saved mail message, on a MIME separator, search for next
or previous MIME separator, depending on the command character,
i.e. ESC ( searches backward, ESC ) searches forward.
ESC t or Alt-t or HOP Shift-F8
Search for and move to the location of the definition of identi‐
fier at the current cursor position. This command uses the tags
file that can be generated with the ctags command (Unix). It
opens another file if necessary and automatically saves the cur‐
rent file then.
On an include statement (line beginning with "include" or
"#include"), the command opens the included file.
Like with a number of positioning commands, ESC t places the
current position on the position marker stack before going to
the location of the identifier definition. The command ESC Enter
(Alt-Enter) can move back to that position, even if edited files
were changed with the command.
HOP ESC t or HOP Ctrl-Shift-F8
Similar, but prompts for identifier.
HOP ESC ( or Alt-F11
Search for a character encoded in the "wrong encoding", i.e. a
UTF-8 character in Latin-1 mode, or a Latin-1 character in UTF-8
mode.
Special functions in a search string
matches any character.
^ (at begin of pattern) restricts match to the begin of a line.
$ (at end of pattern) restricts match to the end of a line.
[< character set >]
matches any one of a set of characters; the set may be given by
listing elements, denoting a range < c1 >...< c2 >, or negating
the whole set [^< character set >].
\< character >
matches the character literally (except n or r).
< pattern >*
(a star appended to any one of the defined patterns) matches a
(zero or more times) repetition of this pattern. In a final
position within the search expression, however, it matches one
or more times this pattern.
^V^J or \n
(a linefeed character or its representation) searches for new‐
line embedded in the search pattern
\r searches for DOS/Windows newline (CRLF) embedded in the search
pattern
Special functions in a replacement string
& is replaced by the matched pattern to be replaced.
^V^J or \n
(a linefeed character) embeds a newline (LF character) in the
replacement string
\r (a carriage return character) embeds a CR character in the
replacement string
File operations
ESC w or F2
Save (write back) current text to file (only if modified). Save
file information (editing position etc), create file info file
if needed.
... with HOP:
saves current file position and other editing information in
file info file, so that subsequent editing sessions will start
at the current position and remember formatting parameters.
ESC W or Shift-F2
Save (write back) current text to file (unconditionally). Also
enable memory for file positions in current directory (creates
file info file).
Alt-F2 Save As; save current text to file with different name; file
permissions (access modes) are preserved and cloned.
Ctrl-Shift-F2 or HOP Shift-F2
Save to file, and enable memory for file positions in current
directory (creates file info file).
F3 Edit another file (prompt for save if current text changed).
Ctrl-F3 or ESC v
View another file (prompt for save if current text changed).
ESC V Toggle between edit mode and view only mode.
ESC q Quit the editor (prompt for save if current text changed).
ESC ESC or Ctrl-F2
Exit editing current text (save first if changed), continue with
the next file (from the File switcher list); exit mined if there
is no subsequent file to edit. Note: If a file name occurs on
the command line multiple times (explicitly or by wildcard
expansion), file list navigation is not linear. Note: There is
a small delay after typing ESC ESC. (This is in order to enable
recognition of Alt-function key combinations which are imple‐
mented by some terminals or terminal modes by prefixing ESC to
the function key escape sequence.) This delay can be avoided by
using Ctrl-F2.
ESC + Edit the next file (from the File switcher list) Note: If a file
name occurs on the command line multiple times (explicitly or by
wildcard expansion), file list navigation is not linear.
... with HOP:
Edit the last file.
ESC - Edit the previous file (from the File switcher list)
... with HOP:
Edit the first file.
ESC # Ask for index into the list of files and edit that file.
^G N # or ESC g N #
Edit Nth file. (^G N f also works.)
ESC # #
Reload file currently being edited.
Menu
ESC Space or Alt-Space or Shift-F10
Open Popup menu.
ESC F10 or Alt-F10 or Ctrl-F10
Open first flag menu (Info menu).
ESC f or Alt-f or F10
Open File menu.
ESC < letter > or Alt-< letter >
Open menu.
ESC I or Alt-I or ESC K or Alt-K or Ctrl-F12
opens the Input Method selection menu (Alt-I/Alt-K/Ctrl-F12 also
works on prompt line)
ESC Q or Alt-Q
opens the Smart Quotes selection menu
ESC E or Alt-E
opens the Encoding selection menu
Miscellaneous
ESC = < count >
Repeat a command < count > times (prompts for count). Example:
ESC=7< cursor down > moves the cursor 7 lines down. Note: If
the function to be repeated is a character to be inserted and
the input is keyboard mapped to a multi-character sequence, only
the first character of the sequence is inserted repeatedly.
ESC < count >
Repeat a command < count > times (prompts for rest of count);
this short form is only accepted, however, if the repeat count
consists of at least two digits (this is to avoid confusion with
function key escape sequences of certain terminals). Example:
ESC77. enters a line of 77 dots, ESC07x enters "xxxxxxx".
^V < function key >
Invoke function as if pressed together with the control key.
E.g. ^V < cursor-left > moves left into the parts of a combined
character just like Ctrl-cursor-left would do (the latter may
depend on proper terminal setup).
^\ Abort current command, e.g. while on prompt line.
ESC ? Show the current status of the file (name, whether modified,
current line, number of lines, characters, and bytes).
... with HOP:
Toggle permanent display of text status line. Note that when
editing a file that does not fit completely in memory (e.g.
large file on old system), this option may cause considerable
swapping. In that case, do not use the feature.
ESC u Display the character code of the current character in the bot‐
tom status line. (In UTF-8 encoded text mode, both the UTF-8
byte sequence and the Unicode value are displayed; in CJK or
mapped 8 bit encoded text mode, Han or 8 bit character values
and corresponding Unicode values are displayed when applicable.)
In non-Latin-1 encoded text mode, additional Unicode information
is included, indicating the script, character category, width,
combining, and surrogate properties of the character.
... with HOP:
Toggle permanent character code display.
ESC T Toggle Tab width. Alternates the width interpretation of Tab
characters between 4 and 8.
... with HOP:
Toggle Tab expansion (input substitution with spaces).
ESC P Set page length (number of lines that mined assumes to be on a
page). (Useful for status display.)
ESC a Toggle append mode (append to text buffer/file instead of over‐
writing).
ESC d Show current directory / change to another one (also change
drive in MSDOS version).
The assumed (relative) file path name as well as file permis‐
sions (access modes) are preserved.
ESC n or Set Name... from File menu
Change the file name associated with the text being edited; the
file is not actually saved yet but only the new file name is
used for saving the next time. The text is detached from the
file previously loaded which is not affected.
All current text editing properties (assumed encoding, smart
quotes style, margins, ...) as well as file permissions (access
modes) are preserved.
ESC . Redraw the screen.
→NEW→ Alt-F12
(in terminals that support an alternate screen view) switch to
normal screen (to view command line history and possibly mouse-
copy/paste) until next input
ESC l Make screen lower (decrease number of screen lines).
ESC L Make screen higher (increase number of screen lines).
ESC % Make screen smaller (decrease screen size).
ESC & Make screen bigger (increase screen size).
Shift-keypad-Minus
Make font smaller. (Works in mintty and natively in xterm.)
Shift-keypad-Plus
Make font bigger. (Works in mintty and natively in xterm.)
ESC z Suspend editor process; first write back file if modified (no
write if HOPped or given empty file name on prompting). Mined
detects (by checking process and group IDs and terminals)
whether it is safe to suspend and rejects it otherwise (e.g. if
it is run embedded within a terminal, without underlying shell,
or from a shell script).
ESC ! Fork off a shell and wait for it to finish.
... with HOP:
Invoke operating system command (prompted for) with paste buffer
as input.
F1 or Help or Alt-h or ESC h
Interactive help function. Selection of help topics is offered
and prompted; after entering the initial letter, the respective
help section is shown.
If another (modified) F1 key, a modified digit key, or a Ctrl-
modified punctuation key is entered, a corresponding key assign‐
ment help bar is displayed (see F1 F1 etc. below).
The help file mined.hlp is installed with the Mined runtime sup‐
port library. If this is not installed in one of the standard
locations, the environment variable MINEDDIR should be set to
point to the directory so mined can find its help file.
F1 F1 or Shift-F1 or Ctrl-F1 or Alt-F1 or Ctrl-Shift-F1 or Alt-Shift-F1
Display a help bar (in the bottom status line) with short indi‐
cations of the functions assigned to the function keys F2... in
the corresponding modified mode (i.e. with Control, Shift, and
Alt as requested for the help bar).
... with HOP:
Toggle permanent help bar display.
F1 Ctrl-1 or F1 Alt-1 or F1 Alt-Ctrl-1
Display a help bar (in the bottom status line) with short indi‐
cations of the accent prefix functions assigned to the digit
keys 1..9, 0 in the corresponding modified mode (i.e. with Con‐
trol and Alt as requested for the help bar).
... with HOP:
Toggle permanent help bar display.
F1 Ctrl-< punctuation key > e.g. F1 Ctrl-,
Display a help bar (in the bottom status line) with short indi‐
cations of the accent prefix functions assigned to the Ctrl-mod‐
ified punctuation keys.
... with HOP:
Toggle permanent help bar display.
ESC While a command is active and prompting (e.g. for a search
expression), ESC aborts the current command.
ESC Space
Do nothing, so the Space key aborts the ESC command.
MSDOS keyboard functions
Ctrl-Alt-Space
Set mark (to remember the current location).
Alt-TAB (not in Windows)
HOP / Go to.
Ctrl-* (on keypad)
HOP / Go to.
Ctrl-/ (on keypad)
Search forward.
Alt-/ (on keypad)
Search backward.
Screen size change functions
MSDOS screen size changes depend on a table of common VGA video
modes (dosvideo.t).
In the presence of a TSR driver which can change fonts and
screen modes while running a program (e.g. the excellent VGA‐
MAX), the actual change effective may occasionally be unex‐
pected. Mined recognises such changes after the next character
input and adjusts to them.
Alt-- (on keypad)
Change video lines mode to the mode with the next smaller number
of lines but same number of columns. (The number of lines is
first tried to be decreased within the current video mode. If it
is already the lowest, the next video mode is chosen.)
Alt-+ (on keypad)
Change video lines mode to the mode with the next higher number
of lines but same number of columns.
Ctrl-- (on keypad)
Change video mode to the mode with the next smaller total reso‐
lution (lines * columns).
Ctrl-+ (on keypad)
Change video mode to the mode with the next higher total resolu‐
tion.
HOP Ctrl-/Alt- +/- (on keypad)
Several other video mode settings are prompted for (experimen‐
tal).
Emacs mode
Mined emulates emacs keyboard layout and some specific functions if
invoked with the option -e or with the command name alias minmacs.
In emacs mode, emacs command key assignments to control keys, ESC (Meta
commands) and ^X (C-X commands) are configured. In addition, the fol‐
lowing emacs-compatible changes apply:
· The mined ESC commands can be reached via M-x. (Function
keys remain unaffected.)
· The Del key (on the small keypad) is configured to delete
the previous character.
· The control key insertion prefix is ^Q.
· The quit character (e.g. for the prompt line) is ^G.
· The emacs multiple buffer ring is fully enabled.
· Paragraph justification mode is set to consider an empty
line as paragraph separation by default.
· Mined ESC commands can be reached via M-x (Alt-X).
· ^\ (Ctrl-\) is interpreted as an additional HOP key.
· Keyboard mapping (input method) can be toggled with Ctrl-
Alt-F12
Command overview:
^A, ^B, ^E, ^F, ^N, ^P, ^V, M-v, M-b, M-f, M-a, M-e, M-< , M->, ^X[,
^X]
cursor and screen movement
^D delete character
^O insert new line
^Q insert literal character
^@ mark position
^W / M-w
cut / copy to buffer
^K delete to end of line / delete line end, and append to buffer
M-d / M-k
delete word / delete end of sentence, and append to buffer
^Y paste buffer
M-y paste previous buffer, replacing text just pasted
M-u transform word upper-case
M-l transform word lower-case
M-c transform word capitalised (initial upper-case)
^S, ^R search forward / reverse
M-% replace with confirmation
M-. search for identifier definition (using tags file)
^X^S, ^Xs
save file
^X^W save file as (using different name)
^X^F edit other file (prompts for name)
^X^B edit previous file (among those listed on command line)
^X^C quit editor, prompt for saving text first
^Xk discard current edit buffer (after confirmation), open new one
^Xi insert file
^X= display file statistics
^L refresh display
^U, ^X^[
repeat (not as generic numeric command parameter)
^H help
^Z, M-z, ^X^Z
suspend editor
^\ (mined add-on)
HOP (generic function amplifier / expander)
M-x (Deprecated mined add-on)
invoke mined ESC command
ESC ESC (mined add-on)
invoke mined ESC command
Windows keyboard mode
Mined emulates typical Windows control key functions if invoked with
the option +ew; this is enabled automatically when invoking mined via
the wined.bat script or from the Windows explorer context menu of a
text file.
The usual Escape commands and function key assignments of mined also
apply in Windows keyboard mode. Also, ^@ and ^_ are included to provide
the respective functionality.
^@ mark position
^C copy selected text area (between marked and current position)
^F search
^G goto
^H replace (with confirm)
^O open other file
^P print
^Q quit
^S save file
^V paste
^W close file
^X cut selected text area (between mark and current position)
^_ insert control character
WordStar mode
Mined emulates WordStar keyboard layout and some specific functions if
invoked with the option -W or with the command name alias mstar.
The usual Escape commands and function key assignments of mined also
apply in WordStar mode.
In prefixed two-key commands, the control state and case of the second
key does not matter, e.g. ^K^B, ^KB and ^Kb are identical.
^S, ^D, ^E, ^X, ^A, ^F, ^R, ^C, ^W, ^Z, ^H
cursor and screen movement
^G delete character
^T delete word
^Y delete line
^Q^Y delete to end of line
^N insert new line
^P insert control character
^Q^W, ^Q^Z
scroll multiple screen lines
^Q^F find
^Q^A find and replace (with HOP: with confirm)
^L repeat last search
^Q HOP key
^Q, ^K, ^O
two-key command prefixes
^Q^Q repeat following command
^B paragraph justification (word wrap)
^OL set left margins
^OG set left margin for first line of paragraph
^OR set right margin
^KB set marker
^QB goto marker
^Kn (n=0..9) set marker n
^Qn (n=0..9) goto marker n
^KK copy between here and marker (not exactly WS function)
^KC copy (paste) saved text here (not exactly WS function)
^KY delete between here and marker (not exactly WS function)
^KV copy (paste) saved text here (not exactly WS function)
^KW write paste buffer to file
^KR read (insert) file here
^KS write (save) edited text to file
^KD write (save) edited text to file, edit next file
^KX exit (and save)
^KQ quit (don't save)
^KL change current directory
→NEW→ Configuration of user preferences
User preferences can be configured in a runtime configuration file
$HOME/.minedrc. A documented sample file is included in the Mined run‐
time support library as conf_user/minedrc.
Environment interworking and configuration hints
A number of configuration options have already been addressed through‐
out the manual page. A few more configuration features are mentioned
here. For more details, examples, and other display settings see the
example script conf_user/profile.mined in the Mined runtime support
library.
Mined runtime support library
The mined distribution provides a collection of runtime support files
(in subdirectory usrshare); if mined is installed into standard loca‐
tions, they are copied to one of the directories /usr/share/mined,
/usr/share/lib/mined, /usr/local/share/mined, /opt/mined/share,
$HOME/opt/mined/share (depending on operating system and installation
options).
Mined runtime support includes:
· Package documentation
package_doc/*
mined package overview, introduction, change log, license
· Web documentation
doc_user/*
copy of the web documentation including the HTML version
of the mined manual page
· Interactive help
help/mined.hlp
help file (for F1 commands)
· Configuration example files
conf_user/minedrc
→NEW→ user preferences configuration sample file; to be
copied to $HOME/.minedrc
conf_user/profile.mined
shell commands to set environment variables for mined,
template for inclusion in $HOME/.profile
conf_user/Xdefaults.mined
xterm configuration entries suitable for mined, template
for inclusion in $HOME/.Xdefaults or $HOME/.Xresources
conf_user/xinitrc.mined
shell commands to activate Xdefaults.mined, template for
inclusion in $HOME/.profile
conf_user/kp5
shell script to assign the X key symbol Menu to the mid‐
dle keypad key ("5") as a remedy to the inability of the
KDE konsole terminal to recognise that key (due to a
deficieny in the QT framework), thus enabling the HOP key
in konsole
conf_user/mlterm/main
mlterm configuration to enable Alt-key detection, for
inclusion in $HOME/.mlterm/main
conf_user/mlterm/key
mlterm configuration for modified (shifted etc) function
keys, for inclusion in $HOME/.mlterm/key
conf_user/konsole/xterm-modified.keytab
KDE konsole keyboard configuration providing a terminal
(called "xterm with key modifiers" in the konsole menu)
with modified (shifted etc) function keys
conf_user/terminator/options
option to be added for the Terminator Java terminal to
enable Alt-letter functions
conf_user/MINED-VMS.COM
commands to define mined commands and set up help for DCL
on VMS
· Scripts to be used at runtime
bin/uprint
script for printing a Unicode file, using either paps or
uniprint for formatting; under Windows, it can also use
notepad /p for printing
· Scripts to start mined
bin/uterm
script to invoke xterm in UTF-8 mode; it should also be
installed into the system binary path and has its own
manual page
bin/mterm
script to invoke mlterm with suitable options (for bidi
support)
bin/umined
script to start mined in a separate xterm window, using
UTF-8 mode with most recent version of Unicode width data
(specifying wide and combining characters) as built-in to
xterm
bin/xmined
script to start mined in a separate xterm window, using
same encoding mode as currently set
bin/wined
(on Windows) cygwin script to start mined in a window
(using the mintty terminal, applying Windows look-and-
feel)
bin/wined.bat
(on Windows) command script to start a mined window in
Windows keyboard emulation mode
· Files to setup a mined installation
setup_install/mined.desktop
KDE desktop entry to start mined in an xterm from a menu
entry, using the uterm script
setup_install/mined.ico
Cygwin/X desktop icon for adding mined to the Cygwin-X
Editors section in the Windows Start menu
· Scripts to configure an environment for mined
setup_install/bin/configure-xterm
sample configuration script to build xterm with recom‐
mended configuration options
setup_install/bin/makeprint
script to search for or retrieve and build the uniprint
program from the yudit package
setup_install/bin/installfonts
script for downloading the Unicode-enhanced X screen
fonts and installing them with your X server
setup_install/bin/bdf18to20
script to transform an 18x18 pixel double-width screen
font into a corresponding 20x20 pixel font matching the
10x20 single-width font (which is much nicer than the
9x18)
setup_install/cyg/*
optional postinstallation (not in use) for cygwin to
install mined with the Windows desktop and the Cygwin/X
menu
setup_install/win/*
installation of the Windows stand-alone version
PC versions
For Windows with a cygwin system (http://cygwin.com/), mined is avail‐
able as a cygwin package.
Two other versions are available for DOS/Windows systems:
· Stand-alone Windows version, compiled with cygwin. It
runs in a Windows console, Windows terminal (e.g.
mintty), or X terminal. It is packaged together with
mintty. Its installation registers its invocation (in
mintty) from the Windows context menu for text files.
· DOS version, compiled with djgpp. It runs on plain DOS
(with some special support of FreeDOS codepage configura‐
tion) or in a Windows console window (DOS command window)
but not in a typical terminal application like mintty or
xterm. It supports long file names in Windows
98/2000/XP/... (not NT4.0).
See the mined web site http://towo.net/mined/ for download.
For hints on PC-specific terminal configuration issues, see PC termi‐
nals below.
VMS version
Mined runs on OpenVMS, with a number of specific adaptations especially
in file handling.
· Options containing capital letters need to be quoted,
e.g. MINED "-Qa" [-]*.com. Mined options can also be
passed in the symbol MINED$OPT.
· Filename wildcard expansion is applied, accepting both
Unix-like and VMS-native subdirectory notations.
· File versions can optionally be specified and are handled
properly; for example, an explicit version opened for
editing can be saved and will be the most recent version
as expected.
· The file chooser accepts Unix-like or VMS-style directory
notations for navigation. Switching to the current
directory (TAB or Enter) which is the first entry of the
file chooser list, displayed in VMS style, turns the file
list into VMS-style listing of all file versions.
Logical names can be used for direct navigation if a
final ":" is included (like SYS$LOGIN:).
· Note that opening the file chooser may be very slow on
large directories.
· If the terminal window is resized while mined is running,
mined will notice and adjust after an explicit refresh
(ESC .). The system, however, is not notified of the
changed window size in this case. Please resize (again)
while on the command line.
· The capability to accept terminal copy-paste is limited
by the VMS 80 character input buffer (not limited on emu‐
lated VMS, e.g. on "Personal Alpha"). For some remote
terminals (mintty, rxvt), full Unicode data version
detection is disabled to reduce start-up delay.
· The file info memory files are called .$mined instead of
.@mined, recovery files are called $name$ instead of
#name#.
· In the VAX version, CJK character encodings, Han charac‐
ter information, and Unicode character information tables
are not included by default. Alpha and IA64 versions
include all Unicode and character encoding features.
· For hints related to the DECterm window, see below.
See the template script MINED-VMS.COM in the conf_user subdirectory of
the Mined runtime support library or the file README.vms (MINED.README
in the VMS binary package) for installation hints.
Android version
There are a number of deviations from typical Linux systems; mined pro‐
vides workarounds where necessary. Mined runs on Android with these
Apps installed:
· C4droid (needed as container for gcc)
· GCC for C4droid (to compile mined)
· Better Terminal (recommended, for shell and terminal)
· UniversalAndroot (to access gcc from terminal shell)
Terminal environment
For terminal-specific hints, see Terminal interworking problems below
On Unix, the terminal type is determined from the environment variable
TERM. The termcap/terminfo mechanism is used to derive the actual prop‐
erties of the terminal; for some terminals (cygwin, xterm, rxvt, vt*),
this information is also built-in as a fallback in case terminal infor‐
mation is not available on a system (this is especially useful for the
cygwin stand-alone version).
Recognition of some special terminal features or restrictions is asso‐
ciated with the setting of TERM (xterm, linux, vt100, sun*, cygwin,
rxvt, *ansi*, 9780*, hp*, xterm-hp, superbee*, sb*, microb*, scoansi*,
xterm-sco, cons*, att605-pc, ti_ansi, mgterm). Non-trivial screen fea‐
tures (like scroll reverse, add/delete line, erase multiple characters)
are used if their support is indicated in the termcap/terminfo descrip‐
tion of the terminal unless other information is available (e.g. after
terminal version detection, an older xterm is supposed not to support
erase characters). Since colour support is often not configured within
terminfo but modern terminals do support it, mined always tries to
apply colour attributes (if the terminal at least supports ANSI control
sequences). A number of other "best practice" approaches are taken to
optimize the usage of terminal capabilities, esp. covering different
methods of graphics display support (for menu borders).
For detection of function keys and cursor keys, the escape sequences
being used by terminals are often not known to an operating system
environment because they are poorly and incompletely configured.
Because this does usually not work as expected (see this bug report
just for an example), mined does not rely on the termcap/terminfo con‐
figuration of function key codes alone (which it considers however
since mined 2000.14); rather it always accepts a wide variety of typi‐
cal codes. A few ambiguous codes are resolved according to the TERM
variable.
In an xterm, window headline and icon text are set to the current file‐
name and "(*)" is added if the text has been modified.
Locale configuration
The locale mechanism as implemented on modern systems has a number of
design problems, one being that there is no explicit distinction
between text encoding and terminal encoding although this is obviously
a very different thing and mixed combinations of both may occur and are
actually supported by mined.
For this reason, mined extends the locale environment variable mecha‐
nism with the variable TEXTLANG which is only considered for assumed
text encoding (with precedence over the other locale variables). Also
mined provides additional features to specify both terminal and text
encodings.
· For text encoding, mined checks the variables TEXTLANG,
LC_ALL, LC_CTYPE, LANG in this order.
· For terminal encoding, mined checks the variables LC_ALL,
LC_CTYPE, LANG in this order.
· Explicit command line parameters are available to specify
either terminal encoding (+E) or text encoding (-E). They
override environment variable settings.
· UTF-8 terminal auto-detection overrides other terminal
encoding settings.
· Text encoding auto-detection overrides environment set‐
tings but not command line settings.
· Assumed text encoding can be switched while editing.
For encoding recognition from locale environment variables, mined
recognises locale specifications typically found in system installa‐
tions, including those which do not include an explicit encoding suf‐
fix. Known character encoding suffixes ("codeset" component of locale
name, starting with ".") are recognised regardless of whether the given
locale is installed or not. Other encodings are recognised by region
suffix (starting with "_") or full locale name or alias.
In addition to hard-coded locale recognition (especially for CJK),
locale values and associated encodings are configured in the compile-
time configuration file locales.cfg which especially lists locale names
that do not have an explicit encoding suffix. You can use these set‐
tings (known locale name or generic locale name suffix) even on legacy
systems without locale support to indicate the terminal environment
properly to mined. For encoding recognition from command-line parame‐
ters, mined provides three options:
· -EX or +EX with a single-letter encoding tag as listed
with the description of the -E options; further encoding
tags are configured in the compile-time configuration
file charmaps.cfg.
· -E=charmap or +E=charmap with a character encoding name
(as reported by the locale charmap command).
· -E.suffix or +E.suffix with a character encoding suffix
("codeset" of locale name).
· -E:flag or +E:flag with a 2-letter indication used by
mined to indicate the respective text encoding in the
Encoding flag.
In each of these options, -E specifies
text encoding while +E would specify terminal encoding to
be assumed.
The following table lists major encodings and generic locale suffix
values by which they are recognised; in addition (as mentioned above),
a large number of locale names without encoding suffix as found on var‐
ious systems in known to mined and will cause it to assume the corre‐
sponding terminal encoding.
Unicode: UTF-8
suffixes: .UTF-8 / .utf8
Traditional Chinese (Hongkong): Big5 with HKSCS
suffixes: .BIG5* / .Big5* / .big5* / _HK / _TW (_TW ambiguous,
following encoding overrides)
Simplified Chinese: GB18030 (includes GBK and GB2312)
suffixes: .GB* / .gb* / .EUC-CN / .euccn / _CN.EUC / _CN
Traditional Chinese (Taiwan): CNS (EUC-TW)
suffixes: .EUC-TW / .euctw / .eucTW / _TW.EUC
Japanese: JIS / EUC-JP
suffixes: .EUC-JP / .eucjp / .eucJP / .ujis / _JP.EUC / _JP /
.euc (.euc ambiguous, more specific string overrides)
Japanese: Shift-JIS
suffixes: .Shift_JIS / .shiftjis / .sjis / .SJIS
Korean Unified Hangul: UHC (includes EUC-KR)
suffixes: .UHC / .EUC-KR / .euckr / .eucKR / _KR.EUC / _KR
Korean: Johab
suffixes: .JOHAB
Vietnamese: VISCII
suffixes: .viscii
Vietnamese: TCVN
suffixes: .tcvn
Thai: TIS-620
suffixes: .tis* / .TIS* / _TH / .iso8859[-]11 / .ISO8859[-]11
Latin-9: ISO 8859-15
suffixes: @euro / .iso8859[-]15 / .ISO8859[-]15
Cyrillic: ISO 8859-5
suffixes: @cyrillic (unless preceded by uz_UZ which indicates
UTF-8)
Latin or other: ISO 8859 encodings
suffixes: .iso8859[-]N / .ISO8859[-]N (with number N)
Russian Cyrillic: KOI8-R
suffixes: .koi8r
Ukrainian Cyrillic: KOI8-U
suffixes: .koi8u
Tadjikistan Cyrillic: KOI8-T
suffixes: .koi8t
Russian, Ukrainian, Bjelorussian Cyrillic: KOI8-RU
suffixes: .koi
MacRoman:
suffixes: .roman
Windows Latin: CP1252
suffixes: .cp1252
Windows Cyrillic: CP1251
suffixes: .cp1251
PC Latin: CP850
suffixes: .cp850
Windows Hebrew: CP1255
suffixes: .cp1255
Georgian: Georgian-PS
suffixes: .georgianps
Kazachstan Cyrillic: PT154
suffixes: .pt154
Examples: To indicate that mined is running in a UTF-8 terminal (nor‐
mally auto-detected, included here for demonstration) and should assume
GB18030 text encoding by default, invoke either of:
LC_ALL=whatever.UTF-8 TEXTLANG=zh_CN.gbk mined
LC_CTYPE=whatever.UTF-8 TEXTLANG=chinese mined
LANG=whatever.UTF-8 mined -EG
LC_ALL=en_IN mined -E.gbk
mined +EU -E.EUC-CN
mined +EU -E=GB18030
mined +EU -E:GB
Selecting UTF-16 text mode: To tell mined to interpret a file (or make
a new file) in UTF-16 encoding, use the following command line options
(first two little endian, then big endian):
mined -E:61
mined -E=UTF-16LE
mined -E:16
mined -E=UTF-16BE
mined -E=UTF-16
Selecting ASCII terminal mode: To tell mined to assume that a terminal
cannot display anything but ASCII characters, use the command line
option +E:AS. Mined implicitly assumes this setting if the environment
variable TERM indicates a VT52 terminal.
PC terminals
Character encoding of PC terminals is an even greater mess than on Unix
systems. Mined provides heuristic best-guess assumptions about terminal
encoding, supporting both local invocation as well as remote login from
a PC (e.g. to a Unix machine).
The following assumptions are made based on environment variables or
command-line parameters:
encoding ("codepage")
environment
option
examples
CP850 (PC mapping of Latin-1 character set)
TERM=ansi, ansi-nt, pcansi*, hpansi*, interix* or TERM=cygwin
and CYGWIN contains "codepage:oem" or LC_*/LANG indicates
".CP850"
+EP
· Windows console (DOS prompt) window
· Windows console mode telnet (even if called from cygwin console,
sets TERM=ansi)
CP437 (IBM PC VGA encoding)
TERM=nansi*, ansi.*, opennt*, *-emx* or LC_*/LANG indicates
".CP437"
+Ep
· plain DOS
CP1252 (Windows ANSI extension of Latin-1)
TERM=cygwin (unless LC_*/LANG or CYGWIN indicates other encod‐
ing)
+EW
· cygwin console (emulation in Windows console window)
· cygwin telnet/rlogin called directly from Windows console window
(see note below for remote setting)
· cygwin mined called directly from Windows console window
· older Windows GUI telnet (sets TERM=ansi)
UTF-8
LC_*/LANG indicates ".UTF-8" or (for cygwin 1.7 beta) TERM=cyg‐
win and CYGWIN contains "codepage:utf8"
+U
· cygwin 1.7 console or application configured for UTF-8 mode
· Note: Windows console in UTF-8 mode provides extended
Unicode font support if you select "Lucida Console" True‐
Type font from its Properties menu.
other codepages
LC_*/LANG indicates codepage, e.g. ".CP1250" or ".CP858"
or triggered by DOS codepage information (djgpp version, see
note)
+E=CP1250 or other codepage, or respective shortcut
· cygwin 1.7 console or application configured for respective
codepage
Note: It is not unlikely that the assumption about the terminal encod‐
ing taken by mined does not match the actual terminal encoding (e.g.
mined cannot determine the encoding based on the ambiguous setting
TERM=ansi). Environment variables that indicate the character encoding
are unfortunately not maintained through telnet or remote login.
Explicitly setting TERM to a suitable value after remote login may help
but may not always work (e.g. pcansi is not a known terminal on SunOS).
Explicitly setting locale variables, e.g. LC_CTYPE, may indicate the
encoding to mined but may cause trouble otherwise; some systems like
SunOS are dogmatic about interpreting locale variables and strictly ask
corresponding locale data to be installed or they will flood you with
bogus error messages. Also not all encodings, esp. PC "codepages", are
known as a "locale charmap" on other systems.
In these cases, you can use the explicit +E option to force mined to
assume a specific terminal encoding; see the option values listed above
for the main DOS encodings.
Note: The encoding emulated by cygwin (as configured, or by default
typically CP1252 for cygwin 1.5, UTF-8 for cygwin 1.7) is not the
encoding natively applied by the Windows console window (by default
typically the DOS codepage CP850). This means that the effective
encoding may be different if you invoke the cygwin-compiled mined ver‐
sion and the djgpp-compiled mined version alternatingly; you may notice
this by a different range of characters that can be displayed when
opening the same file with the two mined versions.
Some Windows Latin characters are poorly displayed by the Windows con‐
sole in default configuration; cygwin 1.7 can display all characters
properly if the Windows console font is configured to "Lucida Console"
rather than "Raster Fonts".
In a cygwin console on a non-cygwin system (after remote login), mined
assumes ASCII as the terminal encoding by default unless properly indi‐
cated by environment variables.
Note: The following DOS codepages are supported; they are mainly pro‐
vided as terminal codepages, they do not appear in the Encoding menu.
However, if you need, you can ask mined to use them as either the
assumed terminal encoding (e.g. +E=CP1250 or +E:WE) or even text encod‐
ing (e.g. -E=CP1250 or -E:WE) using the names or shortcuts from the
list:
CP437
PC
DOS US
CP737
37
DOS Greek
CP775
75
DOS Baltic
CP850
PL
DOS Western European
CP852
52
DOS Central European
CP853
53
South European, Esperanto
CP855
55
DOS Cyrillic
CP857
57
DOS Turkish
CP858
58
DOS Western, CP850 with Euro symbol
CP860
60
DOS Portuguese
CP861
61
DOS Icelandic
CP862
62
DOS Hebrew
CP863
63
DOS French Canadian
CP864E
64
DOS Arabic (CP864E, variant of AR864 (superset of CP864))
CP865
65
DOS Nordic
CP866
66
DOS Russian
CP869
69
DOS Modern Greek
CP874
TI
Windows Thai, superset of ISO-8859-11/TIS-620
CP1125
25
DOS Ukraine
CP1250
WE
Windows Central European
CP1251
WC
Windows Cyrillic
CP1252
WL
Windows Western European
CP1253
WG
Windows Greek
CP1254
WT
Windows Turkish
CP1255
He
Windows Hebrew
CP1256
WA
Windows Arabic
CP1257
WB
Windows Baltic
Note: For the djgpp version of mined, even the font chosen for the Win‐
dows console window may affect the effective display encoding. Config‐
ure "Raster Fonts" (except of size "10 x 20"!), not "Lucida Console" in
order to make sure the effective visual codepage is the same as the one
selected with the respective DOS tools (e.g. chcp) and assumed by
mined.
Note: Mined (djgpp) tries to determine the DOS/Windows codepage using
the DOS API; this can only work if the codepage was properly configured
with DOS means (e.g. with CP858 using CHCP 858 or MODE CON CP
SELECT=858, maybe enabled by DEVICE=...\DISPLAY.SYS CON=(EGA,858) on
old DOS, or MODE CON CP PREP=((codepage list) ...\ega.cpi)); if only
the font is switched to a differently encoded one, there is no way to
detect this - in this case you can still use environment setting or the
+E option as described above to indicate the terminal encoding.
Note: To enable mouse operation in a Windows console window, deactivate
"QuickEdit mode" in the properties menu.
Note: If the DOS screen size is changed by a TSR (e.g. VGAMAX using a
hotkey), mined does not notice this immediately; in that case, mined
adjusts its screen display only after the next key is typed.
Note: Running mined (djgpp) in a dosemu session (DOS emulator on Linux)
works fine, even in an xterm-embedded session although not perfectly in
that case: ^S and ^Q are interpreted for flow control (thus ^S will
hold all output until ^Q is entered), and the mined option -Qa should
be used to tune menu borders right.
Terminal setup and configuration
The Mined runtime support library includes a configuration file Xde‐
faults.mined which lists settings that should be applied to the termi‐
nal for proper operation of several features as described throughout
this manual.
In some terminals, the cursor may not be well visible or not visible at
all if the cursor is on a character with reverse background (control
character, occurs e.g. in xterm) or highlighted background (invalid
character code, occurs e.g. in xterm and rxvt). See the X resource
parameters for "cursorColor" in the example configuration file Xde‐
faults.mined for remedy.
If mouse wheel movement moves more than expected, especially if it can‐
not move by single items in a menu, this is probably a configuration
issue with your mouse driver. You are probably running a Windows-based
X server which is (often by default) configured to generate multiple
mouse wheel events on each actual mouse wheel movement. Often not even
in the Control Panel mouse section, but only in a configuration menu of
mouse-specific setup software (e.g. "Browser Mouse Settings"), config‐
ure the scroll unit to 1.
Terminal interworking problems
With some terminals, problems are known due to missing terminal fea‐
tures or terminal bugs:
any terminal: menu border display
· If the borders of mined menus appear as letters rather than
graphic borders, the terminal can unexpectedly not handle VT100
graphics. Use the option -Qa to switch to ASCII borders, or
-fff to limit font assumptions.
In a UTF-8 terminal, mined uses Unicode Box Drawing characters
by default. If they don't display they are missing in the font
used by the terminal. Use the option -Qv to switch to VT100
graphics or -Qa to switch to ASCII graphics. If borders are vis‐
ible but without corners, use -Qs to switch to simple rectangu‐
lar borders.
any terminal: slow terminal feature auto-detection
· On a slow remote terminal connection, escape sequences from the
terminal (sent for function keys or requested terminal
responses) may get delayed and split up. Mined tries to handle
delayed parts of escape sequences graciously (→NEW→ improved
again); however, this is limited as the explicit ESC key shall
also be recognised.
If messages like "Late screen mode response - ..." (after
startup), "...awaiting slow terminal response" (esp. after
startup), "...awaiting slow key code sequence" or "...absorbing
delayed terminal..." occur, escape sequence detection may be
adjusted by setting the environment variable ESCDELAY to a value
of 2000 or 3000. (Delay during startup may apparently also be
caused by on-demand font loading of rxvt or mlterm, however,
mined applies special handling for this case.)
· If proper terminal detection fails for delay reasons, mined may
especially not be aware of the terminal encoding (and display
line markers as blocks). In this case, exiting and restarting
mined should resolve the issue.
xterm
· To enable proper Alt-letter command input (for opening and navi‐
gating menus), set the xterm resource metaSendsEscape to true
(or with older versions of xterm, set eightBitInput to false) in
your X configuration (usually $HOME/.Xdefaults or $HOME/.Xre‐
sources) as suggested in the example file Xdefaults.mined in the
Mined runtime support library.
· Although it is a waste of keyboard resources to have two indis‐
tinguishable sets of keypad keys, most terminals provide no
means of distinguish them towards the applications, at least not
by default. Especially for a text editor, it is highly desirable
to distinguish them in order to have a rich intuitive function
key mapping at disposition which mined tries to achieve.
Remapping keypad keys in a useful way is sensitive because it
may create incompatibilities with other programs that rely
strictly on installed terminfo information. Mined provides
remapping recommendations for shifted keypad keys (with Shift,
Control, Alt and combinations of them) in the configuration sam‐
ple file Xdefaults.mined in the Mined runtime support library.
Due to the compatibility limitations mentioned above, however,
the two Ins keys remain indistinguishable, and the two Del keys
are only distinguishable if the xterm configuration resource
*VT100*deleteIsDEL is set. Also, keypad and function key modifi‐
cation with the Alt is ensured with the xterm resource
*VT100*metaSendsEscape. Both resources are set to true in the
configuration sample file just mentioned.
These two resources can also be set dynamically with xterm.
Mined can be told to do so with the command line option +D.
(Unfortunately this handling cannot be enabled by default as it
cannot be undone because the previous state cannot be detected.)
· Mined determines the xterm version in order to apply certain
workarounds conditionally.
· If you run xterm in VT220 keyboard mode (using xterm option -kt
vt220 or setting the configuration resource *keyboardType:
vt220) you should make sure to also set the environment variable
TERM=vt220 (e.g. using the xterm option -tn vt220 or setting the
configuration resource *termName: vt220) so mined can properly
set up the keypad functions.
· If you run xterm with the resource modifyCursorKeys or modify‐
FunctionKeys set to value 1, mined will recognise the according
keyboard sequences with the environment variable setting
TERM=xterm-sco.
xterm on cygwin
· On cygwin, as on other systems, the script uterm is recommended
to invoke an xterm that is properly configured to run UTF-8, and
also to use a best choice of fonts for optimal Unicode coverage.
See README.cygwin for more detailed advice.
xterm legacy CJK width mode
· Mined auto-detects and supports xterm legacy CJK width compati‐
bility mode (xterm -cjk_width); character width and menu border
layout are properly adjusted, stylish menu borders (-QQ) and
fine-grained scroll bar display are disabled by default. (Note:
In this mode, combining characters could unexpectedly change the
width of a character by being substituted with its wide precom‐
posed form (e.g. 'a' combined with U+0300) - which an applica‐
tion can hardly handle; this bug was fixed in xterm 224 with a
patch contributed by the mined author.)
rxvt
· When starting mined in a fresh rxvt terminal, and maybe even
after starting your X server, some display (font?) initializa‐
tion may take extremely long. If this results in an error mes‐
sage, restart mined to ensure proper terminal properties auto-
detection.
· Rxvt does not distinguish between Shift-F1 and F11 / Shift-F2
and F12 / Ctrl-Shift-F1 and Ctrl-F11 / Ctrl-Shift-F2 and Ctrl-
F12, so that the F1 and F2 keys modified with Shift cannot be
recognised in rxvt by default. They can however be enabled with
the keysym definitions in the file Xdefaults.mined in the Mined
runtime support library.
· In rxvt, the two keypad Del keys (small keypad, numeric keypad)
are automatically distinguished from each other and invoke the
Delete character (small keypad) and Cut (numeric keypad) func‐
tions, respectively (Ctrl-/Shift-/Alt- alternatives are sup‐
ported as described in this manual). This works, however, only
if mined can recognise rxvt; it is generally a bad idea to set
TERM=xterm in rxvt, see also hint below.
· Also in rxvt, the two keypad Ins keys (small keypad left,
numeric keypad right) are distinguished. The left Ins key posi‐
tions the cursor left of the pasted region, the right Ins key
positions it right.
· By setting rxvt in the mode that enables distinction between the
two keypads, it can unfortunately not distinguish the right key‐
pad modified with Ctrl- anymore, so Ctrl-Home/End/Del cannot
work as desired.
· Ctrl-modified punctuation keys can be enabled by following the
configuration samples of the file Xdefaults.mined in the Mined
runtime support library.
Note: Ctrl-modified and shifted punctuation keys interfere with
ISO 14755 input mode of rxvt; if the following key is entered
twice, that mode is aborted and the modified punctuation key
becomes effective as an accent prefix in mined.
· To enable proper Alt-letter command input (for opening and navi‐
gating menus), set the rxvt resource meta8 to false in your X
configuration (usually $HOME/.Xdefaults or $HOME/.Xresources) as
suggested in the example file Xdefaults.mined in the Mined run‐
time support library.
· The recent rxvt-unicode release provides a CJK terminal emula‐
tion. CJK display is buggy for characters that rxvt thinks can‐
not be displayed, especially for GB18030 (LC_CTYPE=zh_CN.gb18030
rxvt) but also e.g. for JIS (LC_CTYPE=ja_JP.eucjp rxvt); single
bytes are then interpreted instead which amounts to an unpre‐
dictable screen width and cannot be correctly handled. (This
applies mainly to character codes that are not mapped to Unicode
but also to many that are mapped.)
Moreover, CJK width handling is inconsistent for many characters
in rxvt CJK mode (rxvt claims to adhere to the locale mechanism
in this respect but that's not the case here - character widths
are inconsistent with the locale, too).
Remedy: Don't use rxvt in CJK-encoded mode; mined CJK terminal
support is tailored to native CJK terminals (such as cxterm,
kterm, hanterm) where it works fine - if you use a UTF-8-capable
terminal, use it in UTF-8 mode! Mined can edit CJK-encoded files
well in a UTF-8-encoded terminal.
· In rxvt, Unicode characters that are Not Assigned are always
displayed as a single-width replacement character. This is not
consistent with xterm behaviour which would display them as a
double-width replacement if they are located within a double-
width Unicode range (which sounds reasonable). This would cause
display positioning inconsistencies. Mined has a workaround for
some of these cases (assuming that rxvt runs the most recent
Unicode width data version available; or actually the same as
mined assumes - handling of multiple auto-detected terminal Uni‐
code versions does not cover this special case).
· If the X windows servers has duplicate fonts installed under a
common name (e.g. if it comes with a 10x20 non-Unicode font and
you install a 10x20 Unicode font in addition), rxvt seems to use
the wrong (i.e., non-Unicode) version of the font and does not
find special characters like the default marker used in the
flags menus (this was observed since rxvt 7.5, rxvt 5.8 was
finding the proper font). Use the mined option -F to adapt mined
to limited font usage, or fix the X server installation. Or use
the script uterm to start rxvt-unicode. To start rxvt-unicode
from an xterm, use uterm -rx.
· Due to the scrollbar display workaround for hanterm (see above),
the scrollbar position may be shown as blank space instead of
coloured (only in rxvt CJK mode with Korean encoding and if you
explicitly set TERM=xterm which you shouldn't anyway in rxvt).
In this case, coloured scrollbar foreground can be enabled with
the environment variable MINEDSCROLLFG="44;36" or MINED‐
SCROLLFG="38;5;45".
· As a workaround for an xterm bug on cygwin, mined applies termi‐
nal size re-adjustment. This may confuse rxvt (being resized to
an unexpectedly large window) if it pretends to be xterm.
Remedy: in rxvt, make sure that the environment variable
TERM=rxvt (or rxvt-unicode); the according X resource
(Rxvt.termName: rxvt) is also listed in the file Xdefaults.mined
in the Mined runtime support library.
· Mined determines the rxvt version in order to use certain fea‐
tures conditionally.
· CJK-mode rxvt: rxvt has some character width bugs when running
in CJK encoding; e.g. when running rxvt in Big5 terminal encod‐
ing (locale zh_TW), U+FA18 is displayed with wrong screen width
while in older version U+FFED was display with wrong screen
width; when running rxvt in Shift-JIS terminal encoding, a num‐
ber of character width bugs occur. Mined does not implement
workarounds for those; in general UTF-8 terminal encoding is
advisable to be on the safe side.
urxvt
· This is rxvt-unicode as packaged for cygwin. Invoke it with a
proper locale environment variable set to enable UTF-8. See
also README.cygwin for more detailed hints.
mlterm
· Bidirectional display handling of mlterm is based on the final
display, not regarding any context (such as positioning control,
that's why mined implements a workaround for menu display on
mlterm). Since version 3.0.7, mlterm supports logical order
mouse positioning over right-to-left lines.
· For Shift selection, use the small keypad.
· Recent mlterm before version 3.1.3 has a problem with colour
control that may render text unreadable.
· In recent mlterm versions, Control-function keys cannot be used
in mined since they are captured as mlterm hotkeys. Use a Con‐
trol-V prefix as a workaround.
· (Not essential anymore with recent mlterm versions) The Mined
runtime support library includes a configuration file mlterm/key
which defines enhanced escape sequences for function keys and
other modified keys in order to enable the functionality
described in this manual. (It also enables the keypad on systems
lacking its configuration for mlterm.) It is essential to use
this configuration especially for the HOP key (keypad "5") which
is oppressed by mlterm by default, and also for Control-punctua‐
tion accent prefix functions, and some others.
· In old versions of mlterm, mouse wheel scroll navigation in
menus did not work seamlessly due to incorrect escape sequences.
· Do not use mlterm option -n ! It may produce display garbage on
unknown and other characters.
cxterm
· EUC-JP half-width characters (8EA1-8EDF) are not properly dis‐
played by cxterm in EUC-JP mode (cxterm -JIS, not available in
"classic" cxterm).
· Due to the scrollbar display workaround for hanterm (see above),
the scrollbar position may be shown as blank space instead of
coloured (only in Korean encoding mode which is probably rarely
used with cxterm anyway). In this case, coloured scrollbar
foreground can be enabled with the environment variable MINED‐
SCROLLFG="44;36" or MINEDSCROLLFG="38;5;45".
· Note: The configuration sample file Xefaults.mined in the Mined
runtime support library includes a section to fix some missing
keypad assignments, especially the HOP key (keypad "5") which is
ignored by cxterm by default, and the Home and End keys of the
numeric keypad.
kterm
· Auto-detection of kterm as a CJK terminal works if the environ‐
ment variable TERM indicates "kterm"; otherwise mined has to be
told that it runs in a CJK terminal and which encoding to use:
For kterm -km sjis, set LC_CTYPE=ja_JP.sjis (or invoke mined
+ES).
For kterm -km euc, set LC_CTYPE=ja_JP.eucjp (or invoke mined
+EJ).
· Note:The configuration sample file Xefaults.mined in the Mined
runtime support library includes a section to fix some missing
keypad assignments, especially the HOP key (keypad "5") which is
ignored by kterm by default, and the Home and End keys of both
keypads.
· Note: Mouse wheel scroll navigation in menus does not work seam‐
lessly in kterm because kterm sends incorrect escape sequences
on mouse wheel scrolling.
· Note: By default (i.e., without explicit -km option or corre‐
sponding *vt100.kanjiMode resource configured), kterm runs in
ISO 2022 mode (yes, it does indeed) which is not supported by
mined.
hanterm
· CJK display is buggy at the line beginning or after a Tab, often
only the second byte of the character code is displayed as an
ASCII character instead of displaying the complete CJK charac‐
ter.
· Character attributes in hanterm used to be all mapped to
reverse, so there was a workaround to enable a visible position
in the scrollbar which is displayed as blank space. The criteria
for this workaround to apply are: CJK terminal (detected or con‐
figured), TERM=xterm, Korean encoding (UHC or Johab) configured
with parameter or locale. Replaced to enable nicer colours in
scrollbar. To reactive workaround for older hanterm, set envi‐
ronment variable MINEDSCROLLFG="0".
KDE konsole
· Due to the lack of decent Unicode font support in the default
configuration of the KDE konsole terminal, menu appearance
options -QQ and -Qr should not be used; rounded borders are dis‐
abled by default.
· The Mined runtime support library includes a configuration file
konsole/xterm-modified.keytab which defines enhanced escape
sequences for function keys and other modified keys in order to
enable the functionality described in this manual. Unfortu‐
nately, the qt framework used by konsole inhibits the use of
some keys and many key combinations.
· It is especially irritating that konsole disregards the middle
keypad key ("5" in application mode) completely; so the mined
HOP function has to be invoked by alternative means.
As a remedy, the HOP function is also assigned to the "Menu" key
(next to the "Windows" key on PC keyboards) by the configuration
sample file konsole/xterm-modified.keytab; follow the installa‐
tion instruction in that file and select the keyboard type it
defines ("xterm with key modifiers") in konsole, "Settings" -
"Keyboard" menu.
Another remedy is to reassign the middle keypad key to the X key
symbol Menu (using xmodmap); the script kp5 in the Mined runtime
support library does this.
gnome-terminal
· The gnome-terminal uses right mouse click for its own terminal
menu. To open a mined menu, use Ctrl-right-mouse-click.
· The gnome-terminal does not support modified keys (e.g. shifted
keypad keys).
· The gnome-terminal captures a number of Alt-letter key combina‐
tions for its own menu access (which can however also be con‐
trolled with the mouse). To disable this unpleasant capturing,
so e.g. mined can open its own menus with Alt-letter, configure
gnome-terminal as follows:
Open menu "Edit" - "Keyboard Shortcuts..." and check "Disable
all menu access keys". Even then, however, F1 and Ctrl-F1 are
suppressed by this quirky terminal.
· Mined implicitly assumes its -f option (for limited font usage
with respect to graphic characters) when detecting gnome-termi‐
nal.
Mac OS X Terminal and others
· The Mac OS X Terminal app does not support mouse escape
sequences. Preferably, use xterm or iTerm 2.
· In iTerm 2, enable mouse reporting in the settings menu Prefer‐
ences - Profile - Terminal.
· If any Mac terminal (Terminal, xterm, iTerm 2) does not respond
to the ESC key, it is likely to be captured by Speech Recogni‐
tion. Diable Speech Recognition or try Ctrl-ESC.
Linux console
· Mined detects F11, F12, Shift-F1...Shift-F8 properly (handling
the shift of 2 applied by the Linux console to shifted function
key codes compared with other terminals); further modified func‐
tion keys are apparently not supported in the Linux console.
screen Screen, like luit (see below), is a middle layer between the
actual terminal and the user terminal environment. Unfortunately,
screen does not pass character width handling of its host terminal
transparently to the application but apparently it maintains cursor
position information with reference to the system-installed locale
data. Which, however, does not always reflect the terminal properties!
Yet mined detects the proper width properties of the host terminal (by
using pass-through escape sequences of "screen") but only if the envi‐
ronment variable is set to "screen" (the default of "screen").
Worse, however, screen apparently transforms cursor positioning com‐
mands from the application into relative cursor positioning towards the
host terminal, which results in grossly incorrect display positionining
if e.g. screen runs in a UTF-8 terminal but assumes an 8 bit terminal.
Also, it interprets certain UTF-8 continuation bytes as control charac‐
ters, so even using a workaround it is not possible to fix display for
all cases. Mined applies a workaround to fix text positioning and menu
display problems with screen. Another workaround fixes many cases of
UTF-8 character display but cannot fix all (since screen captures the
output of the 0x9C byte). It is recommended to invoke screen only with
properly configured locale environment variables to match the actual
terminal encoding.
mintty ("Cygwin Terminal") Mintty is a Windows-based (non-X) terminal
running with cygwin. Mined auto-detects mintty and adjusts certain
properties and features accordingly.
· Mined detects font changes that change the CJK ambiguous charac‐
ter width properties of the terminal when notified by mintty if
running in UTF-8 mode.
· For good coverage of Unicode characters, recommended fonts for
use with mintty are DejaVu Sans Mono, Lucida Console, Courier
New, Andale Mono, Everson Mono, SimSun. Discouraged are Lucida
Sans Typewriter, Letter Gothic, Courier, Monaco, and older MS
CJK fonts, at least for their lack of (proper) graphic charac‐
ters (for menu borders). Mined uses the glyph detection feature
of mintty (since 0.9.9) to configure a nice set of useful line
markers and menu graphics.
· If break interruption (Control-\ key) does not work on interna‐
tional keyboards (if AltGr is involved), use the special Con‐
trol-Break keyboard function instead.
· Note: For right-to-left text editing, the bidi feature of mintty
interferes with the scrollbar of mined; you may disable the
scrollbar with -o to reduce visual confusion. (Context-depen‐
dent scrollbar display is planned for a later version.)
· Note: With the command scripts wined or wined.bat, mined is
invoked in a separate Windows terminal session, using mintty if
available.
· Note: On some systems, mouse wheel scrolling does not work in
mintty if the mintty scrollbar is enabled. It can be disabled in
the mintty "Options..." menu, section "Window".
· Note: Mined temporarily disables mintty shortcut keys for Win‐
dows functions (like Alt-function keys, Alt-space, Alt-Enter) in
order to use them itself. To toggle mintty full-screen mode,
open the mintty menu with Shift-right mouse button, item
"Fullscreen".
(With mintty versions before 0.5.1, for proper usage of Unix-
like keyboards functions, the following settings are recom‐
mended: In Options - Keys, disable the Shortcuts "Window com‐
mands" and "Copy and paste". In Options - Text, disable "Show
bold as bright".)
Cygwin console
· The cygwin console terminal emulation does not support Shift-F1,
Shift-F2 (which cannot be distinguished from F11, F12), Shift-
F11, Shift-F12; Control or Alt modified function keys are sup‐
ported beginning cygwin 1.7.2.
· Mined detects UTF-8 mode of cygwin 1.7 console (by LC_*/LANG
setting or for cygwin 1.7 beta by CYGWIN containing "code‐
page:utf8").
Note: After rlogin from this console, UTF-8 indication has to be
ensured explicitly, e.g. by environment setting, or by mined
option +U.
· Note: Cygwin console in UTF-8 mode provides extended Unicode
font support if you select "Lucida Console" or another TrueType
font from its Properties menu.
· If the Windows program chcp.com is used within cygwin, and the
console window is set up to use "Raster Fonts", non-ASCII char‐
acters may be mangled.
· See also README.cygwin for more detailed hints on weird details
about the Windows console in different modes.
· See also PC terminals above.
Windows console window (DOS command prompt)
· The Windows console window is normally configured to run in
CP850 encoding or other legacy encodings (depending on localized
Windows configuration), it may also turn out to use CP437. Non-
displayable characters are replaced as usual. The configured
font may also affect the effective display character set.
· Note: The (djgpp-compiled) DOS version of mined automatically
adjusts to the selected console codepage (e.g. using the chcp
command), it is advisable to set up the console windows to use
"Raster Fonts" if this is used. With the cygwin-compiled ver‐
sion, on the other hand, using a TrueType font is more stable
with respect to character set problems.
· With the djgpp-compiled version apparently there is a Ctrl-C
problem on older Windows versions. Every first Ctrl-C will dis‐
play ^C on the screen at the current position without mined
noticing it, while every second Ctrl-C will be passed to mined.
This problem does not occur on Windows XP. It does occur on
Windows ME in a Windows console window. It does not occur with
the cygwin-compiled version.
· See also PC terminals above.
Poderosa
· This Windows terminal emulator can be used for UTF-8 editing.
To ensure proper function, do not use Terminal Type "kterm" or
Encoding "euc-jp" or "shift-jis"
· Mined auto-detection and terminal initialization can cause
Poderosa to display warning popups. To avoid them, Select Tools
- Options... - Terminal; for "Behavior in case of unexpected
chars", disable "Display a message box". If you get a notice
"Failed to decode characters by the current encoding utf-8.",
click "Do not display this message from next time".
· Poderosa does not provide mouse support for applications.
Terminator
· In Edit - Preferences, enable "Use alt key as meta key".
· Terminator does not provide mouse support for applications.
PuTTY
· This Windows terminal emulation for remote login provides vari‐
ous keyboard (esp. keypad and function key) assignment emula‐
tions. In SCO mode, shifted function keys are different from
those of xterm SCO function key emulation; both are supported.
Better Terminal and Terminal Emulator (Android)
· There are lots of deficiencies in screen control; mined adapts
to Better Terminal.
· There are lots of deficiencies in using a real keyboard.
· To use a real keyboard, in the terminal settings, map Control to
Left Alt key.
luit
· The locale support add-on for text terminals luit which applies
encoding transformations (e.g. with LC_ALL=zh_CN.gb18030) often
maps characters incorrectly, including using the wrong cell
width.
DECterm
· Mined cannot disable flow control option (terminal using ^S and
^Q characters) despite its handling of the TTSYNC and HOSTSYNC
terminal driver options. To make them usable, DECterm needs to
be configured manually: Options menu - Keyboard... - disable
Ctrl-Q, Ctrl-S = Hold; then Options - Save Options. A DECterm
window should be started with: CREATE /TERMINAL /DETACH
· On a remote DECterm, numeric keypad and function keys may not
work properly without additional X configuration (xmodmap). Also
the AltGr key does not work, making some characters unreachable
on international keyboards.
· For VT100 graphics characters (used for menu borders), the
DECtech fonts (X fonts with -DEC-DECtech encoding) need to be
installed on the X server. If the Cygwin/X server is used, the
font-bitstream-dpi* packages should be installed to this aim.
dtterm
· With the SCO default font, dtterm does not display non-ASCII
characters and even worse, they corrupt further display. Mined
does not, however, set its screen encoding assumption to ASCII
as dtterm behaves properly with all other fonts (e.g. 10x20,
lucidasanstypewriter, courier).
· Home/End, PgUp/PgDn, and HOP keys need to be used with Shift.
SCO Caldera Linux (konsole and xterm)
· Window size change signals don't seem to be supported.
Haiku Terminal For a number of deficiencies of the Haiku Terminal
application, it is preferable to use xterm instead. Most notable are
display problems with the VT Gothic font; use DejaVu Sans Mono instead.
· No wide characters and combining characters.
· No Alt-letter escape sequences.
· No modified function and cursor keys.
· Ignorance of middle keypad key.
· Cursor visibility problems (cursor colour vs. reverse mode).
· Wrong Control-space key (sends Control-C).
· No mouse controls for wheel scrolling.
· Unconforming mouse mode handling.
Work-around support to enable 8-bit character set on weird terminals
There exist some exceptionally weird 7 bit terminals that have an
alternative character set containing composed characters which can be
displayed simultaneously with the default character set. For those
there is optional output translation which embeds non-ASCII characters
into the respective code switching sequences. To enable output charac‐
ter transformation, set the environment variable MINEDOUT to contain
the upper half (with respect to an 8 bit character set) of the transla‐
tion table into the terminal's alternate character set. (Character set
switching will be done as specified in the termcap (as/ae) or terminfo
(smacs/rmacs) entry.) An example setting of MINEDOUT is included in
the environment sample file profile.mined in the Mined runtime support
library for Siemens 9780x terminals.
Concerning some especially stupid terminal drivers
There used to be terminal drivers which make use of the soft handshake
mechanism by exchange of ^S and ^Q characters but yet pass them through
to application programs which is quite stupid. If it is necessary to
ignore such hazardous ^S and ^Q keys, the environment variable NoCtrlSQ
or NoControlSQ must be set. Mined will then not disable the tty chan‐
nel soft handshake setting either.
Keyboard mapping / Input method pre-selection
With the environment variable MINEDKEYMAP the active or standby mapping
or both can be preselected. The value is a two-letter script tag to set
the active mapping, or it is prepended with "-" to set the standby map‐
ping, or a combination.
Example: export MINEDKEYMAP=-gr will set Greek keyboard mapping
standby. export MINEDKEYMAP=py-rs will set Pinyin input method active
and Radical/Stroke input method standby.
The respective tags attached to the keyboard mappings can be looked up
in the Input Method flag menu; the HOP function toggles between display
of the full input method name and its tag.
Smart Quotes style configuration
Smart quotes style can also be preselected with the environment vari‐
able MINEDQUOTES which should then contain the opening/closing quote
pair or just the opening quote mark (double or single quotes).
Example: export MINEDQUOTES="�" sets these �Danish� quotes and corre‐
sponding single smart quotes. export MINEDQUOTES="��" sets these
�Finnish� quotes and corresponding single smart quotes.
The value of the MINEDQUOTES variable must be encoded in UTF-8.
Han info configuration
With the environment variable MINEDHANINFO, the information shown for
Han characters can be preselected. If the variable is defined, Han
info mode is enabled. It may contain letters to select description,
pronunciation information, and display mode to be used:
M show Mandarin pronunciation
C show Cantonese pronunciation
J show Japanese pronunciation
S show Sino-Japanese pronunciation
H show Hangul pronunciation
K show Korean pronunciation
V show Vietnamese pronunciation
P show Hanyu Pinlu pronunciation
Y show Hanyu Pinyin pronunciation
X show XHC Hanyu Pinyin pronunciation
T show Tang pronunciation
D show character description
F display full information (in popup-menu form); without F, the
information will be shown on the status line where it is subject
to truncation
Common paste buffer configuration
The paste buffers, used for cut/copy/paste operations, as well as the
inter-window paste buffer, are located in a temporary directory, using
system conventions by default. To maintain the inter-window paste
functionality even remotely, mined uses the environement variables
MINEDTMP and MINEDUSER which, in combination, point to a user-defined
temporary directory and file name pattern to be used for buffer files:
· Set MINEDTMP to refer to a common mounted network direc‐
tory on all machines which means that the value of
$MINEDTMP may have to be different to reflect different
mount points across the network. (On VMS, use
SYS$MINEDTMP).
· Set MINEDUSER to the same name within the network even if
using different user name accounts.
For details, see also the FILES section below.
Keypad configuration
Some X configuration may have to be applied to enable keyboard input
features as used by mined:
· Alt key modifier for quicker entry of "ESC" commands.
· Assignment of the HOP function to the middle keypad key
("5").
· Assignment of the HOP function to other keys (especially
for convenience on laptops which do not have the numeric
keypad), e.g. the Pause or Scroll Lock key.
· Distinguish "Home" and "End" keys of the two keypads in
order to make use of this redundancy of typical keyboard
layout (which is actually a waste of physical resources,
causing unnecessary wrist strain because it increase the
distance to be moved over for reaching to the mouse).
· Enable control and shift modifiers for keypad and func‐
tion keys.
· Enable control and shift modifiers for digit keys (for
use as accent prefix).
· Enable control modifier for punctuation keys (for use as
accent prefix).
See the example file Xdefaults.mined in the Mined runtime support
library for suggestions.
Printing configuration
Mined uses the script uprint from the Mined runtime support library to
print the current contents of the text being edited in any selected
encoding (unless the environment variable MINEDPRINT is set to direct
mined to use a different print command).
If the support library is not installed in one of its standard loca‐
tions (system-dependent), it should be made available in the usual com‐
mand search path. The script uses either paps or uniprint for actual
formatting (print preprocessing). Under Windows (cygwin/stand-
alone/djgpp versions), mined also considers printing with notepad /p.
paps is available at http://paps.sourceforge.net/ and uses the Pango
layout engine for formatting. uniprint is part of the yudit distribu‐
tion; if you don't have it installed on your system, there is another
script makeprint in the support library which can be used to download
and build the needed uniprint program. The mined print script (uprint)
prefers paps if it is available as it has more capabilities for print‐
ing a wide range of Unicode characters, and it does right-to-left for‐
matting.
The font to be used with uprint can be configured with the environment
variables FONT, FONTPATH, FONTSIZE. Also the printer can be configured
as usual with PRINTER. In addition, uprint checks an environment vari‐
able LPR for an alternative for the system printing command (lpr/lp) if
that is needed.
Note: If printing with uprint fails for some reason, mined tries to
print with either the print command configured in the environment vari‐
able LPR as a fallback, or with lp/lpr as a last resort. Working char‐
acter encoding support cannot be expected in this case, however.
See Environment variables to configure Printing for further details.
Display layout
Some of the special indication characters (that substitute non-dis‐
playable contents) and some of the colours used by mined for special
indications and interactive elements may be configured to the user's
preference.
Note: For the configurable character indications, two environment vari‐
ables exist each, to configure an 8 bit value (Latin-1 encoded) and to
configure a Unicode value (UTF-8 encoded). The UTF-8 encoded values
(e.g. MINEDUTFRET) take precedence in a UTF-8 terminal. In an 8 bit
terminal, or if the respective UTF-8 variable is not configured, the
Latin-1 encoded value applies. See the example script profile.mined in
the Mined runtime support library for more details and for a number of
suggestions of suitable values. Mined does not apply any default non-
Latin-1 indications in order to avoid display problems with fonts that
do not support them. Depending on your visual preference, there are a
number of suitable Unicode characters for use as indications especially
in the Unicode ranges of Arrows, Geometric Shapes and Symbols
(U+2190-U+2BFF).
Note: For the Latin-1 encoded configured indication markers (variables
MINEDRET etc, not MINEDUTFRET etc), if the configured character is in
the small letters range (actually
'`'...DEL) the alternate character set is used for display. This
works also in a UTF-8 terminal, provided that the corresponding
UTF-8-encoded indication configuration variable is not set, e.g. MINE‐
DRET=j MINEDUTFRET= (or not defined) would indicate line-ends by dis‐
playing a graphic lower right corner, MINEDTAB='`' MINEDUTFTAB= (or not
defined) would indicate Tab characters with VT100 graphics lozenge
rhombs.
Note: For the UTF-8-encoded configured indication markers (variables
MINEDUTFRET etc), if the marker is a double-width character, a replace‐
ment will be displayed instead.
Note: Mined reduces its assumptions about available graphic and special
characters for display purposes with the options -f or -F. The -F
option also suppresses the interpretation of the MINEDUTF* environment
variables.
Line ends
Line ends are usually marked by a "�" double left angle character.
This visual indication can be changed with the environment variable
MINEDRET (8 bit terminals) or MINEDUTFRET (UTF-8 terminals). The
default or configured marker is used as an indicator at the end of
every text line on screen (so you can see how many blank spaces there
are).
Multi-character markers: If a second character is configured, it is
used to fill the rest of the screen line, a third configured character
would terminate the indication at the end of the screen line. ("���" is
a nice setting for people who used to work at Siemens terminals.) Pat‐
tern: MINEDRET=123 # line end displays as 122222223 Suggestion for a
nice line end on UTF-8 mode terminals (check if character is included
in your font, however!): MINEDUTFRET=⏎ # U+23CE
The indication of DOS line ends (CRLF) and Mac line ends (CR) may be
configured with the variables MINEDDOSRET or MINEDUTFDOSRET, and MINED‐
MACRET or MINEDUTFMACRET, respectively. They are also distinguished by
different colours.
Paragraph ends
With the option -p, mined displays distinct indicators for line ends
and paragraph ends. A paragraph is defined to continue while lines end
with white space (space or Tab character). The default paragraph
marker is "�" and is also used to indicate a line ending with a Unicode
Paragraph Separator. It can be changed with the environment variable
MINEDPARA or MINEDUTFPARA.
Tab characters
Tab characters are usually indicated by a sequence of '�' (middle dot)
characters. This can be changed with the environment variable MINEDTAB
(8 bit terminal) or MINEDUTFTAB (UTF-8 terminals).
Multi-character markers: If two characters are configured, the second
is used to mark the middle of the Tab span. If three characters are
configured, the first and last are used to mark the beginning and end
of the Tab span. Pattern: MINEDTAB=123 # Tab displays as 12222223
MINEDTAB=12 # Tab displays as 11112111
Long lines
Lines which are too long for the screen are usually indicated by a '�'
double right angle (guillemot) character. If the current position is
behind the screen margin, the line is shifted out left which is indi‐
cated by a '�' double left angle. These markers can be changed with
the environment variable MINEDSHIFT or MINEDUTFSHIFT. The first charac‐
ter is used to indicate a line continued to the left of the screen, the
second character is used to indicate a line continued to the right of
the screen.
Unicode characters
For a description of special display indications in UTF-8 text editing
mode see "Unicode display" above. The indication and highlighting mode
of a non-displayable Unicode character (typically a UTF-8 character in
a Latin-1 terminal), as well as the highlighting mode (colour) of the
indication of illegal UTF-8 sequences, can be configured with the vari‐
able MINEDUNI.
Display mode of indicators
It is recommended to display these indicator characters in a dim dis‐
play mode to prevent distraction from the text contents. The default is
a red colour which is a moderate dark red in xterm. The display mode
can be used by placing the code part of an ANSI display control
sequence in the environment variable MINEDDIM. E.g., MINEDDIM=31 would
select the default mode, red foreground; in xterm only, MINED‐
DIM="38;5;83;38;5;245" gives a moderate gray in either 88 or 256 color
mode; in rxvt only, MINEDDIM="38;5;83" gives a moderate gray.
MINEDDIM can also be set to an empty value or to an integer percentage
value (e.g. MINEDIM="50%") to have mined apply dim colour to the indi‐
cations; the colour value is computed from the current foreground and
background colours (works in xterm, or mintty from version 404). The
ANSI colour 7 (white) is temporarily redefined for this purpose and
restored when mined exits.
Display mode of menu borders
The display colour of menu borders and menu headers can be configured
with the environment variable MINEDBORDER. Suitable values are "35"
(magenta), "34" (blue) and "31" (default).
Status line highlighting
Highlighted parts of status line messages (e.g. initial letters for
help selection after F1) can be configured with the environment vari‐
able MINEDEMPH, using foreground ANSI modes. The default is "31"
(effectively red background).
Scrollbar colour
The foreground and background colours of the scrollbar can be config‐
ured with MINEDSCROLLFG and MINEDSCROLLBG, respectively, using ANSI
modes; if only the background is configured, the foreground is the
reverse of it. In general, to support fine-grained scrollbar display in
UTF-8 terminals, the foreground and background colour settings should
be the reverse of each other. The default for the background is
"46;34;48;5;45" if use of 256 colour mode is enabled, or "46;34" if it
is disabled. The default for the foreground is "", meaning that the
reverse background is used, with a workaround for hanterm (see above).
Menu colour and border style
The highlighting background colour of the selected menu item can be
configured with MINEDSEL, using reverse ANSI modes (i.e. using fore‐
ground parameters for the background) and MINEDSELFG for the fore‐
ground, using reverse ANSI modes. The default values are MINED‐
SELFG="43" and MINEDSEL="34", giving yellow on blue. If selected menu
items appear too dark (which mined tries to avoid, depending on the
terminal), try one of the workarounds MINEDSEL="34;1" or MINED‐
SELFG="43;1".
Menu border styles can be selected with the option -Q. For a nice
selection bar that extends from left to right menu border, the setting
-QQ is recommended (this is the default unless the terminal is assumed
not to provide sufficient font configuration for this option; it
depends on certain graphic Unicode characters being included in the
terminal font and can be disabled with -Qq).
Combining character display
The highlighting background colour of combining characters displayed in
separated mode can be configured with MINEDCOMBINING, using ANSI back‐
ground modes. The default value is MINEDCOMBINING=46, to change colour
e.g. to yellow background, use MINEDCOMBINING=43.
Interactive Help access
Mined looks for its help file in a number of typical directories for
installation of the Mined runtime support library. If it is placed in
a non-standard location, the environment variable MINEDDIR should point
to the directory. (Mined also tries to find the help file in the
directory where it was started from; this is especially useful for the
DOS/Windows version.)
Mined compile-time configuration
Script highlighting
The the mined distribution contains a file src/colours.cfg; it contains
entries with the script name (as listed in the Unicode data file
Scripts.txt), blank space, and a colour index into the xterm 256-colour
mode. (To make good use of 256 colour mode, the terminal program should
be compiled with 256 colour support enabled. Configure xterm with con‐
figure --enable-256-color .)
Edit colours.cfg before building mined to adapt coloured script display
to your preferences.
Encodings and Encoding menu
The mined distribution contains a file src/charmaps.cfg which defines
the character encodings that mined knows and how they are presented in
the Encoding menu, together with flags for indication in the Encoding
flag and tags for use with the -E and +E options (and the MINEDDETECT
environment variable).
The configuration file allows the definition of submenus in the Encod‐
ing menu.
Each character encoding entry charmap-name must correspond to an exist‐
ing character mapping file charmaps/charmap-name.map. Additional char‐
acter mappings can be generated with the script mkchrmap.
Encodings recognised by locale names
The mined distribution contains a file src/locales.cfg which maps
locale names to associated character encodings. While this list con‐
tains mainly locale names without explicit encoding suffix, mined also
checks generic locale name suffix values and assumes the corresponding
terminal encoding. Thus the given names or suffixes can be used even
on legacy systems without locale support to indicate the terminal envi‐
ronment and preferred text encoding properly to mined.
Keyboard mapping (Input method)
The mined distribution contains a file src/keymaps.cfg and a script
mkkbmap; go into the src directory and use the script to generate addi‐
tional keyboard mappings: The parameter to the mkkbmap script can be
one of
path.../name.mim
a keyboard mapping file of the m17n-db multilingualiza‐
tion package
path.../name.kmap
a keyboard mapping file of the yudit text editor
path.../name.vim
a keyboard mapping file of the vim text editor
path.../name.cit
an input method mapping file of the cxterm terminal,
binary form; only works if the cxterm binary/text conver‐
sion utility cit2tit is accessible
path.../name.tit
an input method mapping file of the cxterm terminal, text
form; only works if the character set conversion utility
iconv is accessible and works on the mapping file
path.../name.utf
an input method mapping file of the cxterm terminal,
already converted to UTF-8 encoding (e.g. with iconv)
Cangjie [ < HKSCS Changjie table file name > ]
with this tag, a keyboard mapping for the Cangjie input
method will be generated, taking information from the
Unihan database (unicode.org);
with a second parameter, a Big5-encoded table of HKSCS
Changjie input codes will be merged in, the parameter is
either the file name or a + sign which is implicitly
expanded to the relative path name
etc/charmaps/hkscs/hkscs-2004-cj.txt; the HKSCS input
codes file should be taken from http://info.gov.hk/digi‐
tal21/eng/hkscs/
MainlandTelegraph , TaiwanTelegraph
with one of these tags, a keyboard mapping will be gener‐
ated using one of these telegraph codes as an input
method, taking information from the Unihan database (uni‐
code.org)
Cantonese , HanyuPinlu , Mandarin , Tang
with one of these tags, a keyboard mapping will be gener‐
ated using the according Chinese pronunciation as an
input method, taking information from the Unihan database
(unicode.org)
JapaneseKun , JapaneseOn
with one of these tags, a keyboard mapping will be gener‐
ated using Japanese or Sino-Japanese pronunciation as an
input method, taking information from the Unihan database
(unicode.org)
Korean , Vietnamese
with one of these tags, a keyboard mapping will be gener‐
ated using Korean or Vietnamese pronunciation as an input
method, taking information from the Unihan database (uni‐
code.org)
VIQR , VNI , Vtelex
with one of these tags, a keyboard mapping will be gener‐
ated for the respective Vietnamese input methods, taking
character information from the Unicode database (uni‐
code.org)
script tag
for many scripts listed in the UnicodeData.txt database,
character names listed there can build a useful keyboard
mapping; mkkbmap will then generate an according keyboard
mapping file, e.g. for Bopomofo
Each successful generation of a mapping table adds an entry to the con‐
figuration file keymaps.cfg; the entry is however initially disabled as
it usually needs manual adjustment: edit the configuration file; enable
the new entry by removing the leading '#' character, check the first
element which will be the name of the mapping to appear in the Input
Method menu, check the last element of the entry which is a two-letter
shortcut and must be unique for all mappings, then move the entry to
the position where you want it to appear in the menu. You can also
group mappings by adding "-" lines in this configuration file.
For the Unicode data version used for included keyboard mappings, see
the mined change log.
For the keyboard mappings generated from Unihan data, characters are
sorted according to the priorities of their Unicode ranges (assigning
lower priority to "Supplement" and "Extension" and "Compatibility"
ranges). So for some input mnemos, the "pick list" for the Cangjie
input method is displayed more in order of relevance.
For keyboard mappings for CJK encodings, mkkbmap will add appropriate
punctuation mapping entries for Chinese, Japanese, Korean, respec‐
tively, in addition to the entries derived from the respective data
source.
ENVIRONMENT VARIABLES
Environment variables for configuration of mined are listed in the
script file profile.mined in the Mined runtime support library together
with explanations and suggested values.
Further variables used by mined in the usual meaning are:
HOME
USER
SHELL
MINEDOPT
LC_ALL, LC_CTYPE, LANG
CYGWIN
TMPDIR
TMP
TEMP (MSDOS)
SYS$SCRATCH (VMS)
TERM
Terminal type to be assumed.
ESCDELAY
Delay after an ESCAPE character that mined waits for recognition
of a function key control sequence. Default is 450 ms.
MAPDELAY (non-standard)
Similar delay that mined applies to wait for subsequent input
characters when applying keyboard mapping for an input method.
Default is 900 ms.
LINES, COLUMNS (MSDOS ANSI mode only)
Line / column count of terminal to be assumed.
windir
Used to determine if it runs under MS Windows and set some
defaults (screen output delay) accordingly.
Environment variables to configure Printing
MINEDPRINT
Print command to use instead of uprint; the value must contain
an embedded "%s" which is replaced with the file name.
FONT
Name of a font file, e.g. LucidaBrightRegular or bodoni.ttf for
use with uprint/uniprint (the file must reside in the configured
font path), or name of a font as specified with fontconfig (in
$HOME/.fonts.conf or /etc/fonts/fonts.conf) for use with
uprint/paps.
FONTPATH
Directory search path (separate directory names with ":") for
use with uprint/uniprint which uses Truetype fonts.
FONTSIZE
Font size to be used with uprint (paps or uniprint).
LPR
Print spooling command to be used by uprint (or mined itself if
uprint does not work) instead of the system-specific print
spooling command (e.g. lpr).
PRINTER
Name of printer to spool to.
FILES
Unix
$MINEDDIR
directory in which the Mined runtime support library is
installed, including the help file mined.hlp and the printing
script uprint
mined.hlp
help file for interactive hints (F1 commands); mined looks for
the file in $MINEDDIR/help, $0, and a number of other typical
directories where program support files are installed on various
systems
$MINEDTMP
directory for auxiliary files, first attempt Using this variable
and $MINEDUSER (see below), you can establish copy and paste
among machines that share network directories but are normally
configured to use separate (usually local) temporary directo‐
ries.
$TMPDIR
directory for auxiliary files, next attempt
$TMP directory for auxiliary files, next attempt
$TEMP directory for auxiliary files, next attempt
/usr/tmp
directory for auxiliary files, next attempt
/tmp directory for auxiliary files, next attempt
Note: $MINEDUSER
user name assumed instead of $USER for building auxiliary file
names; using this, common copy-and-paste buffers can be used on
a network file system from different machines where the user
possibly has different user names
$HOME/.fonts.conf
fonts configuration file for use with uprint/paps; for descrip‐
tion, see http://fontconfig.org/fontconfig-user.html or man
fonts.conf
minedbuf.< USER >.< PID >.< NN >
temporary file for paste buffer; USER is either $MINEDUSER or
$USER
minedbuf.< USER >
file for inter-window paste buffer; USER is either $MINEDUSER or
$USER; see descriptions of $MINEDTMP and $MINEDUSER above for
how to set up a common inter-window paste buffer in a heteroge‐
neous network
minedpanic.< USER >.< PID >
panic file to rescue text in case of crash or external signal
caught
VMS
SYS$MINEDTMP:$MINED$user_BUF.pid_nn
paste buffer
SYS$MINEDTMP:$MINEDBUF$user
inter-window paste buffer
SYS$SCRATCH:$MINEDRECOVER$user$pid
panic file
SYS$SCRATCH:$MINEDPRINT$user$pid$n.lis
print spool file
MINED$HELP
help file (may be configured as a logical name)
If SYS$MINEDTMP is not available,
SYS$SCRATCH is used instead. If SYS$SCRATCH is not available,
SYS$LOGIN is used instead.
MSDOS / Windows
%MINEDDIR%\help\mined.hlp
help file, first attempt (to find it)
mined.hlp (in mined program directory)
help file, next attempt
%MINEDTMP%\minedbuf.nn
paste buffer
%MINEDTMP%\minedbuf
inter-window paste buffer
%MINEDTMP%\minedbuf.%MINEDUSER%
inter-window paste buffer, as configured to use the same file as
other mined versions in a heterogeneous network; note, however,
that %MINEDUSER% will be shortened to 3 characters in pure DOS
%MINEDTMP%\mined-pa.nic
panic file
If %MINEDTMP% is not available,
%TEMP% or %TMP% or \ are used.
DIAGNOSTICS
In all cases where it is considered sensible, the appropriate message
of a system error occurred is displayed (instead of printing numerical
hieroglyphs or indistinguished commonplace messages as many other UNIX
tools do).
BUGS
In an extremely narrow terminal window (less than 8 characters), if
lines are shifted out of the display, moving the cursor around may
cause positioning errors and display garbage.
(Unix:) Mined cannot edit a pipe or device file and hangs if you try to
do so. (But it can insert from, or write to, a pipe.)
This restriction does not refer to editing from standard input in a
piped command like cmd | mined which works of course.
(MSDOS, Windows:) With non-cygwin versions (djgpp), piped editing from
standard input does not work for unknown reason.
(Windows:) Non-cygwin versions (djgpp) do not work in xterm, rxvt, or
mintty.
AUTHOR AND ACKNOWLEDGEMENTS
Long ago, the initial version of mined was written for the Minix educa‐
tional operating system by Michiel Huisjes. It was adapted to Unix by
Achim M�ller who added termcap support. Mined was later debugged,
partly rewritten and enhanced and is now maintained by Thomas Wolff.
Please send comments, suggestions, bug reports to mined@towo.net.
Mailing list
Mined is also hosted as a sourceforge project (sf.net/projects/mined)
where a mailing list is available. To subscribe for information about
updates, or discussion, error reports, and feature requests, or to send
a mail, please go to the Mined mailing list page.
Acknowledgements
· Thanks to Nadim Shaikli < shaikli @ yahoo.com > for dis‐
cussion of right-to-left issues and interworking with
mlterm.
· Thanks to Mike Fabian < mfabian @ suse.de > for making
the RPM package included in the SuSE distribution.
· Thanks to Ziying Sherwin < sherwin @ nlm.nih.gov > and R.
P. Channing Rodgers < rodgers @ nlm.nih.gov > for sugges‐
tions and information about CJK input method support and
multiple choice handling (pick lists).
· Thanks to Tobias Ernst < tobias_ernst @ eml.cc > for pro‐
viding a Mac OS X makefile and suggestion and information
to implement Emacs command mode.
· Thanks to 吴咏炜 (Wu Yongwei) < yongwei
@ eastday.com > for suggestions and information about
Pinyin input methods, for discussion about keyboard map‐
pings for CJK punctuation, and for further maintaining
the Pinyin input method.
· Thanks to Ramakrishnan Muthukrishnan < rkrishnan @
debian.org > for making the Debian package.
· Thanks to Thierry Thomas < thierry @ FreeBSD.org > for
making the FreeBSD package.
· Thanks to Tobias Nygren < tnn @ NetBSD.org > for making
the NetBSD package.
· Thanks to Jim Breen for suggesting better overview of
input methods and more language-specific advice for non-
techy persons which led to the new chapter on Language
support.
mined 2013.23 August 2013 mined(1)