Terminal Multi-Line Command Editor

Downloads17
Subscribe
2
Bookmark
5
This application is not supported by InterSystems Corporation. Please be notified that you use it at your own responsibility.
Details
Releases
Reviews
Issues
Videos
Articles

What's new in this version

clean repo

Terminal Multi-Line Command Editor

Terminal Multi-Line Input with Edit, Insert, Delete, Print extension for IRIS
IRIS and Caché have just single command lines in terminal available
This Multi-Line Commands Editor also will execute the Multi-line Commands.
In addtiion, it is independent of access to %SYS and can be installed in any namespace

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 with Docker

Prerequisites
Make sure you have git and Docker desktop installed.
Installation
Clone/git pull the repo into any local directory

$ git clone https://github.com/intersystems-community/objectscript-docker-template.git

Open the terminal in this directory and run:

$ set COMPOSE_DOCKER_CLI_BUILD=0
$ docker-compose build

Run IRIS container with your project:

$ docker-compose up -d

How to Test it in Docker Open IRIS terminal:

$ docker-compose exec iris iris session iris
USER>ZME

Installation from ZPM

Import ZME.xml to any namespace.

After the first start you can trigger a system-wide installation in %SYS as %zme
in combinatin with a Command Extention ZME for simplified use (added to %ZLANGC00.mac)

At first run and if not a Command Extention just call it from terminal command prompt

  USER>do ^zme  

Usage

at the prompt USER:zme>1
enter commands as usual in terminal
trigger execution by an empty line with <enter>

These Editor Commands are implemented:

    USER>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 .
***** line editing commands *****

USER:zme>1

see Video

Article in DC

Rating
5 (1)
Category
Technology Example
Works with
CachéEnsembleHealthShareInterSystems IRISInterSystems IRIS for Health
Tags
Info
Version
1.1.2
Last updated
2022-12-05
Repository
Open
Documentation
Open
License
Link