TSE: Key

9 views
Skip to first unread message

knud van eeden

unread,
Mar 26, 2026, 12:44:19 PM (7 days ago) Mar 26
to SemWare TSE Pro Text Editor
Hello,

FYI:

 Q. TSE: Key: History: TimeLine: <Shift Del> <Ctrl Ins> <Shift Ins> <Ctrl C> <Ctrl V> <Ctrl X> / CutToWinClip() / CopyToWinClip() / PasteFromWinClip() / <Ctrl A> / MarkAll() / <Ctrl Z> / Undo()

Year:

1973: Larry Tesler (who did study computer science at Stanford University)
      had started to work at Xerox (he got this job via Alan Kay,
      the inventor of the computer language SmallTalk, they had worked together
      at the 'S'tanford 'A'rtificial 'I'ntelligence 'L'aboratory (=SAIL) in the late 1960s).

      He invented and developed 'cut', 'copy' and 'paste' for the Xerox
      Gypsy text editor.


      Note: 'find & replace': Besides inventing the 'cut', 'copy' and
                              'paste' functionality, he also invented
                              the

                               'find and replace'

                              where you enter text in a form that can
                              be edited before searching.

      The Xerox Gypsy text editor was running on the Xerox Alto
      computer, the first computer system designed around a 'G'raphical
      'U'ser 'I'nterface (=GUI).

       Larry Tesler

      This Xerox 'Gypsy' text editor used so called 'modes', similar to
      e.g. the VIM text editor. So you have e.g. a 'command' mode in
      which you type editor commands and and 'edit' mode in which you
      type your usual text. Tesler who favored strongly 'modeless' made
      sure that the Gypsy text editor supported both, and 'mode' and
      'modeless'.

       Alto System Project: Larry Tesler demonstration of Gypsy

      Note: Almost all other text editors, including TSE, are typically
            'modeless' editors.

      Note: Also 'cut', 'copy' and 'paste' are 'modeless' commands as
            you can type them in either a 'mode' state or also in a
            'non-mode' state.

      Born in 1945 in New York, USA, he studied computer science at
      Stanford University.

      Then he started in 1973 to work for Xerox (a printer company).

      In 1973 he invented and proposed the names

       cut, copy, paste

      functionalities which would become among the most commonly used
      features by users on theircomputers.

       <Ctrl X>    to remember: where 'X' looks like a pair of scissors used to cut or extract something

       <Ctrl C>    to remember: where 'C' is the first letter from 'C'opy

       <Ctrl V>    to remember: where 'V' looks like a physical symbol
                                pointing down to indicate to 'insert'
                                down something (e.g. insert into some text)

      Note: The 'cut' and the 'paste' command were reportedly inspired
            by old time editing that involved actually physically
            cutting portions of printed text on paper and affixing them
            elsewhere with real adhesive.

      Note: He was also the inventor of the word 'user-friendly', so
            that gives some hints about his way of thinking, e.g. wanting to have
            something like cut and paste instead of all the time having to
            repeatedly re-typing the exact same text manually.

             Every smart solution born from laziness

      He invented also the


1974: Beginning in 1974, he and colleagues at Xerox PARC implemented
      several text editors that used cut/copy-and-paste commands to
      move and copy text.

1979: December: Steve Jobs visited the Xerox
      'P'alo 'A'lto 'R'esearch 'C'enter (=PARC) in December 1979.

       Note: The Agreement: The visit was arranged as part of a deal
             allowing Xerox to invest in Apple, giving them access to
             purchase Apple stock options in exchange for a
             demonstration of their technology.

      It was e.g. Larry Tesler at Xerox who demonstrated personally to
      Steve Jobs e.g. the cut, copy and paste command.

      Tesler demonstrated to Jobs the Xerox Alto computer, including
      its computer mouse-driven GUI features, the Gypsy text editor,
      and the Smalltalk computer language.

      While the Xerox Alto computer had been a mere curiosity for
      Xerox, Jobs saw a huge amount of potential in the graphical
      interface, and immediately after returning to Apple's
      headquarters, set his team on creating a similar graphical user
      interface for their first product, the Apple Lisa.

1980: Tesler was one of several Xerox PARC employees who left the Xerox
      company in 1980 to join Apple Computer following Jobs's visits.

1983: 13 January: The Apple Lisa computer was released to the public on
      January 19, 1983. It had implemented and incorporated e.g. Tesler's
      cut, copy and paste command.

      Note: As the Apple computers do not have a 'CTRL' key, they used
            the Apple 'Command' key instead.

       <Command X> for cut

       <Command C> for copy

       <Command V> for paste

1984: The popular Apple MacIntosh computer was released, which included the
      cut, copy and paste commands.

1985: The clipboard and basic cut/copy/paste functions were present in
      Microsoft Windows version 1.01.

1987: IBM released their 'C'ommon 'U'ser 'A'ccess (=CUA) standard guide lines.
      such as the

       1. consistent shortcut keys like F1 for help,

       2. standardized menu bar layout

       3. standardized pull-down menus

       4. user interface behaviors

      to ensure consistency across the emerging PC systems and IBM's
      OS/2 operating system.

      IBM Common User Access

      The CUA standard guide lines for shortcut keys define e.g.

       <Shift Del> for cut

       <Ctrl Ins> for copy

       <Shift Ins> for paste

      Note: The design of TSE follows many of those IBM CUA standard
            guide lines.

            See e.g. also the 'cuamark.s' macro in the TSE \MAC
            subdirectory.

1987: Microsoft began implementing the IBM Common User Access (=CUA)
      standard guide lines in its software, most notably in the
      Microsoft Windows version 2.0 operating system, following its
      publication in 1987 as part of IBM's Systems Application
      Architecture.

1991: <Ctrl C> and related shortcuts appeared in Microsoft Word for
      Windows version 2.0.

1992: Microsoft formally adopted the standard for copy (along with for
      cut and for paste) primarily with the release of Microsoft
      Windows version 3.1 in 1992, which aligned with the widespread
      adoption of the IBM Common User Access (CUA) standards.

      Note: Because the IBM computer keyboards do not have such an Apple
            'Command' key, they used the <Ctrl> key instead.

       <Ctrl X> for cut

       <Ctrl C> for copy

       <Ctrl V> for paste

       further:

       <Ctrl A> for select 'A'll (where 'A' is the first letter of 'A'll.

       <Ctrl Z> for undo

      Note: While Apple popularized the "C/V/X" layout with the Apple
            Lisa and Apple Macintosh in 1983-1984, Apple used the
            'Command' key instead of the <Ctrl> key.

      Note: Microsoft adopted these keys for Microsoft Windows to ease
            the transition for users moving from DOS to Windows,
            despite traditionally acting as a "break" or stop command
            in command-line environments.

2026: Currently latest TSE version 4.50.20 for Microsoft Windows has
      implemented some of these keys (see e.g. your .ui file used):

       cut:
       <Ctrl X>
       <Shift Del>
       CutToWinClip()

       copy:
       <Ctrl C>
       <Ctrl Ins)
       CopyToWinClip()

       paste:
       <Ctrl V>
       <Shift Ins>
       PasteFromWinClip())

       Further:

       select all:
       <Ctrl A>
       MarkAll()

       undo:
       <Ctrl Z>
       Undo()

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:21:45>grep -i "<Ctrl X>" *.*

File: F:\WORDPROC\tse_beta\ui\brief.ui
    "<ctrl x>                 SaveAllAndExit"
<ctrl x>                 SaveAllAndExit()
File: F:\WORDPROC\tse_beta\ui\tse.ui
<Ctrl x>                ExecMacro()     // Execute SAL macro
File: F:\WORDPROC\tse_beta\ui\tsejr.ui
<Ctrl x>                    Down()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Ctrl x>                CutToWinClip()
<Ctrl x>                CutToWinClip()
//<Ctrl x>                ExecMacro()     // Execute SAL macro ???
File: F:\WORDPROC\tse_beta\ui\ws.ui
<ctrl x>                Down()

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:21:56>grep -i "<Shift Del>" *.*

File: F:\WORDPROC\tse_beta\ui\brief.ui
<Shift Del>             CutToWinClip()
File: F:\WORDPROC\tse_beta\ui\tse.ui
<Shift Del>             CutToWinClip()
File: F:\WORDPROC\tse_beta\ui\tsejr.ui
<Shift Del>             CutToWinClip()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Shift Del>             CutToWinClip()
File: F:\WORDPROC\tse_beta\ui\ws.ui
   <shift del>             Cut
<Shift Del>             CutToWinClip()

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:28:45>grep -i "<Ctrl C>" *.*

File: F:\WORDPROC\tse_beta\ui\brief.ui
    "<ctrl c>                 CenterLine"
<ctrl c>                bCenterLine()
File: F:\WORDPROC\tse_beta\ui\tse.ui
<Ctrl c>                GotoColumn()
File: F:\WORDPROC\tse_beta\ui\tsejr.ui
<Ctrl c>                    PageDown()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Ctrl c>                CopyToWinClip()
<Ctrl c>                CopyToWinClip()
//<Ctrl c>                GotoColumn() ???
File: F:\WORDPROC\tse_beta\ui\ws.ui
<ctrl c>                PageDown()

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:29:23>grep -i "<Ctrl Ins>" *.*

File: F:\WORDPROC\tse_beta\ui\brief.ui
<Ctrl Ins>              CopyToWinClip()
File: F:\WORDPROC\tse_beta\ui\tse.ui
<Ctrl Ins>              CopyToWinClip()
File: F:\WORDPROC\tse_beta\ui\tsejr.ui
<Ctrl Ins>              CopyToWinClip()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Ctrl Ins>              CopyToWinClip()
File: F:\WORDPROC\tse_beta\ui\ws.ui
   <ctrl ins>              Copy
<Ctrl Ins>              CopyToWinClip()

f:\wordproc\tse_beta\ui Thu  3/26/26 17:30:32>

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:30:32>grep -i "<Ctrl V>" *.*

File: F:\WORDPROC\tse_beta\ui\tsejr.ui
<Ctrl v>                    ToggleInsert()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Ctrl v>                PasteFromWinClip()
<Ctrl v>                PasteReplaceFromWinClip()
//<Ctrl v>                Toggle(LineDrawing) ???
File: F:\WORDPROC\tse_beta\ui\ws.ui
<ctrl v>                ToggleInsert()

f:\wordproc\tse_beta\ui Thu  3/26/26 17:31:47>

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:31:47>grep -i "<Shift Ins>" *.*

File: F:\WORDPROC\tse_beta\ui\brief.ui
<Shift Ins>             PasteFromWinClip()
File: F:\WORDPROC\tse_beta\ui\tse.ui
<Shift Ins>             PasteFromWinClip()
File: F:\WORDPROC\tse_beta\ui\tsejr.ui
<Shift Ins>             PasteFromWinClip()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Shift Ins>             PasteReplaceFromWinClip()
File: F:\WORDPROC\tse_beta\ui\ws.ui
   <shift ins>             Paste
<Shift Ins>             PasteFromWinClip(column_replace_mode)

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:32:56>grep -i "<Ctrl A>" *.*

File: F:\WORDPROC\tse_beta\ui\brief.ui
    <Ctrl A>    mAsciiChart()
File: F:\WORDPROC\tse_beta\ui\tse.ui
    <Ctrl A>    mAsciiChart()
<Ctrl a>                mAsciiChart()
File: F:\WORDPROC\tse_beta\ui\tsejr.ui
    <Ctrl A>    mAsciiChart()
    "             WordLeft                 <Ctrl CursorLeft>, <Ctrl A>"
<Ctrl a>                    WordLeft()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Ctrl a>                MarkAll()
//<Ctrl a>                mAsciiChart() ???
File: F:\WORDPROC\tse_beta\ui\ws.ui
    <Ctrl A>    mAsciiChart()
<ctrl a>                WordLeft()

===

f:\wordproc\tse_beta\ui Thu  3/26/26 17:36:17>grep -i "<Ctrl Z>" *.*

File: F:\WORDPROC\tse_beta\ui\brief.ui
    "<ctrl z>                 ZoomWindow"
<ctrl z>                 ZoomWindow()
File: F:\WORDPROC\tse_beta\ui\tse.ui
<Ctrl z>                Scrolldown()
File: F:\WORDPROC\tse_beta\ui\tsejr.ui
    "             ScrollDown               <Ctrl Z>"
<Ctrl z>                    ScrollDown()
File: F:\WORDPROC\tse_beta\ui\win.ui
<Ctrl Z>                Undo()
File: F:\WORDPROC\tse_beta\ui\ws.ui
<ctrl z>                ScrollDown()

===

See also:

Cut, copy and paste

with friendly greetings
Knud van Eeden

William W. Viergever

unread,
Mar 26, 2026, 1:14:39 PM (7 days ago) Mar 26
to sem...@googlegroups.com, sem...@googlegroups.com
Awesome trip down memory lane; thanks Knud 👍

--------------------------------------------------------------
William W. Viergever
Viergever & Associates
Hospital & Healthcare Data Analysis / Systems Design & Development
20281 Eastwood Cir 
Huntington Beach, CA 92646
wil...@viergever.net
www.viergever.net
 (916) 715-1768
--------------------------------------------------------------

On Mar 26, 2026, at 9:44 AM, 'knud van eeden' via SemWare TSE Pro text editor <sem...@googlegroups.com> wrote:


--

---
You received this message because you are subscribed to the Google Groups "SemWare TSE Pro text editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to semware+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/semware/886374047.413919.1774543455258%40mail.yahoo.com.
Reply all
Reply to author
Forward
0 new messages