Table of Contents

Full Screen Editor

fseditor.js is a Full Screen Editor (FSE) written by Deuce in JavaScript1) for the Synchronet Terminal Server.

Download

The newest version of fseditor can always be download from Git

Install

fseditor.js is normally installed into the Synchronet exec directory.

Configure

To add fseditor.js to your FSE list, use the following settings in SCFG->External Programs->External Editors:

╔════════════════════════════════════════════════════════════════════╗
║                       Deuce's FSEditor Editor                      ║
╠════════════════════════════════════════════════════════════════════╣
║ │Name                       Deuce's FSEditor                       ║
║ │Internal Code              FSEDITOR                               ║
║ │Command Line               ?fseditor %f                           ║
║ │Access Requirements        ANSI                                   ║
║ │I/O Method                 Socket                                 ║
║ │Native Executable/Script   Yes                                    ║
║ │Use Shell or New Context   No                                     ║
║ │Record Terminal Width      Yes                                    ║
║ │Word-wrap Quoted Text      Yes, for terminal width                ║
║ │Automatically Quoted Text  None                                   ║
║ │Editor Information Files   WWIV EDITOR.INF/RESULT.ED              ║
║ │Expand Line Feeds to CRLF  Yes                                    ║
║ │Handle Soft CRs            N/A                                    ║
║ │Strip FidoNet Kludges      No                                     ║
║ │Support UTF-8 Encoding     Yes                                    ║
║ │BBS Drop File Type         None                                   ║
╚════════════════════════════════════════════════════════════════════╝

Command Line

The first argument to fseditor.js must be the path/name of the file to edit (specified as %f in SCFG).

Optionally, -utf8 may be passed as a secondary argument to enable UTF-8 message support.

modopts.ini

The ctrl/modopts.ini file may contain an [fseditor] section with the following keys:

Key Default Description
utf8_support false Enable UTF-8 message support (experimental at this time)
default_tabstop 8 Specify the default interval of tab-stops (can be overridden and saved per-user)
soft_cr false Soft carriage-returns are included in saved files

Key Bindings

The key bindings for using fseditor.js are:

Edit Mode

In edit mode, the following CTRL keys function:

CTRL-Key Action
@ Colour/Attribute (Same as CTRL-A)
A Colour/Attribute
B Home cursor (Beginning of line)
C Center line in message
E End of line
F Right one character
G Enter Graphic Char
H Backspace
I Tab
J Down one line
K List keybindings
L Insert line
M Carriage Return
N Page Down
P Page Up
Q Quick abort
R Redraw screen
S Edit Subject
T Change Tab Size
U Quote
V Toggle insert mode
W Delete word backwards
Y Delete Line
Z Save and exit
\ Edit Subject (Same as Xon CTRL-S)
] Move left
^ Move up
_ Quick abort (Same as Xoff CTRL-Q)

Quote Mode

Key Action
CTRL-B Home (Top of document)
CTRL-E End of document
CTRL-J Down one line
CTRL-K List keybindings
CTRL-N Page Down
CTRL-P Page Up
CTRL-Q Quick abort... FLOW CONTROL CHAR!!!
CTRL-R Redraw screen
CTRL-^ Up one line
CTRL-_ Quick abort (Same as CTRL-Q)
SPACE Toggle sepection of current line
ENTER Pastes selected lines into message
A Select All
B Enter block mode
N Unselect all (“Select None”)

A few notes on keybindings

I am not completely opposed to changing some keybindings. However, the current ones fall into three catagories:

  1. “Keepers” ones that I like and would need a very good reason to change.
  2. “Lukewarm” ones I understand but don't particularily like very much.
  3. “Changers” ones I would change in a heartbeat if I had an alternative.

The breakdown is as follows:

The following CTRL keys are currently unused: DOX[

CTRL-Q and CTRL-S I do *not* want to use without alternates as they are the Xon/Xoff chars used in flow control and are sometimes impossible to send from a terminal.

I am open to suggestions.

See Also

1)
the first of its kind