====== Message Editors ====== The **message editor** is what you use to compose a message — for e-mail, NetMail, sub-board posts, and feedback. Synchronet always has an **internal** editor (the built-in line editor) available, and the sysop can additionally install one or more **external** editors that you can pick instead. Which editor you actually get is determined by your [[user:settings|User Settings]] (the ''E'' option) plus what the sysop has made available. External editors come in two forms: * **Native or MS-DOS programs** — standalone executables (run as external programs by the BBS, much like a door game) * **JavaScript or Baja scripts** — run in-process by Synchronet (these scripts are themselves [[:module:|modules]] in the broader Synchronet sense, but in the context of //message editors// they're typically just called //"external editors"// alongside the native/DOS variety) ===== Available editors ===== * **Synchronet built-in line editor** (//internal//) — the ASCII line-mode editor with slash commands and a ''/?'' help menu. Always available; the fallback for any user/terminal. * [[:module:slyedit|SlyEdit]] (//external, JavaScript//) — full-screen * [[:module:fseditor|FSEditor]] (//external, JavaScript//) — full-screen The sysop installs external editors in [[config:external_programs#message_editors|SCFG -> External Programs -> Message Editors]]. See [[howto:editor:|the editor how-to pages]] for setup of specific editors. ===== Built-in line editor ===== The internal line editor is always available regardless of terminal type. It works line-by-line: you type a line, press '''', and move on to the next. There are two categories of editing commands. **Slash (/) commands** are entered at the start of a new blank line (type ''/'' followed by the command name and press ''''). **Control (Ctrl) commands** may be entered from any cursor position on the current line. Commands marked ''*'' require ANSI terminal support. ==== Slash commands ==== * ''/?'' — display the editor help menu * ''/S'' — save and send the message * ''/ABT'' — abort (discard) the message * ''/CLR'' — clear (erase) all message text * ''/L'' — list the entire message so far * ''/L//x//'' — list from line //x// onward * ''/E'' — edit the last line * ''/E//x//'' — edit line //x// * ''/D'' — delete the last line * ''/D//x//'' — delete line //x// * ''/I'' — insert a blank line before the last line * ''/I//x//'' — insert a blank line before line //x// * ''/T'' — edit the message title (subject) * ''/ATTR'' — display the text attribute code list ==== Control commands ==== * ''Ctrl-C'' — cancel (discard) the current line * ''Ctrl-V'' — center the current line * ''Ctrl-R'' — redraw the current line * ''Ctrl-X'' — delete the current line * ''Ctrl-Y'' * — delete to end of line * ''Ctrl-W'' — delete word to the left of the cursor * ''Ctrl-D'' * — delete word to the right of the cursor * ''Ctrl-B'' * — move cursor to beginning of line * ''Ctrl-E'' * — move cursor to end of line * ''Ctrl-N'' * — move cursor to next word * ''Ctrl-\'' * — move cursor to previous word * ''Ctrl-F'' * — move cursor forward one space * ''Ctrl-Bkspc'' * — move cursor back one space * ''Ctrl-Minus'' * — toggle insert/overwrite mode * ''Ctrl-A//x//'' * — set text attribute //x// (see below) ==== Text attributes (Ctrl-Ax) ==== The ''Ctrl-A'' command toggles a text attribute. Attributes take effect when the line is word-wrapped or '''' is pressed. Type ''Ctrl-A'' then the attribute letter: ^Letter^Effect^ |''K''|Black foreground| |''R''|Red foreground| |''G''|Green foreground| |''Y''|Yellow foreground| |''B''|Blue foreground| |''M''|Magenta foreground| |''C''|Cyan foreground| |''W''|White foreground| |''0''–''7''|Background color (0=black … 7=white, matching foreground order)| |''H''|High intensity (bold)| |''I''|Blinking| |''N''|Normal — reset all attributes| |''P''|Insert a pause into the message| |''L''|Insert a form feed into the message| For a complete reference to Ctrl-A codes as used in ANSI text files and custom menus, see [[custom:ctrl-a_codes|Ctrl-A Codes]]. ===== See Also ===== * [[user:|User Documentation]] * [[custom:ctrl-a_codes|Ctrl-A Codes]] — complete Ctrl-A attribute reference * [[config:external_programs#message_editors|External Programs -> Message Editors (sysop config)]] * [[:module:slyedit|SlyEdit]] — full-screen JS editor * [[:module:fseditor|FSEditor]] — full-screen JS editor {{tag>user editor line_editor}}