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