This is a coding example working on Caché 2018.1.3 and IRIS 2020.2 It will not be kept in synch with new versions It is also NOT serviced by InterSystems Support !
The Command extension enables the execution of Multi-Line Commands from Terminal prompt.
Terminal Multi-Line Input with Edit, Insert, Delete, Print extension for IRIS and Caché
IRIS and Caché have just single command lines in terminal available
This Multi-Line Commands Editor also will execute the Multi-line Commands.
In addition, it is independent of access to %SYS and can be installed in any namespace
Special thanks to @Jeffrey Drumm who inspired me to this and supported me as beta-tester.
It is tested on IRIS/Caché Terminal , Putty, Linux Console, Docker Console,
Desktop Docker from Windows Command and WebTerminal.
This broad range of terminal emulations required navigation without any <ESC> sequences
as some of them are quite restrictive on input. So it got a little bit feeling like vi.
Installation & Execution
Import ZME.xml to any namespace.
For a system-wide installation in %SYS just rename it from zme to %zme
You may also add this line to your %ZLANGC00.mac for simplified use:
ZME do ^%zme quit ; add multi line command editor
Otherwise, just call it from terminal command prompt
at the prompt USER:zme>1
enter commands as usual in terminal
trigger execution by an empty line with
These Editor Commands are implemented:
USER>d ^zme Entering multi line mode. <enter> => Run multi-line command. . => Stop multi-line mode .i, .i<line> => Insert new empty line after <line> .d, .d<line>, .d<linefrom>:<lineto> => Delete lines .p, .p<line>, .p<linefrom>:<lineto> => Show lines .? => show this help .e, .e<line> => Edit line ***** line editing commands ***** .+ => move edit cursor forward .- => move edit cursor backward .nn => move edit cursor to position nn .r => set mode replace at cursor .i => set mode insert after cursor .d => delete character at cursor <enter> => teminate line editing <any character> => replace / insert after cursor .. => input single . USER:zml>1