Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Text editor
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== [[File:PunchCardDecks.agr.jpg|thumb|A box of [[punched cards]] with several program decks.]] Before text editors existed, computer text was punched into [[punched cards|cards]] with [[keypunch]] machines.<ref>{{Cite book |last1=Louden |first1=Kenneth C. |url=https://books.google.com/books?id=DcgIAAAAQBAJ&pg=PA5 |title=Programming Languages: Principles and Practices |last2=Lambert |first2=Kenneth A. |date=2011-01-26 |publisher=Cengage Learning |isbn=978-1-133-38749-7 |pages=5 |language=en}}</ref> Physical boxes of these thin cardboard cards were then inserted into a [[Punched card input/output|card reader]]. [[Magnetic tape]], [[Magnetic drum|drum]] and [[Hard disk drive|disk]] [[card image]] files created from such card decks often had no line-separation characters at all, and assumed fixed-length{{efn|By the late 1960s editors were available that supported variable-length records.}} 80- or 90-character<ref>{{cite manual | title = UNIVAC II Data Automation System | section = UNIVAC 90-COLUMN PUNCHED 'CARD-TO-MAGNETIC TAPE CONVERTER | section-url = http://bitsavers.org/pdf/univac/univac2/UnivacII_Programming_1957.pdf#page=252 | page = 246 | year = 1957 | url = http://bitsavers.org/pdf/univac/univac2/UnivacII_Programming_1957.pdf | publisher = [[Remington-Rand]] Univac Division of [[Sperry Rand]] Corporation | access-date = December 16, 2022 }}, </ref> records.<ref>{{Cite book |last1=Alavudeen |first1=A. |url=https://books.google.com/books?id=GlL0TO6n320C&pg=PA180 |title=Computer Integrated Manufacturing |last2=Venkateshwaran |first2=N. |date=2008-08-18 |publisher=PHI Learning Pvt. Ltd. |isbn=978-81-203-3345-1 |pages=180 |language=en}}</ref> An alternative to cards was [[Punched tape]]. It could be created by some [[teleprinter]]s (such as the Teletype), which used special characters to indicate ends of records.<ref>{{Cite book |last1=Upton |first1=Eben |url=https://books.google.com/books?id=P6XkDAAAQBAJ&pg=PA232 |title=Learning Computer Architecture with Raspberry Pi |last2=Duntemann |first2=Jeffrey |last3=Roberts |first3=Ralph |last4=Mamtora |first4=Tim |last5=Everard |first5=Ben |date=2016-08-22 |publisher=John Wiley & Sons |isbn=978-1-119-18394-5 |pages=232β234 |language=en}}</ref> Some early operating systems included batch text editors, either integrated with language processors or as separate utility programs; one early example was the ability to edit [[SQUOZE]] source files for SCAT<ref>{{cite manual | title = SOS Reference Manual | section = Modify and Load | section-url = http://bitsavers.org/pdf/ibm/share/SOS_Reference_Manual_Jun61.pdf#page=95 | page = 05.01.01 | date = November 1959 | orig-date = Distribution No.1 published in 1959 | url = http://bitsavers.org/pdf/ibm/share/SOS_Reference_Manual_Jun61.pdf | publisher = [[IBM]] | access-date = December 15, 2022 }} </ref> in the [[SHARE Operating System]]. The first interactive text editors were [[Line editor|"line editors"]] oriented to teleprinter- or [[typewriter]]-style terminals without displays. Commands (often a single keystroke) effected edits to a file at an imaginary insertion point called the "cursor". Edits were verified by typing a command to print a small section of the file, and periodically by printing the entire file. In some line editors, the cursor could be moved by commands that specified the line number in the file, text [[string (computer science)|strings]] (context) for which to search, and eventually [[regular expression]]s. Line editors were major improvements over keypunching. Some line editors could be used by keypunch; editing commands could be taken from a deck of cards and applied to a specified file. Some common line editors supported a "verify" mode in which change commands displayed the altered lines. When [[computer terminal]]s with video screens became available, screen-based text editors (sometimes called just "screen editors"){{anchor|screen-based text editor}} became common. One of the earliest full-screen editors was [[O26 (text editor)|O26]], which was written for the operator console of the [[CDC 6000 series]] computers in 1967. Another early full-screen editor was [[Vi (text editor)|vi]]. Written in the 1970s, it is still a standard editor<ref>{{cite web |url = http://www.opengroup.org/onlinepubs/009695399/utilities/vi.html |publisher = The IEEE and The Open Group |title = The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition |year = 2004 |access-date = January 18, 2010 }}</ref> on [[Unix]] and [[Linux]] operating systems. Also written in the 1970s was the [[UCSD Pascal]] Screen Oriented Editor, which was optimized both for indented source code and general text.<ref>{{Cite journal |last1=L. Bowles |first1=Kenneth |last2=Hollan |first2=James |date= 1978-07-01 |title=An introduction to the UCSD PASCAL system|url=https://www.researchgate.net/publication/226182032 |journal=Behavior Research Methods |volume=10 |issue=4 |pages=531β534 |doi= 10.3758/BF03205341|doi-access=free }}</ref> [[Emacs]], one of the first [[free and open source software|free and open-source software]] projects, is another early full-screen or real-time editor, one that was [[port (software)|ported]] to many systems.<ref>{{cite web |url = http://www.ibm.com/developerworks/aix/tutorials/au-emacs1/index.html |title = Introducing the Emacs editing environment |website = [[IBM]] |access-date = 2014-06-06 |archive-date = 2014-06-06 |archive-url = https://web.archive.org/web/20140606233857/http://www.ibm.com/developerworks/aix/tutorials/au-emacs1/index.html |url-status = dead }}</ref> The 1977 [[Commodore PET]] was the first mass-market computer to feature a full-screen editor. A full-screen editor's ease-of-use and speed (compared to the line-based editors) motivated many early purchases of video terminals.<ref>{{cite web |url = http://www.multicians.org/mepap.html |title = Multics Emacs: The History, Design and Implementation |quote = Some Multics users purchased these terminals ..., using them either as "glass teletypes" or via "local editing." }}</ref> The core data structure in a text editor is the one that manages the string (sequence of characters) or list of [[Storage record|record]]s that represents the current state of the file being edited. While the former could be stored in a single long consecutive [[array data structure|array]] of characters, the desire for text editors that could more quickly insert text, delete text, and undo/redo previous edits led to the development of more complicated sequence data structures.<ref> Charles Crowley. [https://www.cs.unm.edu/~crowley/papers/sds.pdf "Data Structures for Text Sequences"]. Section [http://www.cs.unm.edu/~crowley/papers/sds/node1.html "Introduction"]. </ref> A typical text editor uses a [[gap buffer]], a [[linked list]] of lines (as in [[PaperClip]]), a [[piece table]], or a [[rope (data structure)|rope]], as its sequence data structure.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)