Fact-checked by Grok 2 weeks ago

XEDIT

XEDIT is a full-screen integrated into IBM's operating system, specifically designed for the Conversational Monitor System (), enabling users to create, modify, and manipulate files such as CMS disk files, Shared File System (SFS) files, and Byte File System () regular files. Invoked via the CMS command XEDIT, it supports both display terminals and modes, providing a versatile interface for text processing and program development on mainframes. Developed by engineer Xavier de Lamberterie, XEDIT was first released in as part of VM System Product (VM/) Release 1, succeeding the line-mode EDIT editor and drawing influences from earlier tools like the 1970 editor created at 's Scientific Center. Its design emphasized a compact with extensive extensibility, allowing through macros written in EXEC, EXEC2, and later programming languages, which facilitated automation of complex editing tasks and even its use as a dialog manager for applications. Key features include powerful subcommands for navigation and manipulation, such as INPUT for entering text, CHANGE for global or targeted replacements (supporting compound, repetitive, and recursive operations), and prefix commands like A (after), C (copy), D (delete), and M (move) for line-level operations. It handles large files exceeding available virtual memory through efficient reentrant code running in a shared segment, and supports advanced options like automatic line wrapping, tab settings, double-byte character sets (DBCS), and multi-screen windowing for editing multiple files in a ring structure. XEDIT's enduring popularity stems from its productivity enhancements in the VM/CMS environment, where it revitalized user interfaces during the amid growing VM installations, and its adaptability has led to ports like uni-XEDIT for Unix systems, preserving its familiar command set for migrating mainframe users. Evolving through z/VM releases up to version 7.4 (2025), with continued enhancements for modern mainframe environments, it remains a core tool for mainframe professionals, with built-in help, practice modes, and integration with CMS utilities like and file lists.

Overview

Description and Purpose

XEDIT is a full-screen visual editor primarily designed for use with 3270 block-mode display terminals, offering line-mode support for non-display or typewriter terminals to enable editing in varied terminal environments. Its core functionality centers on providing efficient text processing and program development capabilities within systems. The primary purpose of XEDIT is to facilitate the creation, editing, and management of files in environments, including traditional files on minidisks, Shared File System (SFS) files in directories, and regular files in the (BFS). It serves as a robust tool for handling data files, distinguishing itself as a power-user alternative to simpler editors in mainframe workflows. In setups that incorporate TSO/ISPF, XEDIT integrates as an underlying editor option for panels and libraries, enhancing compatibility across VM and z/OS-like interactive sessions. XEDIT supports double-byte character sets (DBCS), such as those used for languages like (KANJI), through dedicated modes that allow recognition and manipulation of such strings on compatible terminals. Additionally, its typewriter mode enables disconnected operations on non-display terminals, ensuring accessibility without full-screen capabilities. The editor is invoked via the CMS command XEDIT filename filetype, which creates a new file if none exists. It has been available in the VM/CMS environment since VM/SP Release 1 in 1980 and remains a core component of .

Key Characteristics

XEDIT employs a line-oriented , where editing operations focus on individual lines or ranges of lines, facilitating efficient text manipulation in a mainframe environment. This approach includes automatic line numbering, enabled via the SET NUM ON subcommand, which displays sequence numbers in the prefix area for easy reference and navigation. Block-based operations allow users to apply commands to specified ranges of lines, such as deleting or moving multiple lines at once using prefix notations like "d5" for five lines. For input efficiency, XEDIT features power typing mode, invoked by the POWERINP subcommand, which enables continuous typing across lines with automatic wrapping to the next line upon reaching the end of the current one. This mode is particularly useful for entering large blocks of text without manual line breaks. Additionally, , set via SET TERMINAL TYPEWRITER, supports non-display or line-mode terminals by simulating a interface, allowing sequential line input without full-screen rendering. XEDIT supports multiple logical screens through the SET SCREEN subcommand, enabling horizontal or vertical splits to view and edit different files or sections of the same file simultaneously. The number of screens is constrained by available virtual storage, ensuring performance on resource-limited mainframe systems. To prevent data loss, XEDIT includes autosave functionality via the SET AUTOSAVE n subcommand, which automatically issues a SAVE command after every n changes, creating files with the AUTOSAVE filetype for recovery if the session ends unexpectedly. Efficiency in command is enhanced by the pending list, which queues subcommands and macros for batch execution upon screen refresh, allowing users to enter multiple operations before . Complementing this, the RECOVER n subcommand retrieves up to n recently deleted lines from a , inserting them before the current line to facilitate error correction. Customization options include setting tab positions with the SET TABS subcommand, such as specifying columns 10, 20, and 30 for aligned text formatting. XEDIT also provides support for global and selective changes, as seen in commands like CHANGE for pattern replacement across the file, which can be bound to programmable (PF) keys for quick access.

User Interface

Screen Layout

The XEDIT screen layout on 3270 block-mode terminals consists of several standard components designed to facilitate efficient text editing in a mainframe environment. The file identification line, typically at the top (line 1), displays key file details including the , filetype, (such as for read/write), format (e.g., V for ), length, truncation column (Trunc), , current (Line=n), column (Col=m), and alteration count (Alt=p). Below this, the message line (lines 2-3) shows editor messages, errors, or status updates, such as "Creating new ," to communicate directly with the . The primary file area occupies the central portion of the screen, displaying the editable content of the file, where the cursor can be positioned for modifications; changes are held in virtual storage until saved via the FILE subcommand. To the left of the file area is the prefix area, a five-character field (defaulting to =====) in each line, used for entering line commands like deletion or copying. A scale line, positioned near the middle of the screen (initially one line below center), provides column indicators (e.g., |...+....1....+....2....) with a column pointer marker to aid precise editing, especially for columnar data. The command line at the bottom features an arrow (====>) followed by an input zone for entering subcommands like BOTTOM, which are case-insensitive and abbreviable. In the lower right, the status area indicates the edit mode and number of files being edited (e.g., "X E D I T 1 File"). Several elements of the layout are customizable using SET subcommands to adapt to user preferences or terminal constraints. The SET PREFIX command controls the prefix area's display and position, with options like ON LEFT (default, showing it on the left), RIGHT (on the right), OFF (hidden), or NULLS (blanks for insert mode compatibility). SET CMDLINE adjusts the command line's location, such as ON (default, using the last two lines), BOTTOM (last line only), TOP (second line), or OFF (no display). The SET SCALE command manages the scale line's visibility and placement, defaulting to ON M+1 (displayed one line below screen middle), with options like OFF, M (middle), or numeric offsets (e.g., +n from top or -n from bottom). SET COLOR (or COLOUR) assigns colors and attributes (e.g., blue, red, high intensity, reverse video) to specific areas like the file area, prefix, scale, or message line, with defaults such as red for messages and high intensity for the current line. Additionally, SET SCREEN enables size adjustments by dividing the virtual screen into multiple logical screens (up to 16), arranged horizontally (minimum 20 columns each) or vertically (minimum 5 lines each), allowing simultaneous views of the same or different files. Program function (PF) keys provide quick access to common operations, with defaults optimized for 3270 keyboards: PF1 invokes HELP or , PF3 executes QUIT to end the session, PF4 sets TABKEY for tab navigation, PF5 and PF6 handle selective (SCHANGE) and global (ONLY) changes respectively, and PF11 performs SPLTJOIN for splitting or joining lines. On 24-key terminals, PF13–PF24 duplicate PF1–PF12. These defaults can be reassigned via macros or profiles. XEDIT's layout fully utilizes block-mode 3270 terminals for interactive, buffered but adapts to line-mode terminals (e.g., typewriters) by operating as a line-oriented editor without the full-screen visual elements, prioritizing command-line interactions over graphical aids. Visual enhancements include tab stops indicated on the scale line for alignment and color settings for distinguishing areas like shadows in selective or top-of-file/end-of-file notices, improving readability in text-heavy mainframe workflows.

Command Input and Navigation

XEDIT operates in two primary modes: edit mode, where users enter subcommands for navigation and file manipulation, and input mode, dedicated to inserting text lines. Edit mode is the default upon invoking XEDIT and allows entry of subcommands on the dedicated command line, typically displayed at the bottom of the screen. To enter input mode, users issue the INPUT subcommand, which shifts focus to the input zone for typing new content; pressing Enter after each line adds it to the , and a double Enter returns to edit mode. For continuous text insertion without line-by-line confirmation, the POWERINP subcommand enables power typing, allowing wrap-around input across multiple lines until explicitly ended. Navigation within the file relies on subcommands entered in edit mode, targeting specific lines or positions via formats such as absolute line numbers (e.g., ), relative offsets (e.g., +5 for five lines forward), (e.g., /searchterm), or ranges (e.g., 10 20 for lines 10 through 20). The TOP subcommand repositions the display to the first line of the file, while moves to the last line. For searching, scans forward for a specified or , wrapping to the beginning if SET WRAP is ON (default). searches from the current column position and moves both line and column pointers to the match; case sensitivity is controlled by the SET CASE subcommand. Input and insertion can also occur via prefix commands typed in the prefix area adjacent to line numbers on the screen, enabling targeted actions without full subcommands. For instance, entering 'a' (for add) in the prefix of a line inserts blank lines below it for text entry, with the number of lines specified (e.g., a5 adds five); users then switch to input mode to fill them. Similarly, 'i' invokes input mode directly at the current line. These prefix commands support numeric targets for efficiency, such as d3 to delete three lines. Program function (PF) keys facilitate rapid navigation and mode transitions on 3270-compatible terminals. Standard assignments include PF7 for scrolling backward one screen (equivalent to UP or BACKWARD subcommands) and PF8 for forward scrolling (DOWN or FORWARD). Defaults include PF5 for SCHANGE, which uses locate functions for selective changes. Subcommands like TOP and BOTTOM are invoked directly; PF keys can be customized via the SET PFn subcommand (e.g., SET PF2 TOP, SET PF12 INPUT) for personalized workflows, such as assigning PF12 to INPUT. Pressing Enter after any subcommand or PF key action processes the input and updates the display accordingly.

Core Functionality

Basic Editing Commands

XEDIT provides a set of fundamental commands for text manipulation at the line and character levels, enabling users to insert, delete, and replace content efficiently within files edited in the VM/CMS environment. These commands are entered either via the command line or the prefix area adjacent to line numbers on the screen, allowing precise control over individual lines or selected portions of text. Prefix commands, in particular, operate on the line where they are entered, with numeric modifiers to specify the number of lines affected. For insertion, the INPUT command enters a mode to add new lines after the current line, where users type text and press Enter to continue adding lines until two consecutive Enter keys are pressed to exit. The (shift-insert) prefix command adds indented blank lines continuously, useful for structured text entry, such as entering followed by positioning the cursor for indentation. At the character level, CINSERT inserts specified text at the current column pointer, shifting existing material to the right, as in CINSERT "new text" to place content at the cursor position. Deletion commands include the D prefix, which removes one or more lines, such as D to delete a single line or D5 to delete five consecutive lines starting from the current one. For character-level removal, CDELETE deletes a specified number of characters from the column pointer or up to a string, for example, CDELETE 5 to erase five characters or CDELETE /string/ to delete up to the occurrence of "string". These operations maintain the integrity of surrounding text without affecting the overall file structure. Replacement is handled by the CHANGE command for string substitution, which can target the current line, specific occurrences, or the entire file; syntax is CHANGE/old/new/ for the current line or CHANGE/old/new/* for global replacement across all lines. The OVERLAY method allows direct character replacement by positioning the cursor on a line and typing over existing text, ignoring blanks and overwriting only entered characters. For selective changes, users can combine CHANGE with PF5 to locate the next occurrence of the search string and PF6 to apply the replacement to that instance, enabling step-by-step verification rather than bulk operations. In contrast, the ALL or CURRENT qualifiers in CHANGE specify broad or limited scopes, such as CHANGE/old/new/ALL for file-wide updates. Line-level operations utilize prefix commands on numbered lines for reorganization: A adds blank lines after the current one (e.g., A3 for three lines), C copies lines to a destination marked with F (following) or P (preceding) in the target line's (e.g., C2 F to copy two lines after the ), and M moves lines similarly (e.g., M to relocate one line before a P-marked ). These commands facilitate rearranging content without intermediate storage, directly manipulating the file's sequence. Navigation aids like LOCATE can assist in targeting these operations by searching for specific strings. XEDIT supports editing of Double-Byte Character Set (DBCS) strings, such as those used in East Asian languages, through the SET ETMODE ON command, which enables proper recognition and manipulation of DBCS data during insertions, deletions, and replacements to prevent corruption of multi-byte sequences. This ensures compatibility with international text without altering the core command syntax.

Block and File Operations

XEDIT supports a range of prefix commands for block operations, enabling users to manipulate contiguous ranges of lines efficiently. The copy command, invoked as C for a single line or CC for a block, duplicates the specified lines to a target location, such as following (F) or preceding (P) the current line, or to absolute line numbers like nn mm. For instance, entering CC on the first and last lines of a block, followed by a target like F 5, copies the block after line 5. Similarly, the move command uses M for single lines or MM for blocks, relocating the content while removing it from the original position, with targets specified in the same manner to avoid overlap issues. Deletion employs D for individual lines or DD for blocks, marking the range with DD on the start and end lines before executing. These operations leverage line prefixes and multi-line targets to handle ranges without disrupting the file structure. File management in XEDIT facilitates loading, saving, and listing files through dedicated subcommands. The subcommand saves the current file to disk and returns to the previous file in the ring or exits the editing session if it is the only file open. The GET subcommand inserts lines from another file or buffer into the current file after the current line, such as GET filename filetype 1 10 to insert lines 1 through 10 from that file. The PUT subcommand stores specified lines from the current file (or all lines if none specified) into a new or existing file on disk or a temporary buffer, optionally under a new name like PUT newfile data; if appending to an existing file, the lines are added at the end. The QUIT subcommand terminates the editing session, with options to save unsaved changes or exit without saving, ensuring controlled closure. These commands operate within the editor's virtual storage, preserving the working copy until explicitly committed. Multiple editing is managed via a structure, where files are loaded into a in virtual for seamless switching. Users invoke the XEDIT subcommand to add a new to the , such as XEDIT sauces cookbook, shifting focus to it while retaining others; the cycles through files with repeated invocations, limited by available to prevent exhaustion. This setup supports concurrent edits across files, with the current displayed in the editor screen. Additionally, XEDIT accommodates BFS path names for byte files by specifying NAMETYPE BFS, as in XEDIT /path/to/[file](/page/File) (NAMETYPE BFS), integrating hierarchical access without altering the mechanism. constraints may restrict the number of files in the , prompting users to save and close excess ones periodically. Recovery features provide safeguards against data loss during editing. The RECOVER n subcommand restores the most recently deleted n lines at the current cursor position, useful for reversing accidental block deletions with DD; for example, RECOVER 5 retrieves the last five deleted lines. This operates on a per-session basis, maintaining a buffer of deletions until the session ends. For broader protection, AUTOSAVE automatically commits changes to a temporary file after a user-defined number of edits, configurable via SET AUTOSAVE n, enabling recovery from system crashes by reloading the autosaved version upon restart. Integration with AUTOSAVE ensures minimal loss, though users must enable it explicitly for active sessions. Overlay operations, particularly with the COVERLAY subcommand, allow precise block replacements while respecting virtual storage limits. COVERLAY overlays a block of text starting from the current column pointer, substituting characters in the range without shifting lines, as in COVERLAY text to replace from the cursor onward. When applied to blocks, it handles multi-line overlays by aligning with specified targets, but virtual storage boundaries may truncate large operations if the file exceeds allocated memory. This command is essential for in-place modifications in resource-constrained environments, ensuring overlays fit within the editor's storage footprint.

Macro Facilities

REXX Language

is the primary programming language used for macros in XEDIT, the full-screen editor for IBM's operating system and the Conversational Monitor System (). Macros written in are stored as CMS files with the XEDIT file type, distinguishing them from standard executables that use the EXEC file type. This integration enables users to automate complex editing tasks by combining 's procedural capabilities with direct access to XEDIT's internal state and subcommands. While modern XEDIT macros primarily use , earlier versions supported EXEC and EXEC2 languages. The syntax of REXX follows its standard structure, featuring variables assigned with the equals sign (e.g., var = value), conditional statements such as IF and SELECT, and looping constructs like DO loops with iterators or conditions. String manipulation, arithmetic operations, and parsing functions from standard REXX are retained, but XEDIT macros primarily interact with the editor through the ADDRESS XEDIT directive, which directs REXX instructions to execute XEDIT subcommands as quoted strings (e.g., ADDRESS XEDIT 'LOCATE string'). This allows macros to query or modify the editing environment, such as retrieving line content or adjusting the cursor position, without exiting the editor. Profile macros in , such as the default PROFILE XEDIT, execute automatically at the start of an editing session to configure settings like tab stops, scale lines, or message modes. macros, invoked from the prefix area on specific lines, enable line-specific actions, such as inserting structured templates or validating syntax, by processing the line under the cursor and issuing targeted subcommands. These macros enhance customization while maintaining the editor's interactive nature. XEDIT provides several built-in REXX macros for common operations, including HELP for displaying contextual assistance on subcommands, ALTER for substituting individual characters not available on the terminal keyboard, and GLOBCHG for performing global search-and-replace across the file or nested includes. These can be invoked directly from the command line, prefix area, or programmable function (PF) keys, streamlining repetitive tasks like formatting or debugging. Compared to standard REXX, XEDIT integration includes extensions for accessing editor state, such as functions and subcommands that manage line pointers (e.g., input and output pointers for block movements) and the pending list (a queue of unexecuted prefix commands). For instance, the QUERY INPUTPTR subcommand retrieves the current input line position, while macros can clear or inspect the pending list to handle deferred operations. These features make REXX tightly coupled with XEDIT's architecture, prioritizing editor control over general system-level interactions.

Macro Usage and Customization

Macros in XEDIT are invoked through several methods to facilitate efficient editing workflows. A direct EXEC call can execute a macro by entering EXEC macroname on the command line, allowing integration with scripts for broader automation. Prefix integration enables macros to process line-specific commands in the prefix area, such as applying changes to selected blocks via commands like LPREFIX mm n2, which is particularly useful for typewriter terminals or targeted edits. PF key assignment provides quick access by mapping macros to function keys using SET PF n macroname, where n ranges from 1 to 24, streamlining repetitive invocations during sessions. Macros process commands via the pending list, managed by SET PENDING ON to queue operations indicated by "..... pending..." in the prefix area, which can then be executed with ENTER or RESET for batched handling. Customization of XEDIT macros occurs primarily through profile files and user-defined scripts to tailor behavior for specific tasks. The PROFILE XEDIT macro, executed automatically at session startup unless bypassed with NOPROFILE, allows users to set persistent options like SET AUTOSAVE n to automatically save changes after n alterations, preventing data loss during extended edits. User macros extend this by encapsulating repetitive tasks, such as batch changes across files, into reusable scripts stored as files with the XEDIT file type. These customizations enhance productivity by embedding settings directly into workflows, with options like LOAD in profiles to incorporate external files for dynamic configurations. Practical examples illustrate versatility. A simple for global search-and-replace might use a loop to iteratively apply the CHANGE subcommand:
ADDRESS XEDIT
arg old new
'locate /'old'/'
do while rc = 0
   'change /'old'/'new'/'
   'locate /'old'/'
end
This script locates and replaces instances of old with new until none remain, ideal for bulk text updates. For setup, a PROFILE XEDIT example could include:
SET TABS 1 5 10
SET COLOR FILEAREA GREEN
This configures tab stops at columns 1, 5, and 10 while coloring the file area green for better visibility. Error handling in macros employs return codes and messages, such as:
if rc > 0 then do
   'msg Error occurred, RC='rc
   exit rc
end
This displays an error with the return code and exits gracefully if a subcommand fails. Automation via macros streamlines block operations and file management, significantly reducing manual effort in z/VM environments. For block operations, macros can chain subcommands like COPY or MOVE with ranges (e.g., move :5 :10) to handle multi-line edits efficiently across selections. File rings benefit from automated navigation using NEXT, PREV, or RING combined with GET and PUT to edit and transfer data between multiple open files seamlessly. These features boost efficiency for tasks like data migration or report generation, though they are limited by available virtual storage, which may trigger errors like RC=104 for insufficient memory during complex operations. Advanced macros achieve interactivity by combining with subcommands like HELP and ALTER for user-guided processing. The HELP facility provides contextual assistance within macros (e.g., HELP CHANGE), prompting users for input during execution. ALTER enables dynamic modifications, such as replacing characters file-wide (ALTER char1 char2 *), allowing macros to adapt based on real-time user responses via READ for enhanced dialog-like behavior.

History

Origins in VM/CMS

XEDIT originated as a full-screen developed by for the /System Product (VM/SP) environment, specifically designed to enhance editing capabilities within the Conversational Monitor System () of VM/CMS. Created by IBM engineer Xavier de Lamberterie—who is credited with the "X" in the editor's name—XEDIT was introduced to address the limitations of earlier line-mode editors like the original CMS , providing a more efficient tool for mainframe users interacting via block-mode terminals. Its development in the late 1970s focused on interactive editing to improve productivity for users with varying levels of expertise. The editor's design drew influences from several predecessors and contemporary tools, including the CP-67 editor, university-developed editors from with macro capabilities, the editor from around 1970, and elements from and the Interactive System Productivity Facility (ISPF) for full-screen interactions. Released in 1980 as part of VM/SP Release 1 (Program Number 5664-167), XEDIT marked a significant by replacing rudimentary line editors and becoming a standard component of VM/ installations. This initial version, documented in IBM's System Product Editor User's Guide, supported both full-screen and line-mode operations on display and typewriter terminals, enabling interactive editing of disk files. Key innovations in XEDIT's early included block-mode support for efficient multi-line operations, such as deleting or moving blocks of text via simple commands like "DD" for delete. commands—single-character entries in a dedicated area (e.g., "A" for add lines, "C" for copy)—allowed precise, line-oriented manipulations without full subcommand entry, streamlining workflows for programmers and text processors. Additionally, foundational facilities were introduced, based on EXEC 2, enabling users to automate repetitive tasks and extend functionality; as de Lamberterie noted, the design kept the core "relatively small" to facilitate such customizations via EXECs or later macros. These features positioned XEDIT as an essential tool in VM/, copyrighted by Corporation and rapidly adopted for its role in enhancing interactive computing efficiency.

Evolution in z/VM Systems

XEDIT transitioned seamlessly into the operating system upon its initial release in October 2000, inheriting its core functionality from the preceding VM/ESA environment while adapting to the hardware platform. This evolution ensured continued support for full-screen editing in the component of , with ongoing enhancements aligned to major releases. Significant updates appeared in 7.1 (August 2018); 7.2 (September 2020); 7.3 (September 2022), which changed the default case for non-special file types from uppercase to mixed case in XEDIT and related LOAD subcommands; and 7.4 (September 2024), continuing compatibility and service updates as of 2025. XEDIT has long supported editing regular files in the Byte File System (BFS, introduced in ), enabling users to create, modify, and manipulate BFS files directly through XEDIT while requiring appropriate access permissions via the OPENVM PERMIT command. Double-Byte Character Set (DBCS) handling allows subcommands like PRESERVE, SET MSGLINE, and STATUS to operate effectively in extended mode (ETMODE ON) for multilingual text processing. Autosave functionality is available through the SET AUTOSAVE subcommand, which can be invoked at any point in an editing session to automatically save changes at specified intervals, mitigating in long sessions. Multiple screen expansions are facilitated by the SET SCREEN subcommand, permitting division of the virtual screen into multiple logical screens for simultaneous editing of files or views, enhancing productivity in complex workflows. IBM maintained copyright over XEDIT through at least 2024, reflecting continuous development and maintenance tailored for 's role in enterprise mainframe . remains a cornerstone, with z/VM ensuring backward support for legacy behaviors such as saving empty files without alterations, and adaptations for disconnected mode operations to preserve session state. Despite a gradual shift toward alternatives like ISPF in hybrid z/OS-z/VM environments for standardized interfaces, XEDIT's persistence in z/VM stems from its powerful macro facilities, including integration, which enable extensive customization unmatched by many contemporaries.

Adaptations

PC and Windows Ports

KEDIT, developed by Mansfield Software Group, Inc., emerged in the as a prominent adaptation of XEDIT for personal computers, initially targeting environments before expanding to Windows. First made available in 1983, it was designed to replicate the functionality of the mainframe-based XEDIT editor while adapting its capabilities to PC hardware and operating systems. This port maintained high fidelity to XEDIT's core editing paradigm, making it accessible for users transitioning from mainframe systems to personal computing for development tasks. Central to KEDIT's design are retained features such as prefix commands for line-level operations, KEXX macros compatible with XEDIT's scripting needs, split-screen editing for multitasking, and line numbering for precise . These elements preserve XEDIT's line-oriented workflow, enabling efficient text manipulation in a familiar format. Enhancements tailored to PC and Windows platforms include support for intuitive selection and , file filters for handling diverse text types like programs and data s, toolbars for quick access to functions, and drag-and-drop integration. Despite these additions, KEDIT upholds a text-centric core, avoiding full graphical restructuring. KEDIT gained traction among former mainframe professionals adapting to PC-based development. The Windows version, KEDIT for Windows, ensures compatibility with modern systems up to and 11, using a 32-bit with multiple interface (MDI) for file handling and seamless integration with Windows file systems, fonts, and print management. This allows one-file-per-window editing while retaining command-line efficiencies. As a product, KEDIT is available through Mansfield Software Group with a fully featured version that permits of files up to 75 lines for , after which purchase is required for unlimited use; support extends through June 2026, with sales continuing until at least the end of 2025.

Unix and Linux Implementations

One of the early adaptations of XEDIT for Unix systems is SEDIT, a programmer's editor developed by the Benaroya Company and patterned after IBM's XEDIT and ISPF/PDF editors to provide familiarity for mainframe users transitioning to Unix environments. Released for Unix platforms, SEDIT supports a graphical user leveraging the or OPENLOOK X managers, while also accommodating character-mode operation on dumb ASCII terminals through a curses-like for terminal-based . It emulates key XEDIT commands, including block operations, rectangular selections, and multi-file , with enhancements such as unlimited undo/redo, full color support, mouse-driven cut-and-paste across windows, and integration with the S/ for macro automation similar to KEXX. A more modern implementation is uni-XEDIT, developed by The Workstation Group as a direct port of the VM/ XEDIT editor to Unix and Linux systems, targeting programmers and administrators migrating from mainframe environments. Available for various Unix variants including , AIX, , , and distributions on and S/390 architectures, uni-XEDIT preserves the original layout, command structure, and power typing features while adding a full X-based graphical with scroll bars, menus, support, and dynamic resizing. It supports character-mode operation using curses for terminal environments, emulates 3270-style keyboard mappings via a utility for compatibility with ASCII terminals and sessions, and includes uni-REXX for executing KEXX-compatible macros, enabling preserved automation from mainframe workflows with minimal modifications. Additional enhancements focus on modern file handling and multi-file editing, contrasting with modal editors like or by offering a non-modal, English-like command set for immediate productivity among mainframe migrants, though it remains a licensed product rather than open-source. Another Unix adaptation is xedit, a basic included in the distribution, which provides simple full-screen editing but lacks faithful emulation of XEDIT's advanced block-mode commands, macros, or 3270 features, making it more suitable for lightweight tasks than comprehensive mainframe-style editing.

References

  1. [1]
    XEDIT - IBM
    Use the CMS command XEDIT to invoke the editor to create, modify, and manipulate CMS files on disk, SFS files, or BFS regular files in the byte file system.
  2. [2]
    [PDF] 7.3 XEDIT User's Guide - IBM z/VM
    Sep 5, 2022 · This document is designed to give you a working knowledge of the IBM z/VM editor, XEDIT. XEDIT provides a wide range of functions for text ...
  3. [3]
    Structure | The New Yorker
    Jan 6, 2013 · ... Xedit, which was written at I.B.M. by Xavier de Lamberterie and made available in 1980. Kevin Kearney was so interested in Xedit that he ...
  4. [4]
    [PDF] VM AND THE VM COMMUNITY - Lee and Melinda Varian
    Jan 6, 1977 · When asked what other editors influenced the design of Xedit, Xavier de Lamberterie graciously replied with the following note: Well, Xedit ...
  5. [5]
    [PDF] GS11_45_Years_of_Mainframe_...
    ▫ XEDIT was written by IBMer Xavier de Lamberterie as a full-screen. 3270 editor. –XEDIT supported macros written in EXEC and EXEC2 (and later REXX). ▫ Inside ...
  6. [6]
    Abstract for z/VM: XEDIT User's Guide - IBM
    XEDIT, a full-screen and line-mode editor, provides a wide range of functions for text processing and program development.
  7. [7]
    Operation and use - IBM
    Because it is both a full-screen and a line-mode editor, XEDIT can be used on display and on typewriter terminals.
  8. [8]
    The CMS file editor XEDIT - IBM
    CMS provides a file editor called XEDIT, which is a not only a full-screen editor, but a powerful programming tool. XEDIT has functions similar to vi in ...
  9. [9]
    How to Begin Using ISPF - IBM
    If you are not sure where the ISPF licensed program resides, ask your supervisor. ... You can create panel and message libraries by using XEDIT together with the ...
  10. [10]
    Choosing between Using RACF Commands and ISPF Panels - IBM
    On z/VM, if your installation uses XEDIT for display in ISPF, you can even save the listings on your A-disk. You can also save the output from a SEARCH ...
  11. [11]
    SET ETMODE - IBM
    In this mode, XEDIT can manipulate and display DBCS strings on terminals that support Double-Byte Character Sets. Operands. ON: specifies XEDIT recognizes and ...
  12. [12]
    Summary of XEDIT Subcommands and Macros - IBM
    Defines a character that lets you enter a subcommand while in input mode (typewriter terminals only). ... Controls whether the 3270 null character is recognized ...
  13. [13]
    XEDIT Command - IBM
    The XEDIT command invokes the editor in CMS. Its syntax is `Xedit filename filetype` or `Xedit pathname (NAMetype BFS)`. It creates a file if it doesn't exist.
  14. [14]
    z/VM History: Timeline
    1964 IBM Cambridge Scientific Center CP-40 introduced CP/CMS as an experimental time-sharing research project for the IBM System/360 and laid the groundwork ...
  15. [15]
  16. [16]
    Power Typing - IBM
    Power typing is another kind of input mode. The advantage of using power typing is that you can type continuously, as if the screen were one long line.
  17. [17]
    SET TERMINAL - IBM
    With a remote display terminal, full-screen performance depends on the line transmission rate; if it is too slow, you can specify line mode (TYPEWRITER). In ...
  18. [18]
    SET SCREEN - IBM
    Use the SCREEN option to divide the virtual screen into a specified number of logical screens so you can edit multiple files or multiple views of the same file.
  19. [19]
    SET AUTOSAVE Command - IBM
    This command issues a SAVE command automatically, each time you have typed in or changed a certain number of lines. You decide what the number should be.
  20. [20]
    Using the Pending List - IBM
    The pending list is a list of prefix subcommands and macros that have not yet been executed. Every time the editor reads the screen, the pending list is updated ...
  21. [21]
    Recovering Deleted Lines - IBM
    If you delete one or more lines, you can recover them anytime during an editing session by using the RECOVER subcommand.
  22. [22]
  23. [23]
  24. [24]
    Screen Layout - IBM
    Screen Layout. Figure 1. Screen Layout INVENTOR ... XEDIT subcommands that are discussed later. The ... One way you communicate with the editor is to enter XEDIT ...
  25. [25]
  26. [26]
  27. [27]
  28. [28]
    SET COLOR - IBM
    Purpose. Use the COLOR option to associate specific colors with certain areas of the XEDIT screen. Note, this option may be specified as COLOR or COLOUR.
  29. [29]
  30. [30]
    Using Program Function (PF) Keys - IBM
    Each PF key is set to an XEDIT subcommand that is executed when you press the key. Using the PF key saves you the time it takes to type that subcommand.Missing: default | Show results with:default
  31. [31]
    [PDF] z/VM: 7.3 XEDIT User's Guide - IBM
    Nov 22, 2023 · This document is designed to give you a working knowledge of the IBM z/VM editor, XEDIT. XEDIT provides a wide range of functions for text ...
  32. [32]
    Creating an XEDIT Macro - IBM
    You must use the REXX language or the EXEC 2 language when you write XEDIT macros. Otherwise, they are like ordinary execs. For example, the following macro ...Missing: KEXX | Show results with:KEXX
  33. [33]
    Rex Swain's XEDIT Summary
    Jan 4, 1997 · Rex Swain's XEDIT Summary: VM/ESA Release 2.1, CMS Level 10. Last updated 4 January 1997. Links updated 2 January 2011.<|control11|><|separator|>
  34. [34]
    XEDIT Subcommands and Macros - IBM
    This chapter describes the formats and operands of the XEDIT subcommands and macros. Use the CMS command XEDIT, described in Chapter 2 to invoke the editor ...
  35. [35]
  36. [36]
    XEDIT - TextEditors Wiki
    Mar 26, 2021 · It derives its power from the extensive use of powerful editing commands and RexxLanguage as a MacroLanguage. Nearly every powerful function you ...<|control11|><|separator|>
  37. [37]
    ALTER (Macro) - IBM
    Purpose. Use the ALTER macro to change a single character to another character, one that may not be available on your terminal keyboard.
  38. [38]
    [PDF] XEDIT User's Guide - Index of /
    A HELP Facility that provides an online full-screen display of any XEDIT ... XEDIT support of Double-Byte Character Set (DBCS) strings (KANJI, for.
  39. [39]
  40. [40]
    [PDF] 45 Years of Mainframe Virtualization: CP-67/CMS and VM/370 to z/VM
    Aug 5, 2012 · Mainframe virtualization evolved from CP-67/CMS and VM/370 to z/VM, with 45 years of experience, and is now essential for running Linux on ...
  41. [41]
    [PDF] IBM Virtual Machine/ System Product
    typed in power typing mode, after the POWER subcommand was entered. The screen changes in several ways in power typing mode: the prefix and status areas.
  42. [42]
    z/VM - Wikipedia
    First released in October 2000, z/VM remains in active use and development as of 2024. It is directly based on technology and concepts dating back to the 1960s ...
  43. [43]
  44. [44]
    Using XEDIT - IBM
    XEDIT provides a full-screen editor you can use to create and edit BFS files. Using XEDIT, you can edit only regular files (not special files).
  45. [45]
    Using XEDIT Subcommands with DBCS - IBM
    Using XEDIT Subcommands with DBCS. The following subcommands can be used in extended mode (ETMODE ON). Add PREServe SET MSGLine STATus ALL PURge SET MSGMode ...Missing: integration | Show results with:integration
  46. [46]
    [PDF] z/VM: 7.3 XEDIT Commands and Macros Reference - IBM
    Dec 12, 2023 · It contains all the command formats, syntax rules, and operand and option descriptions, listed alphabetically, for the XEDIT command and XEDIT ...
  47. [47]
    [PDF] z/VM: 7.3 Migration Guide - IBM
    Sep 29, 2025 · The upgrade installation process allows you to upgrade from z/VM 7.1 or 7.2 to z/VM 7.3. ... defaults in z/VM: XEDIT Commands and Macros Reference ...
  48. [48]
    KEDIT: What's New - Mansfield Software Group
    KEDIT first became available in 1983, and it has been sold and ... KEDIT, and are in the process of gradually winding down Mansfield Software Group.
  49. [49]
    Converting to KEDIT for Windows - Mansfield Software Group
    Macros. KEDIT for Windows uses KEXX, a built-in subset of the REXX language, as its macro language. All KEXX features supported in text mode KEDIT are still ...
  50. [50]
    KEDIT for Windows Overview
    KEDIT is a text editor for Windows 10/11, used for editing programs, notes, and other text files. It has menus, toolbars, and drag-and-drop editing.Missing: history | Show results with:history
  51. [51]
    KEDIT: Demo Version - Mansfield Software Group
    The KEDIT for Windows demo allows you to try out all of the features of KEDIT, and can edit all of the same files as the full product.Missing: commercial | Show results with:commercial
  52. [52]
    SEDIT-S/REXX
    SEDIT is a powerful Windows and UNIX programmer's editor patterned after IBM's XEDIT and PDF editors. S/REXX is a Windows and UNIX implementation of IBM's ...Missing: Softswitch | Show results with:Softswitch
  53. [53]
    a gui editor - SEDIT-S/REXX
    SEDIT can simultaneously edit several files in several horizontal or vertical windows. A CHARACTER MODE EDITOR. • SEDIT on Unix supports “dumb” ASCII terminals.Missing: Softswitch | Show results with:Softswitch
  54. [54]
    uni-XEDIT Product Description - The Workstation Group
    uniXEDIT is a UNIX text editor, patterned after IBM's VM/CMS System Product Editor, XEDIT, the primary tool used by VM programmers and system administrators.
  55. [55]
    uni-XEDIT Release 2.15 - The Workstation Group
    Release 2.15 of uni-XEDIT is now available for Solaris 7/8/9 Sparc and Intel, AIX 4/5, HP/UX 10/11, NCR UNIX, SGI IRIX, and Linux Intel, and Linux S/390.
  56. [56]
    uni-XEDIT Frequently Asked Questions - The Workstation Group
    uni-XEDIT is a UNIX implementation of IBM's XEDIT System Product Editor for VM/CMS. It provides the familiar features of XEDIT for users who are migrating ...Missing: history | Show results with:history
  57. [57]
    XEDIT - X.Org
    Xedit provides a window consisting of the following four areas: OPTIONS Xedit accepts all of the standard X Toolkit command line options (see X(7)).