====== Full Screen Editor ====== ''fseditor.js'' is a Full Screen Editor (FSE) written by [[person:Deuce]] in JavaScript((the first of its kind)) for the Synchronet [[server:Terminal]] Server. ===== Download ===== The newest version of fseditor can always be download from [[https://gitlab.synchro.net/main/sbbs/-/blob/master/exec/fseditor.js|Git]] ===== Install ===== ''fseditor.js'' is normally installed into the Synchronet ''[[dir:exec]]'' directory. ===== Configure ===== To add ''fseditor.js'' to your FSE list, use the following settings in [[util: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 ''[[dir:ctrl]]/[[config: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: - "Keepers" ones that I like and would need a very good reason to change. - "Lukewarm" ones I understand but don't particularily like very much. - "Changers" ones I would change in a heartbeat if I had an alternative. The breakdown is as follows: * Keepers: ''ABCEFGHIJLMRWZ'' * Lukewarm: ''KSTVY\]'' * Changers: ''@NPQU_'' 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 ===== * [[:person:Deuce]] * [[:howto:editor:|How To Install Message Editors]] * [[:module:|Modules]] {{tag>javascript editor}}