an idea of the current state of play.
Download the QuickNotes text editor (beta) here:
https://ammaze.net/xywwweb/dls/quicknotes.zip
Save quicknotes.py to a directory of your choice. Launch with:
python quicknotes.py
Python v3.9 or later must be installed
Commands:
?, ABOUT Show Help -> About
AB, AB/NV, AB/V Abort, with/without verification
ABD Abort current file and delete it
APPEND Append selected text to clipboard
BD Backspace-Delete
BF Cursor to bottom of file
BS Cursor to bottom of screen
CA, ED, EDIT Open a file for editing
CALL Call a subroutine
CC Change Case
CCL, SCL, TCL Caps Lock clear / set / toggle
CD, CD/D Change directory
CH, CHA, CI, CIA Change commands
CIN, SIN, TIN Insert typing mode clear / set / toggle
SOV, TOV Overstrike typing mode toggles
CL, PC Cursor left (wrap)
CLERR Clear the error flag ($ERROR)
CNL, SNL, TNL Num Lock clear / set / toggle)
COMMANDS Show the Command Reference
COPY, COPY/NV File copy
CP Copy selected text
CPS, SPS, TPS Persistent-selection clear / set / toggle
CR, NC Cursor right (wrap)
CSL, SSL, TSL (Scroll Lock clear / set / toggle)
CV, CVA Change-verify, with optional /T /W
DA Insert date
DEL, DEL/NV, ERNV File delete
DF Start/End DeFine (selection)
DFA Select All
DL Select line
DN Delete, no clipboard
DP Select paragraph
DS Select sentence
DW Select word + trailing whitespace
DWONLY Select word only
ELSE, ELSEIF Conditional branching statements
ENDIF, EI End IF statement
ENDSUB, ES End Subroutine
ENDWHILE, EW End WHILE
ENV Save OS environment variable to QPL variable
EXISTS File-exists boolean
EXIT, QUIT, EX Quit QuickNotes
ET Insert elapsed time in text
ETS Show elapsed time on status line
GH, GT Focus CMline / text
GOTO Go to :label
HELP Show the Usage Summary
HM Cursor to top of screen
IF, IFNOT Conditional branching
INPUT Save user input to a variable
JMP Move cursor to char offset
LB, LE Move cursor to Line Begin / Line End
LC, UC Lowercase / Upper case character or selected text
LD, LU Line Down / Line Up
LL, LR (left / right, no wrap)
LN (toggle line numbers)
LOCAL Declare local variable in subroutine
LS, DIR Directory listing
MD, MU (screen-line down / up)
ME, MERGE Merge file contents at cursor position
ME/NV, MERGE/NV Merge, preserve cursor position
MSG (with optional /T:N)
MV (move selection to cursor)
NE (new tab / open file)
NL, PL (start of next / prev line)
NP, PP (next / prev paragraph)
NS, PS (next / prev sentence)
NW, PW (next / prev word)
NX, PX (next / prev tab)
PD, PU (PageDown / PageUp)
PDF, PDFS, PDFSTYLED Print to PDF
PR Display text on status (PRompt) line
PREPEND Prepend selected text to clipboard
PRINTS, RV, TYS Markdown preview toggle
QUIET Suppress status-line message (scripting)
RD Delete selection, save to clipboard
RE, READ Open file as Read-Only
READFILE, RF Read file contents into a variable
READWRITE, RW Toggle Read|Read-Only attribute of current file
REC, RECALL ReCAll current file (abandon changes)
REDO Ctrl-Y redo
RETURN Return from subroutine
RL Delete (rub out) line under cursor
RS Delete (rub out) sentence under cursor
RUN Run a script
RUNHERE Run a fenced block of QPL code
SA, SAAS, SAD Save As
SE, SEB, SEA, SEBA Search, with optional /T /W
SET Assign to a variable
SF, SL Save all open files
SORT Sort selected text, with optional /W /R /D /F:n /N:n)
SUB Subroutine
TF Move cursor to top of file
UNDO [n] Ctrl-Z undo (to n levels)
WAIT [<ms>] Pause script execution [milliseconds]
WF, WRITEFILE Write variable contents to file
WF/V, WRITEFILE/V WRITEFILE with overwrite confirmation
WHILE Condition execution/flow control command
WR, WRITE Write text at the cursor position
WRL, WRITELN Write text and trailing newline
X, XY, XV eXecute Windows/Linux command
XD, YD Cancel selection
ZT Reset stopwatch
Reserved Variables:
$# Number of positional args ($1..$N) in the active scope
$* All positional args joined with single spaces
$1..$N positional args of the active scope (RUN / CALL)
$CB Clipboard text (truncated past 4096 chars)
$CP Char offset of cursor (insert mark) from start of buffer
$CT Current tab number (1-based)
$CWD Current CMline path (same as $PA)
$CX Cursor column (0-based)
$CY Cursor row (0-based)
$DA Today's date (ISO YYYY-MM-DD)
$DF Text selection exists (0|1)
$DN Char offset of sel.last (or insert if no sel)
$DS Char offset of sel.first (or insert if no sel)
$ED Absolute path to quicknotes.py
$ERROR "1" if last action failed (trappable), "0" otherwise
$ET Elapsed seconds since last ZT (integer)
$FB Cursor is at File Beginning (0|1)
$FE Cursor is at File End (0|1)
$FI Active note's filename (basename)
$FP Active note's full path
$FS File size in bytes
$LC Line count of active editor
$LN Cursor line number (1-based)
$LS Last status-bar message
$MO Modified flag of active tab (0|1)
$PA Current CMline path (same as $CWD)
$PS "1" if persistent-selection mode is on, "0" otherwise
$RC Last X / XY / XV exit code (integer)
$RE Current file is Read-Only (0|1)
$RV Last RETURN value (string)
$SE Selected text (truncated past 4096 chars)
$SF Scripts folder path
$SL Selected text length in chars
$TC Total tab count
$TM Current time (HH:MM:SS)
$TX Cursor is in text area (0|1)
$TX Text under cursor? - see docs
$VE QuickNotes revision string (date-time)
--
Carl Distefano
cld@xxxxxxxxxx