About FTE
fte
Version 0.44
(c) Copyright 1995,1996 Marko Macek
The latest version can be always downloaded from:
http://ixtas.fri.uni-lj.si/~markom/fte
Please send comments/suggestions/bug reports to:
Marko.Macek@snet.fri.uni-lj.si or mark@hermes.si
See file HISTORY for recent changes.
See file TODO for possible future additions.
See file README for last minute notes.
Installation
This section covers installation and configuration of editor.
OS/2
The following files are included in the archive:
- README
- Release notes, read first!
- fte.exe
- Text-mode executable
- ftepm.exe
- Presentation Manager executable
- fte-def.cnf
- Default compiled configuration file.
- fte.inf, fte.ipf, fte.html, fte.txt
- This file, in various formats.
- config\*.fte
- Configuration files in source form.
- clipserv.exe
- Clipboard server (required for PM clipboard support in text-mode version).
- cliputil.exe
- Utility to copy/paste to/from clipboard from command line.
- HISTORY
- Revision history.
- TODO
- Todo list.
- file_id.diz
- Program description for BBS upload.
The default configuration files are precompiled into
fte-def.cnf. This file should be copied to fte.cnf
for text-mode version, and to ftepm.cnf for PM version. Or,
you may want to compile your own configuration from source using
cfte configuration file compiler.
For minimal installation of the text mode version, only
fte.exe and fte.cnf are required. For PM clipboard
support clipserv.EXE is needed and must be running whenever
you wish to use PM clipboard from FTE.
To install PM version, ftepm.exe and ftepm.cnf
are needed.
To recompile source files, cfte.exe and
config\*.fte files are needed.
Place executable files somewhere on your PATH. Compiled
configuration files should be located in the same directory as
executable and have the same basename with extension .CNF.
Unix
The following files are included in the archive:
- README
- Readme file.
- fte
- Linux console-only executable
- Xfte
- X11 Xlib executable.
- fte-def.cnf
- Default compiled configuration file
- fte.html
- Reference manual
- config\*.fte
- Configuration files in source form.
- HISTORY
- History of changes.
- TODO
- Todo list.
- file_id.diz
- Program description for BBS upload.
- fte-0.38.lsm
- LSM entry for FTE.
The default configuration files are precompiled into
fte-def.cnf. This file should be copied to ~/.fterc
to be automatically loaded by FTE. You may want to compile your own
configuration from source using cfte configuration file
compiler.
Suggested installation directories:
/usr/local/bin/fte
/usr/local/bin/Xfte
/usr/local/bin/cfte
/usr/local/lib/fte/etc/*.fte
/usr/local/lib/fte/lib/fte.html
/usr/local/lib/fte/lib/TODO
/usr/local/lib/fte/lib/HISTORY
/usr/local/lib/fte/lib/README
Execution
The FTE command line syntax is:
fte [[options] [files] ...]
Options:
- -!
- Ignore any external configuration file and use internal configuration.
- -c[<file>]
- Use specified configuration file (compiled). If no argument, use internal configuration.
- -l<line>[,<column>]
- Go to line (and column) in next file on command line
- -m<MODE>
- Set mode for next files to <MODE>
- -m
- Reset to default mode
- -d[<.dsk>]
- Load/save desktop from file <.dsk>. If no argument, disable desktop load/save.
- -h[<.his>]
- Load/save history from file <.his>. If no argument, disable history load/save.
- -T<tags>
- Load tags file 'tags'.
- -t<tag>
- Lookup tag 'tag' and display file containing it.
- --
- The rest of the arguments are not options, but filenames.
- -+
- The next argument is not an option even if starting with a '-'.
There should not be any delimiter between option and it's arguments.
Examples:
- fte -mBIN fte.exe
- load fte.exe in BIN mode
- fte -#100,30 win.c
- go to (100,30) in win.c
- fte window.cpp
- load file window.cpp
- fte -mBIN fte.exe -m fte.cpp
- load fte.exe in binary mode, window.cpp in default mode (C/C++)
- fte -mBIN -+ -bla-
- load file -bla- in BIN mode
- fte -- -1 -2 -3 -4 -5 -6
- .load files -1, -2, -3, -4, -5, -6
Under OS/2 default history and desktop file names are
FTE.DSK and FTE.HIS respectively. Under Unix they
are named .fte-desktop and .fte-history. The global
desktop and history files will be searched in program directory under
OS/2 and in user home directory under Unix.
Configuration Files
FTE configuration files are version specific, and must be recompiled
for each new version of the editor.
On startup, editor will attempt to load a configuration file with
the basename as the executable and extension .CNF. The
configuration file is produced by compiling source files with CFTE.
If the command line option -! is used, editor will not
attempt to load a configuration file and will use default built-in
settings.
Compiling configuration files.
Configuration files are compiled using CFTE program.
cfte should be invoked on main.fte, for example:
[C:\FTE] cfte config\main.fte
$ cfte config/main.fte
This will automatically compile all *.fte files included
from main.fte and produce fte-new.cnf if there
are no errors in source files.
When configuration source files are sucessfully compiled, the resulting file fte-new.cnf should be copied to
fte.cnf and ftepm.cnf, or under Unix to ~/.fterc
Source Configuration files
Comments start with character # and last until the end
of line.
Strings can be specified using any of ' " / characters.
Single quoted strings perform no substitution. To enter '
or \ into a string precede it with a backslash.
Double quoted strings perform the following substitutions:
\t -> tab character
\r -> CR
\n -> LF
\v -> vertical tab
\b -> ^H, backspace
\a -> ^G, bell
Strings started by / character require no escaping. Mostly
useful for specifying regular expressions
without double backslashes.
Global Configuration
Global Settings
The following settings can be used in the GLOBAL section of the
configuration file.
ScreenSizeX
Number of columns visible on screen or window
ScreenSizeY
Number of lines visible on screen or window
CursorInsertStart
Starting percentage of cursor size (from top) when in insert mode.
CursorInsertEnd
Ending percentage of cursor size when in insert mode.
CursorOverStart
Starting percentage of cursor size when in overstrike mode
CursorOverEnd
Ending percentage of cursor size when in overstrike mode.
SysClipboard
When set to 1, editor will use external (PM) clipboard instead of
internal one.
SelectPathname
If set to 1, pathname will be selected by default when prompting for a
file in FileOpen function. If set to 0,
pathname will not be selected, this allows you to quickly type a new
filename, without erasing an entire entryfield.
OpenAfterClose
If set to 1, editor will prompt for another file when all files are
closed.
ShowMenuBar
If set to 1, main menu bar will be visible.
ShowVScroll
If set to 1, scroll bar will be visible.
DefaultModeName
Default mode name for loading/editing files. If not set or invalid,
first mode in the configuration file will be used instead. By default
set to 'PLAIN'.
CompletionFilter
Files matching this regexp are ignored when doing filename completion.
CompileRx
Defines regular expressions and thers subpattern
indices to match when searching for errors and warnings in compilation
output. First number is an index of the subpattern that matches
filename. The second must match the line number, the third parameter is
the regular expression to match to each line of the compiler output.
C_*
Define the C mode smart indentation parameters
See section on configuring C mode indentation.
REXX_Indent
Defines the REXX basic indentation level
KeepHistory
If set to 1, last file position and imput prompt history will
be loaded on startup and saved on exit. Can be overriden
with command line option '-h'.
LoadDesktopOnEntry
If set to 1, all files listed in FTE.DSK in current directory or
FTE.EXE directory will be loaded into FTE. The desktop file can
be overriden with command line option '-d'.
SaveDesktopOnExit
If set to 1, desktop will be automatically saved when ExitEditor command is issued.
KeepMessages
If set to 1, compiler messages will be kept until deleted by user.
ScrollBorderX
Horizontal offset to the border before window starts scrolling.
ScrollBorderY
Vertical offset to the border before window starts scrolling.
ScrollJumpX
Scroll window by this many columns when cursor reaches scrolling border.
ScrollJumpY
Scroll window by this many lines when cursor reaches scrolling border.
Colors
Colors are configured in COLOR.FTE file.
Syntax for color settings is:
color { { 'name', 'value' } ... }
Value is the PC character attribute first char is background color,
the second is foreground color.
Colors are as follows:
0 Black
1 Dark Blue
2 Dark Green
3 Dark Cyan
4 Dark Red
5 Dark Magenta
6 Orange
7 Pale Gray
8 Dark Gray
9 Blue
A Green
B Cyan
C Red
D Magenta
E Yellow
F White
CMode Smart Indentation
Settings for CMode smart indentation
- C_Indent
- Basic C indentation level
- C_BraceOfs
- Brace '{' offset
- C_CaseOfs
- Offset of case and default statements
- C_CaseDelta
- Offsets of statements following case/default.
- C_ClassOfs
- Offset of public, private and protected
- C_ClassDelta
- Offset of statements following public, private, protected
- C_ColonOfs
- Offset of labels
- C_CommentOfs
- Offset of comments
- C_CommentDelta
- Offset of second line of comments
Example 1:
class line {
public: // C_ClassOfs = 0
line(); // C_ClassDelta = 4
~line();
};
int main() {
int x = 1;
/* // C_CommentOfs = 0
* check value // C_CommentDelta = 1
*/
puts("main"); // C_Indent = 4
if (x)
{ // C_BraceOfs = 0
switch (x) {
case 1: // C_CaseOfs = 0
puts("ok"); // C_CaseDelta = 4
break;
}
}
end:
return 0;
}
Example 2:
class line {
public: // C_ClassOfs = 2
line(); // C_ClassDelta = 2
~line();
};
int main() {
int x = 1;
/* // C_CommentOfs = 2
** check value // C_CommentDelta = 0
*/
puts("main"); // C_Indent = 4
if (x)
{ // C_BraceOfs = 0
switch (x) {
case 1: // C_CaseOfs = 4
puts("ok"); // C_CaseDelta = 4
break;
}
}
end:
return 0;
}
Mode Configuration
fte allows each file extension to have a different editing mode. Mode
is a collection of editor settings such as keybindings, tab settings,
autoindent settings, syntax highlighting,...
Syntax of mode command is
mode NAME { mode settings }
mode NAME: PARENT { mode settings }
Mode with name NAMEinherits settings from mode PARENT
if parent mode is specified at mode declaration.
When editor is searching for a mode to use for a file it will
first check if the mode has been overriden by a FileOpenInMode command or a command line
option (-m).
Then it will check if the file name matches FileNameRx defined in mode declarations.
If the mode has still not been found, it will read the first line
(max 80 chars) of the file, and attempt to match the FirstLineRx with the first line.
If this fails, the editor will use mode specified by
DefaultModeName global
setting to load a file. If that mode does not exist, first mode defined
in the configuration file will be used.
Mode Settings
The following settings can be specified for each mode:
ExpandTabs
{0,1}
Should be set to 1 if tabs are to be expanded when displayed. Use
ToggleExpandTabs command to toggle
during editing.
TabSize
{1-32}
Tab size when tabs are shown expanded on display.
AutoIndent
{0,1}
Should be set to 1 if autoindent is to be used. Use
ToggleAutoIndent command
to toggle it on/off during editing.
Insert
{0,1}
If set to 1, Insert mode is active by default.
If set to 0, Overwrite mode is activated.
Use ToggleInsert command
to toggle it on/off during editing.
StripChar
{ASCII code/-1}
This characted will be stripped if it is found the end of any line
when the file is being loaded. If it is set to -1, no characted
will be stripped.
Usually used to strip 13 (CR) characters from DOS text files.
LineChar
{ASCII code/-1}
This character is used as a line separator when loading a file.
If set to -1, there is no line separator. (WARNING: File will
be loaded as one line if LineChar is set to -1).
Usually set to 10 (LF) as standard text file line separator.
AddCR
{0,1}
If set to 1, CR (13, \r) character will be added to end of
line when saving.
AddLF
{0,1}
If set to 1, LF (10, \n) characted will be added to end if line when saving.
ForceNewLine
{0,1}
Normally, when saving, the last line is saved without any CR/LF
characters. This setting will override that behaviour.
Hilit
{0,1}
If set to 1, syntax highliting will be active.
ShowTab
{0,1}
If set to 1, tabs will be visible as circles (EPM-like).
IndentMode
{PLAIN,C,REXX}
Activates the specified smart indent mode. (PLAIN mode specifies
no smart audoindenting, just normal autoindent).
Specifies a previously declared colorize mode to use for syntax
highlighting in this editing mode.
EventMap
Specify the name of existing eventmap to use for current mode.
UndoLimit
{Number}
Limit undo to this many recent commands (-1 = unlimited)
UndoMoves
{0,1}
If set to 1, all cursor movements will be recorded on undo stack.
KeepBackups
{0,1}
If set to 0, backup files will be deleted after a successful
save operation.
MatchCase
{0,1}
If set to 0, searches will be case insensitive. This can be
toggled via ToggleMatchCase command when editor
is running.
BackSpKillTab
{0,1}
If set to 1, BackSpace will kill entire tabs instead of converting them to spaces.
DeleteKillTab
{0,1}
If set to 1, Delete will kill entire tabs instead of converting them to spaces.
BackSpUnindents
{0,1}
If set to 1, BackSpace will unindent to previous indentation level if issued on beginning of line.
SpaceTabs
{0,1}
If set to 1, InsertTab command will insert spaces instead of tabs.
IndentWithTabs
{0,1}
If set to 1, indentation will be done using tabs instead of spaces.
WordWrap
{0,1,2}
If set to 1, editor wrap current line when right margin is reached.
If set to 2, editor will wrap current paragraph continously. Paragraphs
as recognised by WrapPara command must be
separated by blank lines.
LeftMargin
{1-xx}
Left margin for word wrap (WrapPara command).
RightMargin
{1-xx}
Right margin for word wrap (WrapPara command).
Trim
{0,1}
If set to 1, spaces on the end of line will be trimmed when editing.
ShowMarkers
{0,1}
If set to 1, end of line and end of file markers will be shown.
CursorTroughTabs
{0,1}
If set to 1, editor will allow cursor to be positioned inside tabs.
'options'
Default search options for Find command.
'options'
Default search/replace options for FindReplace command.
SaveFolds
{0,1,2}
If 0, folds are not saved. If 1, folds are saved at beginning of
line, if 2 folds are saved at end of line.
Folds are saved as comments in source files, depending on active
editing mode.
See mode settings CommentStart and
CommentEnd for configuration of fold
comments.
"comment-start-string"
String that starts comments (for saving folds)
"comment-end-string"
String that ends comments
AutoHilitParen
{0,1}
If set to 1, editor will automatically highlight the
matching bracket if it is visible on screen. This is equivalent
to executing HilitMatchBracket command.
{0,1}
If set to 1, abbreviation expansion will be
active in this mode.
BackSpKillBlock
{0,1}
If set to 1, BackSpace command will
delete block if it is marked, otherwise it will delete the previous
character.
DeleteKillBlock
{0,1}
If set to 1, Delete command will delete
block if marked, instead of deleting the character below cursor.
PersistentBlocks
{0,1}
If set to 1, blocks will stay marked even if cursor
is moved in the file, if set to 0, block is unmarked as soon
as the cursor is moved.
InsertKillBlock
{0,1}
If set to 1, the marked block is deleted when a new character
is typed.
"regexp"
Must be set to regexp that matches names of files that should
be edited in this mode. Has priority over FirstLineRx
"regexp"
Must be set to regex that matches the first line of files that
should be edited in this mode. This is checked only if no
FileNameRx matches the filename.
"regexp"
Regular expression that matches function header.
Used by editor commands:
ListRoutines,
MoveFunctionPrev,
MoveFunctionNext,
BlockMarkFunction,
IndentFunction.
Loading files in various formats
Here are settings for loading files in various formats:
- DOS/Win/OS2/NT text files (CR/LF delimited):
-
StripChar 13
LineChar 10
AddCR 1
AddLF 1
- Unix text files (LF delimited):
-
StripChar -1
LineChar 10
AddCR 0
AddLF 1
- MAC text files (CR delimited):
-
StripChar -1
LineChar 13
AddCR 1
AddLF 0
- Binary files (fixed record length):
-
StripChar -1
LineChar -1
AddCR 0
AddLF 0
LoadMargin 64
ForceNewLine 0
Configuration of Tab options
EventMap configuration
eventmap section is used to bind editor commands to user events.
Keybindings
Keybindings are inherited from parent modes unless overriden.
Here are some examples of key specifiactions:
- [A]
- Uppercase a
- [a]
- Lowercase a
- [;]
- Semicolon
- [A+A]
- Alt+A
- [C+B]
- Ctrl+B
- [A+C+F1]
- Alt+Ctrl+F1
- [A+C+S+F1]
- Alt+Ctrl+Shift+F1
- [A+Space]
- Alt+Space
- [C+K_C+B]
- Ctrl+K and then Ctrl+B (two keys)
- [C+A_C+B_C+C]
- Ctrl+A Ctrl+B Ctrl+C must be pressed in sequence.
- [G+-]
- Gray -
- [G++]
- Gray +
- [C-S-X]
- X, ignore the state of Ctrl and Shift keys.
- [C+\\]
- Ctrl+Backslash
- [C+\[]
- Ctrl+[
- [C+G-Left]
- Ctrl+Left, ignore difference between the two Left keys.
- [C+A-A]
- Ctrl+A, ignore the state of Alt key.
The following special keys are available (case sensitive):
F1-F12 Home End PgUp PgDn Insert Delete Up Down Left Right
Enter Esc BackSp Space Tab Center
Keyname can be preceeded by modifiers (A, C, G, S). If modifier is followed
by a + (plus), the modifier key must be pressed to match the key
specification. If the modifier key is followed by - (minus), the state
of the modifier key is ignored.
Multiple-key combinations can be specified by separating
them with _ (underline)
Keys are bound using the key command:
key [keyspec] { editor commands }
ASCII characters >= 32 are bound to TypeChar by default.
Any number of commands can be bound to a key combination or menu item.
They are executed in sequence until one of them fails.
See ui_fte.fte configuration file for examples and default
configuration.
Abbreviations are used to automatically replace some text or run an
editor macro when some word is typed in. When a non-word character is
entered, the previous word is searched for in the list of
abbreviations. When it is found, it is either replaced with a new
string or a macro is executed.
Syntax:
abbrev 'old-word' 'new-string'
abbrev 'old-word' { Macro }
Some examples of abbreviations:
abbrev 'wcsw' 'WinCreateStdWindow';
abbrev 'ifx' {
KillWordPrev; InsertString 'if () {'; LineIndent; LineNew;
InsertString '}'; LineIndent;
MoveUp; MoveLineEnd; 3:MoveLeft;
Fail; # do not insert typed character
}
The first one defines a replacement string, while the second one defines
an editor macro to be run.
For abbreviations to work, setting
Abbreviations must be set to 1 for
active mode.
EventMap Settings
MainMenu
"menu"
Main menu displayed when editing in this mode.
LocalMenu
"menu"
Local menu used when editing in this mode.
Colorizer Configuration
Configuration of syntax highlighting modes.
Syntax:
colorize <mode>[:<parent>] { <settings> }
Settings
SyntaxParser
{PLAIN,C,HTML,MAKE,REXX,DIFF,IPF,PERL,MERGE,Ada,...}
Activates the specified syntax parser for colorization mode.
PLAIN specifies no syntax parser, only keyword highlighting
is available.
New syntax parsers can be defined using state machines
by using a name of SIMPLE.
Keywords
Syntax:
keyword <color-specifier> { list of keywords }
Multiple keyword sets with different colors can be defined.
'-' can be used for color specifier do use the default keyword
color specified in global settings.
Syntax:
color { list-of color-name,color-spec pairs }
Color settings are inherited from parent mode.
The following color-names are available, which ones
will actually be used depends on the SyntaxParser setting used:
Configurable Syntax Parser
This is not fully stabilized yet. Might change in the future.
When SyntaxParser is set to "SIMPLE", the following commands
can be used to configure the state machine used for parsing the
text.
- h_state
- Defines a new state for the state machine
h_state state_number {
default_color_name
}
h_state command takes the following parameters:
- state_number
- States must be numbered sequentially from 0 without skipping any
number.
- default_color_name
- Contains the name of default color used for characters that are not
matched by any transition string or keyword.
- h_wtype
- Specifies the keyword matching parameters for current
state. There can be only one h_wtype keyword per state.
h_wtype {
next_state_if_matched,
next_state_if_not_matched,
next_state_if_no_keyword,
state_flags,
keyword_charset
}
h_wtype takes the following arguments:
- next_state_if_matched
- The number of the next state if any keyword is matched. Can
be -1 to keep current state.
- next_state_if_not_matched
- The number of the next state if no keyword is matched. Can
be -1 to keep current state.
- next_state_if_no_keyword
- The number of next state if no keyword is found at all. Can
be -1 to keep current state.
- state_flags
- String containing zero or more of the following characters:
- i
- Keyword matching is performed case-insensitively.
- h_trans
- Defines a new state transition for current state.
h_trans {
next_state,
trans_flags,
trans_match,
color_name
}
h_trans command takes the following parameters:
- next_state
- The number of next state to go if a match is successful.
- trans_flags
- Determines options for matching. Can contain zero or more of the
following characters:
- ^
- Matches only at the beginning of the line.
- $
- Matches only at the end of the line.
- i
- Match is case-insensitive.
- s
- trans_match is a character set. Matches only if the
next character is part of the set.
- S
- Same as 's' but next character must not be part of the set.
- -
- After successfull match, the pointer is not advanced, matching
will resume at the same position in next state. (WARNING: this
can cause infinite loops).
- <
- The matched character(s) are tagged with current state number.
This is important for proper operation of MatchBracket command.
MatchBracket will only match braces tagged with same state number.
- >
- The matched character(s) are tagged with next state number.
- q
- On successful match quote the next character (the next character
is not used for matching).
- Q
- On successful match quote the end of line (the end of line
is not used for matching).
- trans_match
- When 'S' or 's' option is used, a character set to be matched. When
'S' or 's' options are not used, a string to be matched.
- h_words
- Specifies the set of keywords to match in this state. All
characters in keywords must be part of the keyword_charset
in h_wtype command for this mode.
h_words <color-specifier> { 'list', 'of', 'keywords' }
Works the same way as the keyword but keywords
are for current state only.
Multiple keyword sets with different colors can be defined.
'-' can be used for color specifier do use the default keyword
color specified in global settings.
Status Line
Status line displays the following status information:
position|flags|mode|curchar|mod? filename|winno
position = line:column
flags
- I
- Insert
- A
- Autoindent
- C
- Matches are case sensitive
- SLC
- Stream, Line, Column block-mode
- wW
- Automatic word wrap active (w = line, W = paragraph).
mode = Mode name as specified in configuration file
curchar = Decimal ASCII code of character under cursor, or EOL/EOF
mod? = * if file was modified, % if file is read-only
Editor Commands
These commands can be bound to keys in configuration file:
Cursor Movement
MoveLeft
Moves cursor left one character. Stops at first column.
MoveRight
Move cursor right one character. Does not stop at the end of line.
MoveUp
Moves cursor up one line.
MoveDown
Moves cursor down one line
MovePrev
Moves cursor to previous character. When the start of line is reached,
wraps to end of previous line.
MoveNext
Move cursor to next character. Then the end of line is reached, wraps
to the beginning of the next line.
MoveWordLeft
Moves cursor one word left. Stops at the start of line.
MoveWordRight
Moves cursor one word right. Stops at the end of line.
MoveWordPrev
Moves cursor to start of previous word. When the start of line
is reached, wraps to the end of previous line.
MoveWordNext
Moves cursor to start of next word. When the end of line is reached,
wraps to the start of next line.
MoveLineStart
Moves cursor to beginning of line
MoveLineEnd
Moves cursor to end of line.
MovePageUp
Move cursor to previous page.
MovePageDown
Moves cursor to next page.
MovePageLeft
Moves cursor one page to the left.
MovePageRight
Moves cursor one page to the right.
MovePageStart
Moves cursor to the top of the page.
MovePageEnd
Moves cursor to the bottom of the page.
MoveFileStart
Moves cursor to the start of buffer.
MoveFileEnd
Moves cursor to end of buffer.
MoveBlockStart
Moves cursor to the start of block.
MoveBlockEnd
Moves cursor to the end of block.
ScrollLeft
Scroll screen left 8 characters
ScrollRight
Scroll screen right 8 characters
ScrollDown
Scroll screen down 1 line
ScrollUp
Scroll screen up 1 line
MoveFirstNonWhite
Moves cursor to first non whitespace character on line.
MoveLastNonWhite
Moves cursor after last non whitespace character on line.
MovePrevEqualIndent
Moves cursor to first line above the cursor with indentation equal to
current line.
MoveNextEqualIndent
Moves cursor to first line below the cursor with indentation equal to
current.
MovePrevTab
Moves cursor to previous tab stop.
MoveNextTab
Moves cursor to next tab stop.
MovePrevPos
Moves cursor to previous cursor position.
SavePos
Saves current cursor position.
MoveSavedPos
Moves cursor to saved position.
MoveSavedPosCol
Moves cursor to saved position column without leaving the current line.
MoveSavedPosRow
Moves cursor to saved position line without leaving the current column.
MoveLineTop
Reposition current line to top of window.
MoveLineCenter
Reposition current line to center of window.
MoveLineBottom
Reposition current line to bottom of window.
MoveTabStart
When inside of tab character, move cursor to start of tab.
MoveTabEnd
When inside of tab character, move cursor to end of tab.
MoveFoldTop
Move to the top of current fold.
MoveFoldPrev
Move to the top of previous fold.
MoveFoldNext
Move to the top of next fold.
MoveFunctionPrev
Move to start of previous function.
A function is determined by two lines matching RoutineRegexp.
Move to start of next function.
A function is determined by two lines matching RoutineRegexp.
Text deleting
Commands for deleting text in buffer.
KillLine
Delete current line. If we are on the last line of file, only the line
contents is deleted.
KillChar
Delete character under cursor.
KillCharPrev
Delete character before cursor.
KillWord
Delete next word.
KillWordPrev
Delete previous word.
KillToLineStart
Delete text to line start.
KillToLineEnd
Delete text to line end.
KillBlock
Kill text in block.
KillBlockOrChar
Kill block if marked, otherwise kill char under cursor.
KillBlockOrCharPreV
Kill block if marked, otherwise kill char before cursor.
BackSpace
Delete character before cursor.
Can be configured with the following mode settings:
- WordWrap
- BackSpUnindents
- BackSpKillTab
- Trim
Delete
Delete character under cursor (configurable).
Can be configured with the following mode settings
- DeleteKillTab
- WordWrap
- Trim
Line commands
Text line operations.
LineInsert
Insert empty line before current line.
LineAdd
Add line after current.
LineSplit
Split line at current cursor position.
LineJoin
Join line with next one.
LineNew
Add new line after current one, move to next line and indent
(indentation depends on currently active indentation mode).
LineIndent
Reindent current line. The behaviour depends on currenty active
indentation mode.
In PLAIN mode, reindent the line to the same level as previous
line.
LineTrim
Trim spaces at the end of current line
LineDuplicate
Duplicate current line.
Text insertion
Text insertion commands.
InsertString
Insert string given as argument.
InsertChar
Insert character with ASCII code given as argument. Does not
check for possible abbreviations.
InsertSpace
Insert Space character (ASCII 32)
TypeChar
Insert character with ASCII code given as argument. Checks
for possible abbreviations and performs the expansion.
SelfInsert
Insert character defined by last key.
InsertTab
Insert Tab character (ASCII 9)
InsertSpacesToTab
Insert Space characters to next tab stop, simulating a tab.
InsPrevLineChar
Insert character above current character.
InsPrevLineToEol
Insert previous line from current column to end of line.
CompleteWord
Complete word with previous occurance of the word in the file.
WrapPara
Word wrap paragraph (paragraphs are separated by blank lines).
Blocks
Block manipulation commands.
BlockBegin
Set block beginning to current position.
BlockEnd
Set block end to current position.
BlockUnmark
Unmark selected block.
BlockCut
Cut selected block to clipboard.
BlockCutAppend
Cut selected block and append it to clipboard.
BlockCopy
Copy selected block to clipboard.
BlockCopyAppend
Append selected block to clipboard.
BlockPaste
Paste clipboard to current position.
BlockPasteStream
Paste clipboard to current position as stream block.
BlockPasteLine
Paste clipboard to current position as line block.
BlockPasteColumn
Paste clipboard to current position as column block.
BlockKill
Delete selected text.
BlockIndent
Indent block by 1 character.
BlockUnindent
Unindent block by 1 character.
BlockMarkStream
Start/stop marking stream block.
BlockMarkLine
Start/stop marking line block.
BlockMarkColumn
Start/stop marking column block.
BlockExtendBegin
Start extending selected block.
BlockExtendEnd
Stop extending selected block.
BlockReIndent
Reindent entire block (C/REXX mode)
BlockRead
Read block from file.
BlockWrite
Write marked block to file.
BlockPrint
Print a block to configured device.
BlockSelectLine
Select current line as block.
BlockSelectWord
Select word under cursor as word.
BlockUnTab
Remove tabs from marked lines.
BlockEnTab
Generate and optimize tabs in marked lines.
BlockMarkFunction
Mark current function as block.
A function is determined by two lines matching RoutineRegexp.
Sorts the marked block in ascending order.
If mode setting MatchCase is set, characters will be compared case
sensitively.
When block is marked in Stream or
Line mode, the entire lines in marked
block will be compared.
When block is marked in Column
mode, only characters within marked columns will be compared.
BlockSortReverse
Sorts the marked block in descending order.
See BlockSort for more information.
File commands
FileSave
Save current file.
FileSaveAll
Save all loaded files.
FileSaveAs
Save current file under a new name, changing the name of loaded file.
FileWriteTo
Save current file under a new name, without changing name of loaded file.
FileClose
Close current file.
FileCloseAll
Close all files.
FileOpen
Open a file given as argument. If no argument is given for
command, prompt user to enter a filename.
FileOpenInMode
Load a file in a specified mode.
FileReload
Reload current file.
FileNext
Select next file in buffer ring.
FilePrev
Select previous file in buffer ring.
FileLast
Select previously active file. Used to switch between two last
used files.
Window commands
Window commands.
WinHSplit
Split window horizontally.
WinNext
Activate next window.
WinPrev
Activate previous window.
WinZoom
Make current window the only one (close all others).
WinRefresh
Repaint entire screen.
WinResize
Resize window (takes integer argument, -x = smaller, +x = bigger).
WinClose
Close current window.
Undo/Redo
Undo commands.
Undo
Undo last operation.
Redo
Redo last undone operation.
Character translation
Character translation commands.
CharCaseUp
Convert current character to uppercase
CharCaseDown
Convert current character to lowercase
CharCaseToggle
Toggle case of current characters
CharTrans
Translate current character as specified by two arguments.
Examples:
CharTrans 'A-Za-z' 'a-zA-Z'
CharTrans 'A-D' 'DCBA'
LineCaseUp
Convert characters on current line to uppercase
LineCaseDown
Convert characters on current line to lowercase
LineCaseToggle
Toggle case of characters on current line
LineTrans
Translate characters on current line as specified
by two arguments.
BlockCaseUp
Convert characters in selected block to uppercase
BlockCaseDown
Convert characters in selected block to lowercase
BlockCaseToggle
Toggle case of characters in selected block
BlockTrans
Translate characters in block as specified by two arguments.
Searching
Search/Replace commands.
Find
Search for text, w/options
FindReplace
Search and replace text w/options.
FindRepeat
Repeat last search/replace operation
FindRepeatReverse
Repeat last search/replace operation in opposite direction
FindRepeatOnce
Repeat last search/replace operation only once.
MatchBracket
Search for matching bracket
HilitMatchBracket
Show matching bracket highlited if visible in window.
IncrementalSearch
Search incrementally for text.
SearchWordPrev
Search for previous occurance of word under cursor.
SearchWordNext
Search for next occurance of word under cursor.
Search
Search for text
SearchB
Search for text backwards
SearchRx
Search for regexp
SearchReplaceRx
Search and replace using regexp
SearchAgain
Search for text again
SearchAgainB
Search for text again backwards
SearchReplace
Search for text and replace
SearchReplaceB
Search and replace backwards
Folding
Folding commands.
FoldCreate
Create fold
FoldCreateByRegexp
Create folds at lines matching regexp.
FoldDestroy
Destroy fold at current line.
FoldDestroyAll
Destroy all folds in file.
FoldOpen
Open fold at current line.
FoldOpenAll
Open all folds in file.
FoldOpenNested
Open current fold and all nested folds
FoldClose
Close current fold
FoldCloseAll
Close all folds in file
FoldToggleOpenClose
Toggle open/close fold.
FoldPromote
Make fold a higher level fold
FoldDemote
Make fold a lower level fold
Compile commands
Running external tools such as compilers.
Compile
Run compile command in background
ViewMessages
View compiler output
CompilePrevError
Jump to previous compiler error
CompileNextError
Jump to next compiler error
ClearMessages
Clear compiler messages.
Bookmarks
PlaceBookmark
Place a named bookmark at current buffer position
GotoBookmark
Goto a named bookmark in current buffer
RemoveBookmark
Remove a named bookmark from current buffer
Settings
Changing editing options.
ToggleAutoIndent
Toggle automatic indentation
ToggleInsert
Toggle insert/overwrite mode
ToggleExpandTabs
Toggle tab expansion on display.
ToggleShowTabs
Toggle tab visibility (as circles).
ToggleUndo
Toggle undo/redo information saving.
ToggleReadOnly
Toggle read only file.
ToggleKeepBackups
Toggle backup files.
ToggleMatchCase
Toggle case sensitivity for searches
ToggleBackSpKillTab
Enable/disable BackSp killing entire tabs.
ToggleDeleteKillTab
Enable/disable Delete killing entire tabs.
ToggleSpaceTabs
Toggle insertion of spaces instead of tabs on Tab key.
ToggleIndentWithTabs
Toggle indentation with tabs.
ToggleBackSpUnindents
Toggle unindentation on previous indent level on BackSp.
ToggleWordWrap
Toggle automatic word wrap.
ToggleTrim
Toggle trimming of spaces at end of line.
ToggleShowMarkers
Toggle EOL/EOF marker visibility.
ToggleSysClipboard
Toggle usage of system clipboard.
SetLeftMargin
Set left margin to current cursor column.
SetRightMargin
Set right margin to current cursor column.
ChangeTabSize
Prompt for tab size.
ChangeCIndent
Prompt for indentation level for CMode smart indentation.
ChangeCBraceOfs
Change brace offset for CMode smart indentation.
ChangeREXXIndent
Prompt for indentation level for REXX smart indentation
ChangeLeftMargin
Prompt for left margin for word wrap.
ChangeRightMargin
Prompt for right margin for word wrap.
Tags
TagLoad
Load tags database (merge with currently loaded tags).
TagClear
Remove all loaded tags from memory.
TagFind
Prompt for tag and locate it.
TagFindWord
Locate tag under cursor.
TagPop
Return to position before TagFind or TagFindWord command.
TagNext
Search for next occurrance of current tag.
TagPrev
Search for previous occurance of current tag.
Other
ExitEditor
Close all files, save desktop and exit the editor.
RunProgram
Run external program in foreground.
ViewBuffers
View buffer list.
ChangeMode
Activate another mode for current file.
ShowEntryScreen
Show saved shell screen if available.
SwitchTo
Switch to buffer with a number.
ChangeKeys
Change current keymap to keymap of another mode.
ChangeFlags
Change current flags to flags of another mode.
ShowMenu
Show and select from menu.
MainMenu
Activate menu bar.
LocalMenu
Activate local popup menu.
ASCIITable
Select and insert character from ASCII table.
DesktopSave
Save current desktop to active desktop file.
DesktopSaveAs
Ask for a new desktop file and save current desktop into it.
ListRoutines
Show the list of functions in the current buffer.
A function is determined by two lines matching RoutineRegexp.
Indents the current function. Applys the
LineIndent command to every line of function.
A function is determined by two lines matching RoutineRegexp.
Search and Replace
Search/Replace Commands
Find
Search for text with options.
FindReplace
Search and replace text w/options.
FindRepeat
Repeat last search/replace operation
FindRepeatReverse
Repeat last search/replace operation in opposite direction
FindRepeatOnce
Repeat last search/replace operation only once.
MatchBracket
Search for matching bracket
IncrementalSearch
Search incrementally for text.
Search
Search for text
SearchB
Search for text backwards
SearchRx
Search for regexp
SearchReplaceRx
Search and replace using regexp
SearchAgain
Search for text again
SearchAgainB
Search for text again backwards
SearchReplace
Search for text and replace
SearchReplaceB
Search and replace backwards
Search and Replace Options
- a
- Search for all occurances
- b
- Search in block only
- g
- Search through entire file/block (globally).
- i
- Ignore case
- r
- Reverse search
- x
- Use regular expression matching
- d
- Delete found line
- j
- Join found line
- w
- Search for entire words (only when 'x' not used).
- n
- No prompting
Commands affected by DefFindOpt mode setting:
Commands affected by DefFindReplaceOpt mode setting:
Commands affected by MatchCase mode setting:
- IncrementalSearch
- Search
- SearchB
- SearchRx
- SearchReplaceRx
- SearchReplace
- SearchReplaceB
Regular Expressions
Regular expressions are a way to specify text patterns when searching for
a text in a buffer. Regular expressions consist of normal characters
and special operator characters with a special meanings. Operators
allow you to anchor matches, match classes of characters, match given
pattern several times or match alternate patterns. Operators can be
also used to group patterns.
Search Operators
- \
- Quotes next character. Character will lose it's special meaning. Can also be used to match special characters.
- \n
- Matches a 0x0A (LF) character.
- \r
- Matches a 0x0D (CR) character.
- \t
- Matches a 0x09 (TAB) character.
- \e
- Matches an escape character (0x1B)
- \s
- Matches whitespace (CR, LF, TAB, SPACE) characters.
- \S
- Matches non-whitespace (the reverse of \s)
- \w
- Matches word character [a-zA-Z0-9]
- \W
- Matches non-word character
- \d
- Matches a digit [0-9].
- \D
- Matches a non-digit.
- \U
- Matches uppercase characters (A-Z)
- \L
- Matches lowercase characters (a-z)
- \x##
- Matches specified hex value (\x0A, \x0D, \x09, etc.)
- \o###
- Matches specified octal value (\o000, \o015, etc.)
- \N###
- Matches specified decimal value (\N000, \N013, \N009, etc.)
- \C
- Starts case sensitive matching.
- \c
- Starts case insensitive matching.
- ^
- Match a beginning of line.
- $
- Match an end of line.
- .
- Match any character.
- <
- Match beginning of word (word consists of [A-Za-z0-9]).
- >
- Match end of word.
- [ ]
- Specifies a class of characters ([abc123], [\]\x10], etc).
- [ - ]
- Specified a range of characters ([0-9a-zA-Z_], [0-9], etc)
- [^ ]
- Specifies complement class ([^a-z], [^\-], etc)
- ?
- Matches preceeding pattern optionally (a?bc, filename\.?, $?, etc)
- |
- Matches preceeding or next pattern (a|b, c|d, abc|d). Only one character will be used as pattern unless grouped together using {} or ().
- *
- Match zero or more occurances of preceeding pattern. Matching is greedy and will match as much as possible.
- +
- Match one or more occurances of preceeding pattern. Match is greedy.
- @
- Match zero or more occurances of preceeding pattern. Matching is non-greedy and will match as little as possible without causing the rest of the pattern match to fail.
- #
- Match one or more occurances of preceeding pattern. Matching is non-greedy.
- { }
- Group patterns together to form complex pattern. ( {abc}, {abc}|{cde}, {abc}?, {word}?)
- ( )
- Group patterns together to form complex pattern. Also used to remember the matched substring which can be used for substitution operation. Up to 9 can be used.
Replace Operators:
- \
- Causes the next character to lose it's special meaning.
- \n
- Inserts a 0x0A (LF) character.
- \r
- Inserts a 0x0D (CR) character.
- \t
- Inserts a 0x09 (TAB) character.
- \#
- Recalls stored substring from matched pattern ()'s. (\1, \2, \3, to \9)
- \0
- Recalls entire matched pattern.
- \u
- Convert next character to uppercase
- \l
- Convert next character to lowercase
- \U
- Convert to uppercase till \E or \e
- \L
- Convert to lowercase till \E or \e
Performance Tips
If you want to achieve top performance (necessary for
some text editing tasks), here are some tips:
- Use PLAIN hilit mode
- Disable Tab Expansion
- Disable ShowMarkers
- Disable Undo
- Disable AutoHilitBracket
- Disable Abbreviations.