[03/12/25 20:30:33] INFO     PromptTask f3382262af77452c8e0a324f683322dd        
                             Input: Do two searches, one for 'vim' and one for  
                             'emacs'.                                           
[03/12/25 20:30:35] INFO     Subtask 3574ebd2cdb647c687849dea8b3a8e7c           
                             Actions: [                                         
                               {                                                
                                 "tag": "call_iifdFSV0yUMhGqPuZOIVWZHe",        
                                 "name": "WebSearchTool",                       
                                 "path": "search",                              
                                 "input": {                                     
                                   "values": {                                  
                                     "query": "vim"                             
                                   }                                            
                                 }                                              
                               },                                               
                               {                                                
                                 "tag": "call_EpPoju6hQvRzl6aqpcxksSRc",        
                                 "name": "WebSearchTool",                       
                                 "path": "search",                              
                                 "input": {                                     
                                   "values": {                                  
                                     "query": "emacs"                           
                                   }                                            
                                 }                                              
                               }                                                
                             ]                                                  
[03/12/25 20:30:36] INFO     Subtask 3574ebd2cdb647c687849dea8b3a8e7c           
                             Response: Error searching 'vim' with               
                             DuckDuckGoWebSearchDriver: Error searching 'vim'   
                             with DuckDuckGo: https://html.duckduckgo.com/html  
                             202 Ratelimit                                      
                                                                                
                             Error searching 'emacs' with                       
                             DuckDuckGoWebSearchDriver: Error searching 'emacs' 
                             with DuckDuckGo: https://html.duckduckgo.com/html  
                             202 Ratelimit                                      
                    INFO     PromptTask f3382262af77452c8e0a324f683322dd        
                             Output: Error searching 'vim' with                 
                             DuckDuckGoWebSearchDriver: Error searching 'vim'   
                             with DuckDuckGo: https://html.duckduckgo.com/html  
                             202 Ratelimit                                      
                                                                                
                             Error searching 'emacs' with                       
                             DuckDuckGoWebSearchDriver: Error searching 'emacs' 
                             with DuckDuckGo: https://html.duckduckgo.com/html  
                             202 Ratelimit                                      
Error searching 'vim' with DuckDuckGoWebSearchDriver: Error searching 'vim' with DuckDuckGo: https://html.duckduckgo.com/html 202 Ratelimit
Error searching 'emacs' with DuckDuckGoWebSearchDriver: Error searching 'emacs' with DuckDuckGo: https://html.duckduckgo.com/html 202 Ratelimit
                    INFO     PromptTask f8c230adb8a44485995e92b17d7847fa        
                             Input: Compare and contrast vim and emacs:         
                                                                                
                             Error searching 'vim' with                         
                             DuckDuckGoWebSearchDriver: Error searching 'vim'   
                             with DuckDuckGo: https://html.duckduckgo.com/html  
                             202 Ratelimit                                      
                                                                                
                             Error searching 'emacs' with                       
                             DuckDuckGoWebSearchDriver: Error searching 'emacs' 
                             with DuckDuckGo: https://html.duckduckgo.com/html  
                             202 Ratelimit                                      
[03/12/25 20:30:38] INFO     Subtask 527fcb46b29c4036a9b887def1984be6           
                             Actions: [                                         
                               {                                                
                                 "tag": "call_NoVkDLwVXrKuOlkHKiw01rFM",        
                                 "name": "WebScraperTool",                      
                                 "path": "get_content",                         
                                 "input": {                                     
                                   "values": {                                  
                                     "url":                                     
                             "https://en.wikipedia.org/wiki/Vim_(text_editor)"  
                                   }                                            
                                 }                                              
                               },                                               
                               {                                                
                                 "tag": "call_hshV0uoyxbSzCatUlmnixibx",        
                                 "name": "WebScraperTool",                      
                                 "path": "get_content",                         
                                 "input": {                                     
                                   "values": {                                  
                                     "url":                                     
                             "https://en.wikipedia.org/wiki/Emacs"              
                                   }                                            
                                 }                                              
                               }                                                
                             ]                                                  
[03/12/25 20:30:40] INFO     Subtask 527fcb46b29c4036a9b887def1984be6           
                             Response: Vim (text editor)                        
                             |                                                  
                             |---|                                              
                             [Bram Moolenaar](/wiki/Bram_Moolenaar)[Stable      
                             release](/wiki/Software_release_life_cycle)        
                             [[1]](#cite_note-wikidata-86c3b46767f2c0f369b991873
                             7e21007c788f6b2-v18-1)                             
                             [/ 2 January                                       
                             2024](https://www.wikidata.org/wiki/Q131382?uselang
                             =en#P348)                                          
                             [Repository](/wiki/Repository_(version_control))   
                             [C](/wiki/C_(programming_language)),[Vim           
                             script](#Vim_script)[Operating                     
                             system](/wiki/Operating_system)                    
                             [Unix](/wiki/Unix),[Linux](/wiki/Linux),[Windows   
                             NT](/wiki/Windows_NT),[MS-DOS](/wiki/MS-DOS),[macOS
                             ](/wiki/MacOS),[iOS](/wiki/IOS),[Android](/wiki/And
                             roid_(operating_system)),[Haiku](/wiki/Haiku_(opera
                             ting_system)),[AmigaOS](/wiki/AmigaOS),[MorphOS](/w
                             iki/MorphOS)[Type](/wiki/Software_categories#Catego
                             rization_approaches)                               
                             [Text                                              
                             editor](/wiki/Text_editor)[License](/wiki/Software_
                             license)                                           
                                                                                
                             [[2]](#cite_note-2)[[3]](#cite_note-3)[[4]](#cite_n
                             ote-uganda.txt-4)[www](https://www.vim.org/) .vim  
                             .orgVim ([/vɪm/](/wiki/Help:IPA/English)           
                             [ⓘ](/wiki/File:En-us-vim.oga);[[5]](#cite_note-pron
                             ounc-5) vi improved) is a [free and                
                             open-source](/wiki/Free_and_open-source),          
                             [screen-based text                                 
                             editor](/wiki/Screen-based_text_editor) program. It
                             is an improved [clone](/wiki/Clone_(computing)) of 
                             [Bill Joy](/wiki/Bill_Joy)'s                       
                             [vi](/wiki/Vi_(text_editor)). Vim's author, [Bram  
                             Moolenaar](/wiki/Bram_Moolenaar), derived Vim from 
                             a port of the [Stevie](/wiki/Stevie_(text_editor)) 
                             editor for [Amiga](/wiki/Amiga)[[6]](#cite_note-6) 
                             and released a version to the public in 1991. Vim  
                             is designed for use both from a [command-line      
                             interface](/wiki/Command-line_interface) and as a  
                             standalone application in a [graphical user        
                             interface](/wiki/Graphical_user_interface).[[7]](#c
                             ite_note-:2-7)                                     
                                                                                
                             Since its release for the Amiga,                   
                             [cross-platform](/wiki/Cross-platform) development 
                             has made it available on [many other               
                             systems](#Availability). In 2018, it was voted the 
                             most popular editor amongst [Linux                 
                             Journal](/wiki/Linux_Journal)                      
                             readers;[[8]](#cite_note-8) in 2015 the [Stack     
                             Overflow](/wiki/Stack_Overflow) developer survey   
                             found it to be the third most popular text         
                             editor,[[9]](#cite_note-9) and in 2019 the fifth   
                             most popular development                           
                             environment.[[10]](#cite_note-10)                  
                             History                                            
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=1)]                                      
                                                                                
                             Vim's forerunner, [Stevie (ST Editor for VI        
                             Enthusiasts)](/wiki/Stevie_(text_editor)), was     
                             created by Tim Thompson for the [Atari             
                             ST](/wiki/Atari_ST) in                             
                             1987[[11]](#cite_note-stevie-11)[[12]](#cite_note-s
                             tevie-usenet-12) and further developed by Tony     
                             Andrews[[11]](#cite_note-stevie-11)[[13]](#cite_not
                             e-v15i026-13) and G.R. (Fred)                      
                             Walter.[[14]](#cite_note-14)[[15]](#cite_note-15)  
                             It was one of the first popularized clones of      
                             [Vi](/wiki/Vi_(text_editor)), and did not use Vi's 
                             source code. The source code for Vi used the       
                             [Ed](/wiki/Ed_(text_editor)) text editor developed 
                             under AT&T, and therefore Vi could only be used by 
                             those with an AT&T source license.[[citation       
                             needed](/wiki/Wikipedia:Citation_needed)] Basing   
                             Vim on the source code for Stevie meant the program
                             could be distributed without requiring the AT&T    
                             source license.                                    
                                                                                
                             Basing his work on Stevie, [Bram                   
                             Moolenaar](/wiki/Bram_Moolenaar) began working on  
                             Vim for the [Amiga](/wiki/Amiga) computer in 1988, 
                             with the first public release (Vim v1.14) in       
                             1991.[[16]](#cite_note-16)[[17]](#cite_note-17)[[be
                             tter source needed](/wiki/Wikipedia:NOTRS)]        
                             At the time of its first release, the name "Vim"   
                             was an acronym for "Vi IMitation", but this changed
                             to "'Vi IMproved" late in                          
                             1993.[[18]](#cite_note-vile-FAQ-18)                
                             Release history                                    
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=2)]                                      
                             | Date | Version | Changes and additions |         
                             |---|---|---|                                      
                             | June, 1987 | N/A | Tim Thompson releases Stevie  
                             (ST editor for VI enthusiasts), a limited vi clone 
                             for the                                            
                             |                                                  
                                                                                
                             [OS/2](/wiki/OS/2), releasing version 3.10         
                             on[Usenet](/wiki/Usenet).[[11]](#cite_note-stevie-1
                             1)[[13]](#cite_note-v15i026-13)[[19]](#cite_note-hi
                             story-19)[Amiga](/wiki/Amiga)on[Fred               
                             Fish](/wiki/Fred_Fish)disk                         
                             #591[[20]](#cite_note-20)[[19]](#cite_note-history-
                             19)[[18]](#cite_note-vile-FAQ-18)Vim now competes  
                             with[vi](/wiki/Vi_(text_editor)).[[21]](#cite_note-
                             filewatcher-21)[[18]](#cite_note-vile-FAQ-18)[[19]]
                             (#cite_note-history-19)[[19]](#cite_note-history-19
                             )[[22]](#cite_note-22)[Graphical user              
                             interface](/wiki/Graphical_user_interface)[[19]](#c
                             ite_note-history-19)[[23]](#cite_note-23)[Syntax   
                             highlighting](/wiki/Syntax_highlighting),          
                                                                                
                             basic[scripting](/wiki/Scripting_language)(user    
                             defined functions, commands,                       
                             etc.)[Bug](/wiki/Software_bug)fixes, various       
                             improvements[Tcl](/wiki/Tcl)interface,             
                             etc.[[19]](#cite_note-history-19)[[24]](#cite_note-
                             24)[Folding](/wiki/Folding_editor),[plugins](/wiki/
                             Plug-in_(computing)), multi-language,              
                             etc.[[25]](#cite_note-25)[Spell                    
                             checking](/wiki/Spell_checker),[code               
                             completion](/wiki/Autocomplete), tab pages         
                             (multiple viewports/window layouts), current line  
                             and column highlighting, undo branches, and        
                             more[[26]](#cite_note-26)[Lua](/wiki/Lua_(programmi
                             ng_language))support, Python3                      
                             support,[Blowfish](/wiki/Blowfish_(cipher))encrypti
                             on, persistent                                     
                             undo/redo[[27]](#cite_note-27)[[28]](#cite_note-28)
                             [[29]](#cite_note-29)[[30]](#cite_note-30)[[31]](#c
                             ite_note-31)[[32]](#cite_note-32)License           
                                                                                
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=3)]                                      
                             Vim is released under the Vim                      
                             [license](/wiki/Software_license), which includes  
                             some [charityware](/wiki/Careware) clauses that    
                             encourage users who enjoy the software to consider 
                             donating to children in                            
                             [Uganda](/wiki/Uganda).[[4]](#cite_note-uganda.txt-
                             4) The Vim license is compatible with the [GNU     
                             General Public                                     
                             License](/wiki/GNU_General_Public_License) through 
                             a special clause allowing distribution of modified 
                             copies under the [GNU GPL version 2.0 or           
                             later](/wiki/GNU_General_Public_License).[[4]](#cit
                             e_note-uganda.txt-4)                               
                             Interface                                          
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=4)]                                      
                             Like [vi](/wiki/Vi_(text_editor)), Vim's interface 
                             is not based on [menus](/wiki/Menu_(computing)) or 
                             [icons](/wiki/Icon_(computing)) but on commands    
                             given in a [text user                              
                             interface](/wiki/Text_user_interface); its         
                             [GUI](/wiki/GUI) mode, gVim, adds menus and        
                             toolbars for commonly used commands but the full   
                             functionality is still expressed through its       
                             [command line](/wiki/Command_line) mode. Vi (and by
                             extension Vim) tends to allow a typist to keep     
                             their fingers on the [home row](/wiki/Home_row),   
                             which can be an advantage for a [touch             
                             typist](/wiki/Touch_typing).[[33]](#cite_note-Lamb1
                             998-33)                                            
                                                                                
                             Vim has a built-in                                 
                             [tutorial](/wiki/Tutorial#Computer-based_tutoring) 
                             for beginners called vimtutor, which is usually    
                             installed along with Vim, but is a separate        
                             executable and can be run with a shell             
                             command.[[34]](#cite_note-34) The Vim [Users'      
                             Manual](/wiki/User_guide) details Vim's features   
                             and can be read from within Vim, or found          
                             online.[[35]](#cite_note-35)[[36]](#cite_note-vimbo
                             ok-36)                                             
                             Vim also has a built-in help facility (using the   
                             :help                                              
                             command) which allows users to query and navigate  
                             through commands and features.                     
                             Registers                                          
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=5)]                                      
                                                                                
                             Vim features various special memory entries called 
                             registers (not to be confused with hardware or     
                             [processor registers](/wiki/Processor_register)).  
                             When [cutting, deleting, copying, or               
                             pasting](/wiki/Cut,_copy,_and_paste) text the user 
                             can choose to store the manipulated text in a      
                             register. There are 36 general-purpose registers   
                             associated with letters and numbers ([a-z0-9]) and 
                             a range of special ones that either contain special
                             values (current filename, last command, etc.) or   
                             serve a special purpose.[[7]](#cite_note-:2-7): 85 
                             Modes                                              
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=6)]                                      
                             Like vi, vim supports multiple editing modes.      
                             Depending on the mode, typed characters are        
                             interpreted either as sequences of commands or are 
                             inserted as text. In Vim there are 14 editing      
                             modes, 7 basic modes and 7                         
                             variants:[[37]](#cite_note-37)                     
                             - Normal mode – used for editor commands. This is  
                             generally the default mode and by default hitting  
                             ESC returns the editor to this mode.               
                             - Insert mode – used for typing text in a way      
                             similar to most modern editors. In this mode,      
                             opened text in buffers can be modified with the    
                             text entered from the keyboard.                    
                                                                                
                             [[38]](#cite_note-:1-38)[[33]](#cite_note-Lamb1998-
                             33): 12 - Visual mode – used to select areas of    
                             text. Commands can be run on the selected area –   
                             moving, editing, filtering via built-in or external
                             command, etc.                                      
                             - Visual linewise, a subtype of visual mode which  
                             selects one or more whole lines                    
                             - Visual blockwise, another subtype which selects a
                             rectangular block of text across one or more lines 
                             - Select mode – similar to visual, but the commands
                             are not interpreted, instead, highlighted text is  
                             directly replaced by input from the keyboard;      
                             similar to the selection mode used in editors on   
                             Microsoft Windows platforms                        
                             - Command-line or Cmdline mode – provides a single 
                             line input at the bottom of the Vim window.        
                             Commands (beginning with :) and some other keys for
                             specific actions (including pattern search and the 
                             filter command) activate this mode. On completion  
                             of the command, Vim returns to the previous mode.  
                             [[38]](#cite_note-:1-38)[[33]](#cite_note-Lamb1998-
                             33): 12 - Ex mode mode – accepts a sequence of     
                             commands.                                          
                                                                                
                             - Terminal-Job mode - Interacting with a job in a  
                             terminal window.                                   
                             Customization                                      
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=7)]                                      
                             Vim is highly customizable and extensible, making  
                             it an attractive tool for users who demand a large 
                             amount of control and flexibility over their text  
                             editing environment.[[39]](#cite_note-39) Text     
                             input is facilitated by a variety of features      
                             designed to increase keyboard efficiency. Users can
                             execute complex commands with "key bindings," which
                             can be customized and extended. The "recording"    
                             feature allows for the creation of                 
                             [macros](/wiki/Macro_(computer_science)#Keyboard_an
                             d_mouse_macros) to automate sequences of keystrokes
                             and call internal or user-defined functions and    
                             mappings. Abbreviations, similar to macros and key 
                             mappings, facilitate the expansion of short strings
                             of text into longer ones and can also be used to   
                             correct mistakes. Vim also features an "easy" mode 
                             for users looking for a simpler text editing       
                             solution.[[40]](#cite_note-40)                     
                                                                                
                             There are many [plugins](/wiki/Plug-in_(computing))
                             available that extend or add new functionality to  
                             Vim. These plugins are usually written in Vim's    
                             internal scripting language, vimscript (also known 
                             as VimL),[[41]](#cite_note-41) but can be written  
                             in other languages as well.                        
                             There are projects bundling together complex       
                             scripts and customizations and aimed at turning Vim
                             into a tool for a specific task or adding a major  
                             flavour to its behaviour. Examples include Cream,  
                             which makes Vim behave like a click-and-type       
                             editor, or VimOutliner, which provides a           
                             comfortable [outliner](/wiki/Outliner) for users of
                             Unix-like systems.                                 
                             Features and improvements over vi                  
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=8)]                                      
                             Vim has a vi compatibility mode, but when that mode
                             is not used, Vim has many enhancements over        
                             vi.[[42]](#cite_note-vimhelp-42) However even in   
                             compatibility mode, Vim is not entirely compatible 
                             with vi as defined in the [Single Unix             
                             Specification](/wiki/Single_UNIX_Specification)[[43
                             ]](#cite_note-43) and [POSIX](/wiki/POSIX) (e.g.,  
                             Vim does not support vi's open mode, only visual   
                             mode). Vim's developers state that it is "very much
                             compatible with Vi".[[44]](#cite_note-vimfaq-44)   
                                                                                
                             Some of Vim's enhancements include                 
                             [completion](/wiki/Autocomplete) functions,        
                             [comparison](/wiki/Data_comparison) and            
                             [merging](/wiki/Merge_(revision_control)) of files 
                             (known as vimdiff), a comprehensive integrated help
                             system, extended [regular                          
                             expressions](/wiki/Regular_expression), [scripting 
                             languages](/wiki/Scripting_language) (both native  
                             and through alternative scripting interpreters such
                             as Perl, Python, Ruby, Tcl, etc.) including support
                             for [plugins](/wiki/Plug-in_(computing)), a        
                             [graphical user                                    
                             interface](/wiki/Graphical_user_interface) (gvim), 
                             limited [integrated development                    
                             environment](/wiki/Integrated_development_environme
                             nt)-like features, [mouse](/wiki/Mouse_(computing))
                             interaction (both with and without the GUI),       
                             [folding](/wiki/Code_folding), editing of          
                             compressed or archived files in [gzip](/wiki/Gzip),
                             [bzip2](/wiki/Bzip2),                              
                             [zip](/wiki/ZIP_(file_format)), and                
                             [tar](/wiki/Tar_(computing)) format and files over 
                             network protocols such as                          
                             [SSH](/wiki/Secure_Shell),                         
                             [FTP](/wiki/File_Transfer_Protocol), and           
                             [HTTP](/wiki/Hypertext_Transfer_Protocol), session 
                             state preservation, [spell                         
                             checking](/wiki/Spell_checker), split (horizontal  
                             and vertical) and tabbed windows,                  
                             [Unicode](/wiki/Unicode) and other multi-language  
                             support, [syntax                                   
                             highlighting](/wiki/Syntax_highlighting),          
                             trans-session command, search and cursor position  
                             [histories](/wiki/Command_history), multiple level 
                             and branching [undo/redo](/wiki/Undo) history which
                             can persist across editing sessions, and visual    
                             mode.[[citation                                    
                             needed](/wiki/Wikipedia:Citation_needed)]          
                                                                                
                             While running, Vim saves the user's changes in a   
                             swap file with the ".swp"                          
                             [extension](/wiki/File_extension). This file can be
                             used to recover after a crash. If a user tries to  
                             open a file and a swap file already exists, Vim    
                             will warn the user, and if the user proceeds, Vim  
                             will use a swap file with the extension ".swo" (or,
                             if there is already more than one swap file,       
                             ".swn", ".swm",                                    
                             etc.).[[45]](#cite_note-45)[[46]](#cite_note-46)   
                             The feature can be disabled.[[47]](#cite_note-47)  
                                                                                
                             Vim script                                         
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=9)]                                      
                             Vim script (also called Vimscript or               
                             VimL)[[48]](#cite_note-48) is the [scripting       
                             language](/wiki/Scripting_language) built into     
                             Vim.[[49]](#cite_note-49) Based on the             
                             [ex](/wiki/Ex_(text_editor)) editor language of the
                             original [vi](/wiki/Vi_(text_editor)) editor, early
                             versions of Vim added commands for control flow and
                             function definitions. Since version 7, Vim script  
                             also supports more advanced data types such as     
                             [lists](/wiki/List_(abstract_data_type)) and       
                             [dictionaries](/wiki/Associative_array) and a      
                             simple form of [object-oriented                    
                             programming](/wiki/Object-oriented_programming).   
                             Built-in functions such as map()                   
                             and filter()                                       
                             allow a basic form of [functional                  
                             programming](/wiki/Functional_programming), and Vim
                             script has [lambda](/wiki/Anonymous_function) since
                             version 8.0. Vim script is mostly written in an    
                             [imperative programming                            
                             style](/wiki/Imperative_programming).              
                                                                                
                             Vim [macros](/wiki/Macro_(computer_science)) can   
                             contain a sequence of normal-mode commands, but can
                             also invoke ex commands or functions written in Vim
                             script for more complex tasks. Almost all          
                             extensions (called plugins or more commonly        
                             scripts) of the core Vim functionality are written 
                             in Vim script, but plugins can also utilize other  
                             languages like                                     
                             [Perl](/wiki/Perl),[[50]](#cite_note-50)           
                             [Python](/wiki/Python_(programming_language)),[[51]
                             ](#cite_note-51)                                   
                             [Lua](/wiki/Lua_(programming_language)),[[52]](#cit
                             e_note-52)                                         
                             [Ruby](/wiki/Ruby_(programming_language)),[[53]](#c
                             ite_note-53) [Tcl](/wiki/Tcl),[[54]](#cite_note-54)
                             or                                                 
                             [Racket](/wiki/Racket_(programming_language)).[[55]
                             ](#cite_note-55) These plugins can be installed    
                             manually, or through a plugin manager such as      
                             Vundle, Pathogen, or Vim-Plug.                     
                                                                                
                             Vim script files are stored as plain text,         
                             similarly to other code, and the filename extension
                             is usually .vim                                    
                             . One notable exception to that is Vim's config    
                             file, .vimrc                                       
                             .                                                  
                             Examples                                           
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=10)]                                     
                             " This is the Hello World program in Vim script.   
                             echo "Hello, world!"                               
                             " This is a simple while loop in Vim script.       
                             let i = 1                                          
                             while i < 5                                        
                             echo "count is" i                                  
                             let i += 1                                         
                             endwhile                                           
                             unlet i                                            
                             Availability                                       
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=11)]                                     
                                                                                
                             While vi was originally available only on          
                             [Unix](/wiki/Unix) operating systems, Vim has been 
                             [ported](/wiki/Porting) to many operating systems  
                             including [AmigaOS](/wiki/AmigaOS) (the initial    
                             target platform), [Atari](/wiki/Atari)             
                             [MiNT](/wiki/MiNT), [BeOS](/wiki/BeOS),            
                             [DOS](/wiki/DOS),                                  
                             [Windows](/wiki/Microsoft_Windows) starting from   
                             [Windows NT 3.1](/wiki/Windows_NT_3.1),            
                             [OS/2](/wiki/OS/2), [OS/390](/wiki/OS/390),        
                             [MorphOS](/wiki/MorphOS), [OpenVMS](/wiki/OpenVMS),
                             [QNX](/wiki/QNX), [RISC OS](/wiki/RISC_OS),        
                             [Linux](/wiki/Linux),                              
                             [BSD](/wiki/Berkeley_Software_Distribution), and   
                             [Classic Mac                                       
                             OS](/wiki/Classic_Mac_OS).[[56]](#cite_note-56)    
                             Also, Vim is shipped with [Apple](/wiki/Apple_Inc.)
                             [macOS](/wiki/MacOS).[[57]](#cite_note-57)         
                             Independent ports of Vim are available for         
                             [Android](/wiki/Android_(operating_system))[[58]](#
                             cite_note-58)[[59]](#cite_note-59) and             
                             [iOS](/wiki/IOS).[[60]](#cite_note-60)             
                                                                                
                             Neovim                                             
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=12)]                                     
                             | Other names | NVim |                             
                             |---|---|                                          
                             | Initial release | 1 November 2015 |              
                             |                                                  
                             [[61]](#cite_note-wikidata-838a5f706459111b6a27d0d5
                             4134e87800741340-v18-61)                           
                             [/ 29 January                                      
                             2025](https://www.wikidata.org/wiki/Q28975246?usela
                             ng=en#P348)                                        
                             [Repository](/wiki/Repository_(version_control))   
                             [https://github.com/neovim/neovim](https://github.c
                             om/neovim/neovim)[C](/wiki/C_(programming_language)
                             ),[Vim                                             
                             script](/wiki/Vim_script),[Lua](/wiki/Lua_(programm
                             ing_language))[Operating                           
                             system](/wiki/Operating_system)                    
                             [Microsoft                                         
                             Windows](/wiki/Microsoft_Windows)and[Unix-like](/wi
                             ki/Unix-like)[License](/wiki/Software_license)     
                                                                                
                             [Apache-2.0](/wiki/Apache_License)[https://neovim.i
                             o/](https://neovim.io/)Neovim[[62]](#cite_note-62) 
                             is a [fork](/wiki/Fork_(software_development)) of  
                             Vim that strives to improve the extensibility and  
                             maintainability of Vim.[[63]](#cite_note-63) Some  
                             features of the fork include built-in [Language    
                             Server Protocol](/wiki/Language_Server_Protocol)   
                             (LSP) support, support for [asynchronous           
                             I/O](/wiki/Asynchronous_I/O), and support for      
                             [Lua](/wiki/Lua_(programming_language)) scripting  
                             using [luaJIT](/wiki/LuaJIT) language              
                             interpreter.[[64]](#cite_note-64)[[a]](#cite_note-6
                             5) The project is [free                            
                             software](/wiki/Free_software) and its [source     
                             code](/wiki/Source_code) is available on           
                             [GitHub](/wiki/GitHub).[[65]](#cite_note-66)       
                                                                                
                             Neovim has the same configuration syntax as Vim    
                             prior to vim9script; thus the same [configuration  
                             file](/wiki/Configuration_file) can be used with   
                             both editors, although there are minor differences 
                             in details of options.[[66]](#cite_note-67) If the 
                             added features of Neovim are not used, Neovim is   
                             compatible with almost all of Vim's                
                             features.[[67]](#cite_note-68)                     
                             The Neovim project was started in 2014, after a    
                             patch to Vim supporting multi-threading was        
                             rejected.[[68]](#cite_note-69) Neovim had a        
                             successful fundraising in March 2014, supporting at
                             least one full-time                                
                             developer.[[69]](#cite_note-70)[[70]](#cite_note-71
                             )                                                  
                             Several frontends are under development which make 
                             use of Neovim's                                    
                             capabilities.[[71]](#cite_note-72)[[72]](#cite_note
                             -73)[[73]](#cite_note-74)                          
                             With the 0.5 release of Neovim on 2 July 2021, it  
                             gained built-in support for the                    
                             [LSP](/wiki/Language_Server_Protocol),             
                             [Tree-sitter](/wiki/Tree-sitter_(parser_generator))
                             , and more complete Lua support – including the    
                             support for configuration scripts written in Lua   
                             instead of VimL.[[74]](#cite_note-75)              
                             Gallery                                            
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=13)]                                     
                             -                                                  
                             Neovim featuring configured statusbar and dark     
                             colorscheme.                                       
                             -                                                  
                             Tweaked v0.9.0-dev version.                        
                             See also                                           
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=14)]                                     
                                                                                
                             [Learning the vi and Vim                           
                             Editors](/wiki/Learning_the_vi_and_Vim_Editors), a 
                             tutorial book for vi and vim, published by O'Reilly
                             Media[Editor war](/wiki/Editor_war)– the rivalry   
                             between users of the[Emacs](/wiki/Emacs)and vi     
                             (Vim) text editors[List of text                    
                             editors](/wiki/List_of_text_editors)[Comparison of 
                             text                                               
                             editors](/wiki/Comparison_of_text_editors)[Vimperat
                             or](/wiki/Vimperator)                              
                             Notes                                              
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=15)]                                     
                             [^](#cite_ref-65)LuaJIT is directly listed as a    
                             third-party dependency for the program build.      
                             References                                         
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=16)]                                     
                                                                                
                             [^](#cite_ref-wikidata-86c3b46767f2c0f369b9918737e2
                             1007c788f6b2-v18_1-0)["Vim 9.1 is                  
                             available"](https://www.vim.org/vim-9.1-released.ph
                             p). 2 January 2024. Retrieved 3 January            
                             2024.[^](#cite_ref-2)["vim/LICENSE"](https://github
                             .com/vim/vim/blob/master/LICENSE). github.com. 20  
                             October                                            
                             2021.[Archived](https://web.archive.org/web/2021081
                             6052103/https://github.com/vim/vim/blob/master/LICE
                             NSE)from the original on 16 August 2021. Retrieved 
                             5 July 2021.[^](#cite_ref-3)["Vim                  
                             License"](https://spdx.org/licenses/Vim.html).     
                             spdx.org.[Archived](https://web.archive.org/web/202
                             10729175125/https://spdx.org/licenses/Vim.html)from
                              the original on 29 July 2021. Retrieved 5 July    
                             2021.- ^                                           
                                                                                
                             [a](#cite_ref-uganda.txt_4-0)[b](#cite_ref-uganda.t
                             xt_4-1)[c](#cite_ref-uganda.txt_4-2)["Vim:         
                             uganda.txt"](https://vimhelp.org/uganda.txt.html#li
                             cense).                                            
                             vimhelp.org.[Archived](https://web.archive.org/web/
                             20190113232236/https://vimhelp.org/uganda.txt.html#
                             license)from the original on 13 January 2019.      
                             Retrieved 13 January 2019.                         
                             [^](#cite_ref-pronounc_5-0)[Vim documentation:     
                             intro](https://vimhelp.org/intro.txt.html)[Archived
                             ](https://web.archive.org/web/20190113232259/https:
                             //vimhelp.org/intro.txt.html)13 January 2019 at    
                             the[Wayback Machine](/wiki/Wayback_Machine): "Vim  
                             is pronounced as one word, like Jim, not vi-ai-em. 
                             It's written with a capital, since it's a name,    
                             again like Jim."[^](#cite_ref-6)- The original     
                             interview: Moolenaar, Bram (18 April 2005).        
                                                                                
                             ["Rozhovor: Bram                                   
                             Moolenaar"](http://www.linuxexpres.cz/rozhovor/rozh
                             ovor-bram-moolenaar)[Interview: Bram Moolenaar].   
                             LinuxEXPRES (Interview) (in Czech). Interviewed by 
                             Zapletal, Lukáš. question                          
                             2.[Archived](https://web.archive.org/web/2023122814
                             3808/https://www.linuxexpres.cz/rozhovor/rozhovor-b
                             ram-moolenaar)from the original on 28 December     
                             2023. Retrieved 3 January 2024. - Translation: Bram
                             Moolenaar (n.d.).                                  
                             ["Interview with Bram Moolenaar, as published in   
                             the Czech magazine LinuxEXPRES, English            
                             version"](https://web.archive.org/web/2016010711494
                             5/http://www.moolenaar.net/interv_czech_en.html).  
                             Bram Moolenaar's website. Archived from[the        
                             original](https://moolenaar.net/interv_czech_en.htm
                             l)on 7 January 2016.                               
                                                                                
                             - The original interview: Moolenaar, Bram (18 April
                             2005).                                             
                             - ^                                                
                             [a](#cite_ref-:2_7-0)[b](#cite_ref-:2_7-1)McDonnell
                             , Mark (2014).[Pro                                 
                             vim](https://www.worldcat.org/oclc/897466496).     
                             [Berkeley].[ISBN](/wiki/ISBN_(identifier))[978-1-48
                             42-0250-0](/wiki/Special:BookSources/978-1-4842-025
                             0-0).[OCLC](/wiki/OCLC_(identifier))[897466496](htt
                             ps://search.worldcat.org/oclc/897466496).{{        
                                                                                
                             : CS1 maint: location missing publisher ([cite     
                             book](/wiki/Template:Cite_book)}}[link](/wiki/Categ
                             ory:CS1_maint:_location_missing_publisher))        
                             [^](#cite_ref-8)["Best Editor | Linux              
                             Journal"](https://www.linuxjournal.com/content/best
                             -editor-0). www.linuxjournal.com. Retrieved 20     
                             April 2023.[^](#cite_ref-9)["Stack Overflow        
                             Developer Survey 2015 § IV. Text                   
                             Editor"](https://insights.stackoverflow.com/survey/
                             2015#tech-editor). Stack                           
                             Overflow.[Archived](https://web.archive.org/web/201
                             90504144447/https://insights.stackoverflow.com/surv
                             ey/2015#tech-editor)from the original on 4 May     
                             2019. Retrieved 25 July                            
                             2016.[^](#cite_ref-10)["Stack Overflow Developer   
                             Survey 2019                                        
                             Results"](https://insights.stackoverflow.com/survey
                             /2019#development-environments-and-tools). Stack   
                             Overflow § VII. Development                        
                             Environments.[Archived](https://web.archive.org/web
                             /20200307082721/https://insights.stackoverflow.com/
                             survey/2019#development-environments-and-tools)from
                              the original on 7 March 2020. Retrieved 20 July   
                             2019.- ^                                           
                                                                                
                             [a](#cite_ref-stevie_11-0)[b](#cite_ref-stevie_11-1
                             )[c](#cite_ref-stevie_11-2)[d](#cite_ref-stevie_11-
                             3)Thompson, Tim (26 March                          
                             2000).["Stevie"](http://nosuch.com/tjt/stevie/).[Ar
                             chived](https://web.archive.org/web/20160104222833/
                             http://nosuch.com/tjt/stevie/)from the original on 
                             4 January 2016. Retrieved 27 December 2010. - ^    
                             [a](#cite_ref-stevie-usenet_12-0)[b](#cite_ref-stev
                             ie-usenet_12-1)Tim Thompson (28 June 1987).["A     
                             mini-vi for the                                    
                             ST"](https://groups.google.com/group/comp.sys.atari
                             .st/msg/8db96f888d778a32?dmode=source).[Newsgroup](
                             /wiki/Usenet_newsgroup):[comp.sys.atari.st](news:co
                             mp.sys.atari.st).[Usenet:](/wiki/Usenet_(identifier
                             ))[129@glimmer.UUCP](news:129@glimmer.UUCP).[Archiv
                             ed](https://web.archive.org/web/20121109202954/http
                             ://groups.google.com/group/comp.sys.atari.st/msg/8d
                             b96f888d778a32?dmode=source)from the original on 9 
                             November 2012. Retrieved 27 December 2010. - ^     
                                                                                
                             [a](#cite_ref-v15i026_13-0)[b](#cite_ref-v15i026_13
                             -1)Tony Andrews (6 June 1988).["v15i037: Stevie, an
                             "aspiring" VI clone for Unix, OS/2,                
                             Amiga"](https://groups.google.com/group/comp.source
                             s.unix/msg/1fccf6a82259beed?dmode=source).[Newsgrou
                             p](/wiki/Usenet_newsgroup):[comp.sources.unix](news
                             :comp.sources.unix).[Usenet:](/wiki/Usenet_(identif
                             ier))[893@fig.bbn.com](news:893@fig.bbn.com).[Archi
                             ved](https://web.archive.org/web/20121109202944/htt
                             p://groups.google.com/group/comp.sources.unix/msg/1
                             fccf6a82259beed?dmode=source)from the original on 9
                             November 2012. Retrieved 27 December 2010.         
                                                                                
                             [^](#cite_ref-14)Vim (20 January                   
                             2015).["intro.txt"](https://web.archive.org/web/201
                             60709041643/https://vimhelp.appspot.com/intro.txt.h
                             tml). Vim Help. Vim. Archived from[the             
                             original](https://vimhelp.appspot.com/intro.txt.htm
                             l)on 9 July 2016. Retrieved 9 July                 
                             2016.[^](#cite_ref-15)["vim(1)"](https://web.archiv
                             e.org/web/20160709133642/http://linux.die.net/man/1
                             /vim). die.net. Vim. 11 April 2006. Archived       
                             from[the                                           
                             original](http://linux.die.net/man/1/vim)on 9 July 
                             2016. Retrieved 9 July 2016.Vim is based on Stevie,
                             worked on by: Tim Thompson, Tony Andrews and G.R.  
                             (Fred) Walter. Although hardly any of the original 
                             code remains.                                      
                                                                                
                             [^](#cite_ref-16)Moolenaar, Bram (10 October       
                             2000).["The continuing story of                    
                             Vim"](http://moolenaar.net/vimstory.pdf)(PDF).     
                             moolenaar.net.[Archived](https://web.archive.org/we
                             b/20120418061526/http://moolenaar.net/vimstory.pdf)
                             (PDF) from the original on 18 April 2012. Retrieved
                             19 September 2011.[^](#cite_ref-17)["The history of
                             Vim – Jovica                                       
                             Ilic"](https://jovicailic.org/2014/06/the-history-o
                             f-vim/). 5 June                                    
                             2014.[Archived](https://web.archive.org/web/2020012
                             5113304/https://jovicailic.org/2014/06/the-history-
                             of-vim/)from the original on 25 January 2020.      
                             Retrieved 25 January 2020.- ^                      
                             [a](#cite_ref-vile-FAQ_18-0)[b](#cite_ref-vile-FAQ_
                             18-1)[c](#cite_ref-vile-FAQ_18-2)["VILE (Vi Like   
                             Emacs) – Frequently Asked Questions                
                             (FAQ)"](https://invisible-island.net/vile/vile.faq.
                             html#clone_began).[Archived](https://web.archive.or
                             g/web/20190831142828/https://invisible-island.net/v
                             ile/vile.faq.html#clone_began)from the original on 
                             31 August 2019. Retrieved 7 September 2019. - ^    
                                                                                
                             [a](#cite_ref-history_19-0)[b](#cite_ref-history_19
                             -1)[c](#cite_ref-history_19-2)[d](#cite_ref-history
                             _19-3)[e](#cite_ref-history_19-4)[f](#cite_ref-hist
                             ory_19-5)Moolenaar, Bram (15 January 2002).["Vim,  
                             an open-source text                                
                             editor"](http://www.free-soft.org/FSM/english/issue
                             01/vim.html).[Archived](https://web.archive.org/web
                             /20110807042854/http://www.free-soft.org/FSM/englis
                             h/issue01/vim.html)from the original on 7 August   
                             2011. Retrieved 24 October 2005.                   
                             [^](#cite_ref-20)["Textfiles.com"](http://cd.textfi
                             les.com/fredfish/v1.6/FF_Disks/571-600/FF_591/Conte
                             nts).[Archived](https://web.archive.org/web/2011071
                             6093932/http://cd.textfiles.com/fredfish/v1.6/FF_Di
                             sks/571-600/FF_591/Contents)from the original on 16
                             July 2011. Retrieved 2 October                     
                             2009.[^](#cite_ref-filewatcher_21-0)["Filewatcher"]
                             (https://web.archive.org/web/20110711001335/http://
                             www.filewatcher.com/b/ftp/ftp.twaren.net/pub/Unix/E
                             ditors/Vim/old.0.0.html). Archived from[the        
                             original](http://www.filewatcher.com/b/ftp/ftp.twar
                             en.net/pub/Unix/Editors/Vim/old.0.0.html)on July   
                             11, 2011.                                          
                                                                                
                             Retrieved February 26,                             
                             2011.[^](#cite_ref-22)["Official Vim Manual,       
                             Version 4                                          
                             summary"](http://www.vim.org/htmldoc/version4.html)
                             . 12 March                                         
                             2004.[Archived](https://web.archive.org/web/2008081
                             8035456/http://www.vim.org/htmldoc/version4.html)fr
                             om the original on 18 August 2008. Retrieved 6     
                             August 2008.[^](#cite_ref-23)["Official Vim Manual,
                             Version 5                                          
                             summary"](http://www.vim.org/htmldoc/version5.html)
                             . 17 January                                       
                             2004.[Archived](https://web.archive.org/web/2008082
                             1072351/http://www.vim.org/htmldoc/version5.html)fr
                             om the original on 21 August 2008. Retrieved 6     
                             August 2008.[^](#cite_ref-24)["Official Vim Manual,
                             Version 6                                          
                             summary"](http://www.vim.org/htmldoc/version6.html)
                             . 12 March                                         
                             2004.[Archived](https://web.archive.org/web/2008061
                             1081758/http://www.vim.org/htmldoc/version6.html)fr
                             om the original on 11 June 2008. Retrieved 6 August
                             2008.[^](#cite_ref-25)["Vim Reference Manual,      
                             Version 7"](https://vimhelp.org/version7.txt.html).
                             17 July                                            
                             2016.[Archived](https://web.archive.org/web/2019011
                             3232305/https://vimhelp.org/version7.txt.html)from 
                             the original on 13 January 2019.                   
                                                                                
                             Retrieved 13 January 2019.[^](#cite_ref-26)["Google
                             Groups"](https://groups.google.com/group/vim_announ
                             ce/browse_thread/thread/2c89671dd928812f).         
                             groups.google.com.[Archived](https://web.archive.or
                             g/web/20121106114342/http://groups.google.com/group
                             /vim_announce/browse_thread/thread/2c89671dd928812f
                             )from the original on 6 November 2012. Retrieved 11
                             August 2008.[^](#cite_ref-27)[Google               
                             Discussiegroepen](https://groups.google.com/forum/#
                             !topic/vim_announce/knOQ_t_H5to)[Archived](http://a
                             rquivo.pt/wayback/20110122130054/https://groups.goo
                             gle.com/forum/#!topic/vim_announce/knOQ_t_H5to)22  
                             January 2011 at the Portuguese Web Archive.        
                             Groups.google.com. Retrieved on                    
                             2013-12-09.[^](#cite_ref-28)Bram Moolenaar.["Vim   
                             8.0                                                
                             released!"](https://groups.google.com/forum/#!topic
                             /vim_announce/EKTuhjF3ET0).[Archived](http://arquiv
                             o.pt/wayback/20110122130054/https://groups.google.c
                             om/forum/#!topic/vim_announce/EKTuhjF3ET0)from the 
                             original on 22 January 2011.                       
                                                                                
                             Retrieved 12 September 2016.[^](#cite_ref-29)Bram  
                             Moolenaar.["Vim 8.1 is                             
                             released!"](https://www.vim.org/vim-8.1-released.ph
                             p).[Archived](https://web.archive.org/web/201805171
                             91637/https://www.vim.org/vim-8.1-released.php)from
                              the original on 17 May 2018. Retrieved 18 May     
                             2018.[^](#cite_ref-30)Bram Moolenaar.["Vim 8.2 is  
                             released!"](https://www.vim.org/vim-8.2-released.ph
                             p).[Archived](https://web.archive.org/web/201912121
                             52052/https://www.vim.org/vim-8.2-released.php)from
                              the original on 12 December 2019. Retrieved 13    
                             December 2019.[^](#cite_ref-31)Bram Moolenaar.["Vim
                             9.0 is                                             
                             released!"](https://www.vim.org/vim90.php).[Archive
                             d](https://web.archive.org/web/20220702120512/https
                             ://www.vim.org/vim90.php)from the original on 2    
                             July 2022. Retrieved 30 June                       
                             2022.[^](#cite_ref-32)Christian Brabandt.["Vim 9.1 
                             is                                                 
                             released!"](https://www.vim.org/vim-9.1-released.ph
                             p).[Archived](https://web.archive.org/web/202401022
                             35711/https://www.vim.org/vim-9.1-released.php)from
                              the original on 2 January 2024. Retrieved 4       
                             January 2024.- ^                                   
                                                                                
                             [a](#cite_ref-Lamb1998_33-0)[b](#cite_ref-Lamb1998_
                             33-1)[c](#cite_ref-Lamb1998_33-2)Lamb, Linda;      
                             Robbins, Arnold (1998).[Learning the Vi            
                             Editor](https://archive.org/details/learningviedito
                             r00lamb/page/305). O'Reilly Media, Inc.            
                             p.[305](https://archive.org/details/learningviedito
                             r00lamb/page/305).[ISBN](/wiki/ISBN_(identifier))[9
                             781565924260](/wiki/Special:BookSources/97815659242
                             60). [^](#cite_ref-34)Moolenaar, Bram (3 November  
                             2010).["Vim documentation:                         
                             usr_01"](http://vimdoc.sourceforge.net/htmldoc/usr_
                             01.html#tutor).[Archived](https://web.archive.org/w
                             eb/20200729064500/http://vimdoc.sourceforge.net/htm
                             ldoc/usr_01.html#tutor)from the original on 29 July
                             2020.                                              
                                                                                
                             Retrieved 28 August 2019.[^](#cite_ref-35)[Vim help
                             files](https://vimhelp.org/)[Archived](https://web.
                             archive.org/web/20190113232300/https://vimhelp.org/
                             )13 January 2019 at the[Wayback                    
                             Machine](/wiki/Wayback_Machine)at                  
                             vimhelp.org[^](#cite_ref-vimbook_36-0)Oualline,    
                             Steve (April 2001).[Vi IMproved                    
                             (VIM)](http://ftp.vim.org/pub/vim/doc/book/vimbook-
                             OPL.pdf)(PDF). New Riders                          
                             Publishers.[ISBN](/wiki/ISBN_(identifier))[0-7357-1
                             001-5](/wiki/Special:BookSources/0-7357-1001-5).[Ar
                             chived](https://web.archive.org/web/20211119082135/
                             http://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf
                             )(PDF) from the original on 19 November 2021.      
                             Retrieved 11 October                               
                             2021.[^](#cite_ref-37)Moolenaar, Bram.["Vim:       
                             intro.txt"](https://vimhelp.org/intro.txt.html).   
                             vimhelp.org. Retrieved 1 September 2023.- ^        
                                                                                
                             [a](#cite_ref-:1_38-0)[b](#cite_ref-:1_38-1)["CS107
                             The Vim                                            
                             Editor"](https://web.stanford.edu/class/cs107/resou
                             rces/vim.html).                                    
                             web.stanford.edu.[Archived](https://web.archive.org
                             /web/20230127153621/https://web.stanford.edu/class/
                             cs107/resources/vim.html)from the original on 27   
                             January 2023. Retrieved 27 January 2023.           
                             [^](#cite_ref-39)Melendez, Steven (28 October      
                             2014).["Why Vim, An '80s Text Editor, Is Still The 
                             UI Of Choice For Power                             
                             Users"](https://www.fastcompany.com/3037629/why-vim
                             -an-80s-text-editor-is-still-the-ui-of-choice-for-p
                             ower-users).                                       
                             FastCompany.[Archived](https://web.archive.org/web/
                             20190506013107/https://www.fastcompany.com/3037629/
                             why-vim-an-80s-text-editor-is-still-the-ui-of-choic
                             e-for-power-users)from the original on 6 May 2019. 
                                                                                
                             Retrieved 5 May 2019.[^](#cite_ref-40)["Tips:      
                             Making Vim                                         
                             easy"](https://www.linux.com/news/tips-making-vim-e
                             asy). Linux.com. 10 April                          
                             2007.[Archived](https://web.archive.org/web/2019050
                             6013124/https://www.linux.com/news/tips-making-vim-
                             easy)from the original on 6 May 2019. Retrieved 6  
                             May 2019.[^](#cite_ref-41)["Vim documentation:     
                             usr_41"](https://vimhelp.org/usr_41.txt.html#vim-sc
                             ript-intro).                                       
                             vimhelp.org.[Archived](https://web.archive.org/web/
                             20190113232237/https://vimhelp.org/usr_41.txt.html#
                             vim-script-intro)from the original on 13 January   
                             2019. Retrieved 13 January                         
                             2019.[^](#cite_ref-vimhelp_42-0)Vim help system    
                             (type "                                            
                                                                                
                             " within                                           
                             Vim)[:help](https://vimhelp.org/)[^](#cite_ref-43)T
                             he Open Group (2008),["vi — screen-oriented        
                             (visual) display editor", Single Unix              
                             Specification, Version 4 (IEEE Std                 
                             1003.1–2008)](http://pubs.opengroup.org/onlinepubs/
                             9699919799/utilities/vi.html),[archived](https://we
                             b.archive.org/web/20110122015032/http://pubs.opengr
                             oup.org/onlinepubs/9699919799/utilities/vi.html)fro
                             m the original on 22 January 2011, retrieved 27    
                             December 2010[^](#cite_ref-vimfaq_44-0)Peppe;      
                             Benji; Campbell, Charles (2 January 2004).["Vim    
                             FAQ"](https://vimhelp.org/vim_faq.txt.html#faq-1.3)
                             .[Archived](https://web.archive.org/web/20190113232
                             234/https://vimhelp.org/vim_faq.txt.html#faq-1.3)fr
                             om the original on 13 January 2019. Retrieved 27   
                             December 2010. (question 1.3)[^](#cite_ref-45)["Vim
                             documentation:                                     
                             recover"](http://vimdoc.sourceforge.net/htmldoc/rec
                             over.html).                                        
                                                                                
                             vimdoc.sourceforge.net.[Archived](https://web.archi
                             ve.org/web/20201213232131/http://vimdoc.sourceforge
                             .net/htmldoc/recover.html)from the original on 13  
                             December 2020. Retrieved 17 December               
                             2020.[^](#cite_ref-46)["How to handle swapfiles in 
                             Vim"](https://cs.longwood.edu/VimSwap.html).       
                             cs.longwood.edu.[Archived](https://web.archive.org/
                             web/20210507102651/https://cs.longwood.edu/VimSwap.
                             html)from the original on 7 May 2021. Retrieved 17 
                             December 2020.[^](#cite_ref-47)["'swapfile'        
                             option"](https://vimhelp.org/options.txt.html#'swap
                             file'). vimhelp.org. 10 October                    
                             2020.[Archived](https://web.archive.org/web/2020121
                             4004148/https://vimhelp.org/options.txt.html#'swapf
                             ile')from the original on 14 December 2020.        
                             Retrieved 18 December 2020.[^](#cite_ref-48)Klein, 
                             Benjamin.["The VimL Primer: Edit Like a Pro with   
                             Vim Plugins and Scripts by Benjamin Klein | The    
                             Pragmatic                                          
                             Bookshelf"](https://web.archive.org/web/20200125123
                             547/https://pragprog.com/book/bkviml/the-viml-prime
                             r). Archived from[the                              
                             original](https://pragprog.com/book/bkviml/the-viml
                             -primer)on 25 January 2020.                        
                                                                                
                             Retrieved 25 January 2020.[^](#cite_ref-49)["Vim   
                             documentation:                                     
                             usr_41"](https://vimhelp.org/usr_41.txt.html).     
                             vimhelp.org.[Archived](https://web.archive.org/web/
                             20190113232237/https://vimhelp.org/usr_41.txt.html)
                             from the original on 13 January 2019. Retrieved 13 
                             January 2019.[^](#cite_ref-50)Verdoolaege, Sven;   
                             Gerassimof, Matt.["Vim documentation:              
                             if_perl"](http://vimdoc.sourceforge.net/htmldoc/if_
                             perl.html).[Archived](https://web.archive.org/web/2
                             0120208154924/http://vimdoc.sourceforge.net/htmldoc
                             /if_perl.html)from the original on 8 February 2012.
                             Retrieved 27 August 2019.[^](#cite_ref-51)Moore,   
                             Paul.["Vim documentation:                          
                             if_pyth"](http://vimdoc.sourceforge.net/htmldoc/if_
                             pyth.html).[Archived](https://web.archive.org/web/2
                             0120822072929/http://vimdoc.sourceforge.net/htmldoc
                             /if_pyth.html)from the original on 22 August 2012. 
                             Retrieved 27 August 2019.[^](#cite_ref-52)Carvalho,
                             Luis.["Vim documentation:                          
                             if_lua"](http://vimdoc.sourceforge.net/htmldoc/if_l
                             ua.html).[Archived](https://web.archive.org/web/201
                             20330221044/http://vimdoc.sourceforge.net/htmldoc/i
                             f_lua.html)from the original on 30 March 2012.     
                                                                                
                             Retrieved 27 August 2019.[^](#cite_ref-53)Maeda,   
                             Shugo.["Vim documentation:                         
                             if_ruby"](http://vimdoc.sourceforge.net/htmldoc/if_
                             ruby.html).[Archived](https://web.archive.org/web/2
                             0120214174436/http://vimdoc.sourceforge.net/htmldoc
                             /if_ruby.html)from the original on 14 February     
                             2012. Retrieved 27 August                          
                             2019.[^](#cite_ref-54)Wilken, Ingo.["Vim           
                             documentation:                                     
                             if_tcl"](http://vimdoc.sourceforge.net/htmldoc/if_t
                             cl.html).[Archived](https://web.archive.org/web/201
                             20824172051/http://vimdoc.sourceforge.net/htmldoc/i
                             f_tcl.html)from the original on 24 August 2012.    
                             Retrieved 27 August 2019.[^](#cite_ref-55)Khorev,  
                             Sergey.["Vim documentation:                        
                             if_mzsch"](http://vimdoc.sourceforge.net/htmldoc/if
                             _mzsch.html).[Archived](https://web.archive.org/web
                             /20120414232343/http://vimdoc.sourceforge.net/htmld
                             oc/if_mzsch.html)from the original on 14 April     
                             2012. Retrieved 27 August 2019.[^](#cite_ref-56)"  
                                                                                
                             "[:help                                            
                             sys-file-list](https://vimhelp.org/#sys-file-list)[
                             "Vim Online:                                       
                             Downloads"](http://www.vim.org/download.php).[Archi
                             ved](https://web.archive.org/web/20070108142446/htt
                             p://www.vim.org/download.php)from the original on 8
                             January 2007. Retrieved 7 January                  
                             2007.[^](#cite_ref-57)["Mac OS X Manual Page For   
                             vim(1)"](https://developer.apple.com/library/mac/#D
                             OCUMENTATION/Darwin/Reference/ManPages/man1/vim.1.h
                             tml). developer.apple.com. Apple                   
                             Inc.[Archived](https://web.archive.org/web/20120609
                             170929/http://developer.apple.com/library/mac/#DOCU
                             MENTATION/Darwin/Reference/ManPages/man1/vim.1.html
                             )from the original on 9 June 2012.                 
                                                                                
                             Retrieved 12 January                               
                             2010.[^](#cite_ref-58)["VimTouch, the development  
                             has stalled on this                                
                             app"](https://github.com/momodalo/vimtouch).[GitHub
                             ](/wiki/GitHub).[Archived](https://web.archive.org/
                             web/20151229012338/https://github.com/momodalo/vimt
                             ouch)from the original on 29 December 2015.        
                             Retrieved 9 August                                 
                             2015.[^](#cite_ref-59)["DroidVim, under active     
                             development"](https://github.com/shiftrot/droidvim)
                             .[GitHub](/wiki/GitHub).[Archived](https://web.arch
                             ive.org/web/20180627111225/https://github.com/shift
                             rot/droidvim)from the original on 27 June 2018.    
                             Retrieved 5 March 2017.[^](#cite_ref-60)["Vim –    
                             Applidium, mobile agency in                        
                             Paris"](https://web.archive.org/web/20120120032008/
                             http://applidium.com/en/applications/vim/).        
                                                                                
                             Archived from[the                                  
                             original](http://applidium.com/en/applications/vim/
                             )on 20 January 2012. Retrieved 11 August           
                             2015.[^](#cite_ref-wikidata-838a5f706459111b6a27d0d
                             54134e87800741340-v18_61-0)["Release               
                             0.10.4"](https://github.com/neovim/neovim/releases/
                             tag/v0.10.4). 29 January 2025. Retrieved 25        
                             February 2025.[^](#cite_ref-62)["Neovim: vim, out  
                             of the box"](http://neovim.io/).                   
                             neovim.io.[Archived](https://web.archive.org/web/20
                             220516140503/https://neovim.io/)from the original  
                             on 16 May 2022.                                    
                                                                                
                             Retrieved 2 May 2024.[^](#cite_ref-63)["Neovim     
                             Vision"](https://neovim.io/charter/).[Archived](htt
                             ps://web.archive.org/web/20220426002631/https://neo
                             vim.io/charter/)from the original on 26 April 2022.
                             Retrieved 18 February 2016.[^](#cite_ref-64)["Nvim 
                             documentation:                                     
                             vim_diff"](https://neovim.io/doc/user/vim_diff.html
                             ).[Archived](https://web.archive.org/web/2019082521
                             3838/https://neovim.io/doc/user/vim_diff.html)from 
                             the original on 25 August 2019. Retrieved 2 October
                             2019.[^](#cite_ref-66)["GitHub – neovim/neovim:    
                             Vim-fork focused on extensibility and              
                             usability"](https://github.com/neovim/neovim).[GitH
                             ub](/wiki/GitHub). 29 August                       
                             2019.[Archived](https://web.archive.org/web/2016021
                             0002828/https://github.com/neovim/neovim)from the  
                             original on 10 February 2016.                      
                                                                                
                             Retrieved 18 February                              
                             2016.[^](#cite_ref-67)["Switching to               
                             NeoVim"](http://arusahni.net/blog/2015/03/switching
                             -to-neovim-part-1.html). 31 March                  
                             2015.[Archived](https://web.archive.org/web/2016021
                             6025559/http://arusahni.net/blog/2015/03/switching-
                             to-neovim-part-1.html)from the original on 16      
                             February 2016. Retrieved 18 February               
                             2016.[^](#cite_ref-68)["How to start using Neovim  
                             instead of                                         
                             Vim"](http://veelenga.com/editors/how-to-start-usin
                             g-neovim-instead-of-vim/).[Archived](https://web.ar
                             chive.org/web/20170604054638/http://veelenga.com/ed
                             itors/how-to-start-using-neovim-instead-of-vim/)fro
                             m the original on 4 June 2017. Retrieved 18        
                             February 2016.[^](#cite_ref-69)Eddie Kovsky (1     
                             February 2017).["Vim's 25th anniversary and the    
                             release of Vim 8                                   
                             [LWN.net]"](https://lwn.net/Articles/713114/).     
                             lwn.net. Retrieved 13 June                         
                             2023.[^](#cite_ref-70)["Vimcasts.org blog          
                             post"](http://vimcasts.org/blog/2014/03/support-neo
                             vim/).[Archived](https://web.archive.org/web/202108
                             17071909/http://vimcasts.org/blog/2014/03/support-n
                             eovim/)from the original on 17 August 2021.        
                             Retrieved 18 February                              
                             2016.[^](#cite_ref-71)["Neovim"](https://www.bounty
                             source.com/teams/neovim/fundraiser).[Bountysource](
                             /wiki/Bountysource).                               
                                                                                
                             23 March                                           
                             2014.[Archived](https://web.archive.org/web/2021010
                             5163307/https://www.bountysource.com/teams/neovim/f
                             undraiser)from the original on 5 January 2021.     
                             Retrieved 20 March 2021.[^](#cite_ref-72)["NyaoVim 
                             frontend"](https://github.com/rhysd/NyaoVim).[GitHu
                             b](/wiki/GitHub). 29 August                        
                             2019.[Archived](https://web.archive.org/web/2022043
                             0094112/https://github.com/rhysd/NyaoVim)from the  
                             original on 30 April 2022. Retrieved 18 February   
                             2016.[^](#cite_ref-73)["Mac OS X                   
                             frontend"](https://github.com/rogual/neovim-dot-app
                             ).[GitHub](/wiki/GitHub). 29 August                
                             2019.[Archived](https://web.archive.org/web/2022041
                             7165446/https://github.com/rogual/neovim-dot-app)fr
                             om the original on 17 April 2022. Retrieved 18     
                             February 2016.[^](#cite_ref-74)["Neovim-Qt         
                             frontend"](https://github.com/equalsraf/neovim-qt).
                             [GitHub](/wiki/GitHub). 21 July                    
                             2020.[Archived](https://web.archive.org/web/2019091
                             6231726/https://github.com/equalsraf/neovim-qt)from
                              the original on 16 September 2019. Retrieved 17   
                             July 2019.[^](#cite_ref-75)Ayooluwa Isaiah (3      
                             August 2021).["New features in Neovim 0.5          
                             [LWN.net]"](https://lwn.net/Articles/864712/).     
                             lwn.net. Retrieved 13 June 2023.                   
                                                                                
                             External links                                     
                             [[edit](/w/index.php?title=Vim_(text_editor)&action
                             =edit§ion=17)]                                     
                             [Learning the vi                                   
                             Editor](https://en.wikibooks.org/wiki/Learning_the_
                             vi_Editor)has a page on the topic of:              
                             [Vim](https://en.wikibooks.org/wiki/Learning_the_vi
                             _Editor/Vim)                                       
                             [Vim](https://commons.wikimedia.org/wiki/Category:V
                             im).                                               
                             [Categories](/wiki/Help:Category):                 
                                                                                
                             [1991 software](/wiki/Category:1991_software)[Amiga
                             software](/wiki/Category:Amiga_software)[BeOS text 
                             editors](/wiki/Category:BeOS_text_editors)[Classic 
                             Mac OS text                                        
                             editors](/wiki/Category:Classic_Mac_OS_text_editors
                             )[Computer science in the                          
                             Netherlands](/wiki/Category:Computer_science_in_the
                             _Netherlands)[Cross-platform free                  
                             software](/wiki/Category:Cross-platform_free_softwa
                             re)[DOS text                                       
                             editors](/wiki/Category:DOS_text_editors)[Free file
                             comparison                                         
                             tools](/wiki/Category:Free_file_comparison_tools)[F
                             ree software programmed in                         
                             C](/wiki/Category:Free_software_programmed_in_C)[Fr
                             ee text                                            
                             editors](/wiki/Category:Free_text_editors)[Informat
                             ion technology in the                              
                             Netherlands](/wiki/Category:Information_technology_
                             in_the_Netherlands)[Linux text                     
                             editors](/wiki/Category:Linux_text_editors)[MacOS  
                             text                                               
                             editors](/wiki/Category:MacOS_text_editors)[MorphOS
                             software](/wiki/Category:MorphOS_software)[OpenVMS 
                                                                                
                             text                                               
                             editors](/wiki/Category:OpenVMS_text_editors)[OS/2 
                             text                                               
                             editors](/wiki/Category:OS/2_text_editors)[Termcap]
                             (/wiki/Category:Termcap)[Unix text                 
                             editors](/wiki/Category:Unix_text_editors)[Vi](/wik
                             i/Category:Vi)[Windows text                        
                             editors](/wiki/Category:Windows_text_editors)[Text 
                             editors that use                                   
                             GTK](/wiki/Category:Text_editors_that_use_GTK)[Free
                             HTML                                               
                             editors](/wiki/Category:Free_HTML_editors)[Linux   
                             integrated development                             
                             environments](/wiki/Category:Linux_integrated_devel
                             opment_environments)[Hex                           
                             editors](/wiki/Category:Hex_editors)[Free          
                             integrated development                             
                             environments](/wiki/Category:Free_integrated_develo
                             pment_environments)[Free integrated development    
                             environments for                                   
                             Python](/wiki/Category:Free_integrated_development_
                             environments_for_Python)[Free and open-source      
                             software](/wiki/Category:Free_and_open-source_softw
                             are)[Command-line                                  
                             software](/wiki/Category:Command-line_software)[Con
                             sole                                               
                             applications](/wiki/Category:Console_applications) 
                                                                                
                             Emacs                                              
                             Emacs ([/ˈiːmæks/](/wiki/Help:IPA/English)         
                             [ⓘ](/wiki/File:En-us-Emacs.oga)), originally named 
                             EMACS (an acronym for "Editor                      
                             Macros"),[[1]](#cite_note-Greenberg-1)[[2]](#cite_n
                             ote-Gnu_Emacs_FAQ-2)[[3]](#cite_note-MACSimizing_TE
                             CO-3) is a family of [text                         
                             editors](/wiki/Text_editor) that are characterized 
                             by their                                           
                             [extensibility](/wiki/Extensibility).[[4]](#cite_no
                             te-4) The manual for the most widely used          
                             variant,[[5]](#cite_note-5) [GNU                   
                             Emacs](/wiki/GNU_Emacs), describes it as "the      
                             extensible, customizable, self-documenting,        
                             real-time display editor".[[6]](#cite_note-6)      
                             Development of the first Emacs began in the        
                             mid-1970s,[[7]](#cite_note-7)[[8]](#cite_note-8)   
                             and work on GNU Emacs, directly descended from the 
                             original, is ongoing; its latest version is        
                             30.1[[9]](#cite_note-wikidata-7d4c2b2092cb944b3a0a4
                             1b985d72cb5868baa4a-v18-9) [, released February    
                             2025.                                              
                             ](https://www.wikidata.org/wiki/Q189722?uselang=en#
                             P348)                                              
                                                                                
                             Emacs has over 10,000 built-in commands and its    
                             [user interface](/wiki/User_interface) allows the  
                             user to combine these commands into                
                             [macros](/wiki/Macro_(computer_science)) to        
                             automate work. Implementations of Emacs typically  
                             feature a [dialect](/wiki/Dialect_(computing)) of  
                             the [Lisp](/wiki/Lisp_(programming_language))      
                             programming language, allowing users and developers
                             to write new commands and applications for the     
                             editor. Extensions have been written to, among     
                             other things, manage [files](/wiki/Dired), [remote 
                             access](/wiki/Secure_Shell),[[10]](#cite_note-10)  
                             [e-mail](/wiki/Gnus), [outlines](/wiki/Org-mode),  
                             [multimedia](/wiki/EMMS_(media_player)),           
                             [Git](/wiki/Magit) integration, [RSS](/wiki/RSS)   
                             feeds,[[11]](#cite_note-11) and [collaborative     
                             editing](/wiki/Collaborative_editing),[[12]](#cite_
                             note-12) as well as implementations of             
                             [ELIZA](/wiki/ELIZA), [Pong](/wiki/Pong), [Conway's
                             Life](/wiki/Conway%27s_Game_of_Life),              
                             [Snake](/wiki/Snake_(video_game_genre)),           
                             [Dunnet](/wiki/Dunnet_(video_game)), and           
                             [Tetris](/wiki/Tetris).[[13]](#cite_note-13)       
                                                                                
                             The original EMACS was written in 1976 by [David A.
                             Moon](/wiki/David_A._Moon) and [Guy L. Steele      
                             Jr.](/wiki/Guy_L._Steele_Jr.) as a set of macros   
                             for the [TECO](/wiki/TECO_(text_editor))           
                             editor.[[14]](#cite_note-jwz_timeline-14)[[1]](#cit
                             e_note-Greenberg-1)[[2]](#cite_note-Gnu_Emacs_FAQ-2
                             )[[3]](#cite_note-MACSimizing_TECO-3)[[15]](#cite_n
                             ote-15) It was inspired by the ideas of the        
                             TECO-macro editors TECMAC and                      
                             TMACS.[[16]](#cite_note-16)                        
                             The most popular, and most ported, version of Emacs
                             is GNU Emacs, which was created by [Richard        
                             Stallman](/wiki/Richard_Stallman) for the [GNU     
                             Project](/wiki/GNU_Project).[[17]](#cite_note-17)  
                             [XEmacs](/wiki/XEmacs) is a variant that           
                             [branched](/wiki/Fork_(software_development)) from 
                             GNU Emacs in 1991. GNU Emacs and XEmacs use similar
                             Lisp dialects and are, for the most part,          
                             compatible with each other. XEmacs development is  
                             inactive.                                          
                                                                                
                             [GNU Emacs](/wiki/GNU_Emacs) is, along with        
                             [vi](/wiki/Vi_(text_editor)), one of the two main  
                             contenders in the traditional [editor              
                             wars](/wiki/Editor_war) of [Unix](/wiki/Unix)      
                             culture. GNU Emacs is among the oldest [free and   
                             open source](/wiki/Free_and_open_source) projects  
                             still under development.[[18]](#cite_note-18)      
                             History                                            
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=1)
                             ]                                                  
                             Emacs development began during the 1970s at the    
                             [MIT AI                                            
                             Lab](/wiki/MIT_Computer_Science_and_Artificial_Inte
                             lligence_Laboratory), whose [PDP-6](/wiki/PDP-6)   
                             and [PDP-10](/wiki/PDP-10) computers used the      
                             [Incompatible Timesharing                          
                             System](/wiki/Incompatible_Timesharing_System)     
                             (ITS) [operating system](/wiki/Operating_system)   
                             that featured a default [line                      
                             editor](/wiki/Line_editor) known as [Tape Editor   
                             and Corrector](/wiki/Text_Editor_and_Corrector)    
                             (TECO). Unlike most modern text editors, TECO used 
                             separate modes in which the user would either add  
                             text, edit existing text, or display the document. 
                             One could not place characters directly into a     
                             document by typing them into TECO, but would       
                             instead enter a character ('i') in the TECO command
                             language telling it to switch to input mode, enter 
                             the required characters, during which time the     
                             edited text was not displayed on the screen, and   
                             finally enter a character (<esc>) to switch the    
                             editor back to command mode. (A similar technique  
                             was used to allow overtyping.) This behavior is    
                             similar to that of the program                     
                             [ed](/wiki/Ed_(text_editor)).                      
                                                                                
                             By the 1970s, TECO was already an old program,     
                             initially released in 1962. [Richard               
                             Stallman](/wiki/Richard_Stallman) visited the      
                             [Stanford AI                                       
                             Lab](/wiki/Stanford_University_centers_and_institut
                             es#Stanford_Artificial_Intelligence_Laboratory) in 
                             1976[[20]](#cite_note-20) and saw the lab's E      
                             editor, written by Fred                            
                             Wright.[[21]](#cite_note-21) He was impressed by   
                             the editor's intuitive [WYSIWYG](/wiki/WYSIWYG)    
                             (What You See Is What You Get) behavior, which has 
                             since become the default behavior of most modern   
                             text editors. He returned to MIT where Carl        
                             Mikkelsen, a                                       
                             [hacker](/wiki/Hacker_(programmer_subculture)) at  
                             the AI Lab, had added to TECO a combined           
                             display/editing mode called Control-R that allowed 
                             the screen display to be updated each time the user
                             entered a keystroke. Stallman reimplemented this   
                             mode to run efficiently and then added a           
                             [macro](/wiki/Macro_(computer_science)) feature to 
                             the TECO display-editing mode that allowed the user
                             to redefine any keystroke to run a TECO            
                             program.[[3]](#cite_note-MACSimizing_TECO-3)       
                                                                                
                             E had another feature that TECO lacked:            
                             random-access editing. TECO was a page-sequential  
                             editor that was designed for editing [paper        
                             tape](/wiki/Paper_tape) on the [PDP-1](/wiki/PDP-1)
                             at a time when computer memory was generally small 
                             due to cost, and it was a feature of TECO that     
                             allowed editing on only one page at a time         
                             sequentially in the order of the pages in the file.
                             Instead of adopting E's approach of structuring the
                             file for page-random access on disk, Stallman      
                             modified TECO to handle large buffers more         
                             efficiently and changed its file-management method 
                             to read, edit, and write the entire file as a      
                             single buffer. Almost all modern editors use this  
                             approach.                                          
                                                                                
                             The new version of TECO quickly became popular at  
                             the AI Lab and soon accumulated a large collection 
                             of custom macros whose names often ended in MAC or 
                             MACS, which stood for macro. Two years later, [Guy 
                             Steele](/wiki/Guy_L._Steele,_Jr.) took on the      
                             project of unifying the diverse macros into a      
                             single set.[[22]](#cite_note-22) Steele and        
                             Stallman's finished implementation included        
                             facilities for extending and documenting the new   
                             macro set.[[3]](#cite_note-MACSimizing_TECO-3) The 
                             resulting system was called EMACS, which stood for 
                             Editing MACroS or, alternatively, E with MACroS.   
                             Stallman picked the name Emacs "because <E> was not
                             in use as an abbreviation on ITS at the            
                             time."[[23]](#cite_note-23) An                     
                             [apocryphal](/wiki/Apocrypha) [hacker              
                             koan](/wiki/Hacker_koan#Emacs_and_Bolio) alleges   
                             that the program was named after [Emack &          
                             Bolio's](/wiki/Emack_%26_Bolio%27s), a popular     
                             [Boston](/wiki/Boston) ice cream                   
                             store.[[24]](#cite_note-24) The first operational  
                             EMACS system existed in late                       
                             1976.[[25]](#cite_note-519a-25)                    
                                                                                
                             Stallman saw a problem in too much customization   
                             and de facto forking and set certain conditions for
                             usage.[[citation                                   
                             needed](/wiki/Wikipedia:Citation_needed)] He later 
                             wrote:[[25]](#cite_note-519a-25)                   
                             EMACS was distributed on a basis of communal       
                             sharing, which means all improvements must be given
                             back to me to be incorporated and distributed.     
                             The original Emacs, like TECO, ran only on the     
                             PDP-10 running ITS. Its behavior was sufficiently  
                             different from that of TECO that it could be       
                             considered a text editor in its own right, and it  
                             quickly became the standard editing program on ITS.
                             Mike McMahon [ported](/wiki/Porting) Emacs from ITS
                             to the [TENEX](/wiki/TENEX_(operating_system)) and 
                             [TOPS-20](/wiki/TOPS-20) operating systems. Other  
                             contributors to early versions of Emacs include    
                             [Kent Pitman](/wiki/Kent_Pitman), [Earl            
                             Killian](/w/index.php?title=Earl_Killian_(engineer)
                             &action=edit&redlink=1), and [Eugene               
                             Ciccarelli](/w/index.php?title=Eugene_Ciccarelli&ac
                             tion=edit&redlink=1). By 1979, Emacs was the main  
                             editor used in MIT's AI lab and its Laboratory for 
                             Computer Science.[[26]](#cite_note-26)             
                                                                                
                             Implementations                                    
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=2)
                             ]                                                  
                             Early implementations                              
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=3)
                             ]                                                  
                             In the following years, programmers wrote a variety
                             of Emacs-like editors for other computer systems.  
                             These included [EINE](/wiki/EINE) (EINE Is Not     
                             EMACS) and [ZWEI](/wiki/ZWEI)[[27]](#cite_note-27) 
                             (ZWEI Was EINE Initially), which were written for  
                             the [Lisp machine](/wiki/Lisp_machine) by Mike     
                             McMahon and [Daniel Weinreb](/wiki/Daniel_Weinreb),
                             and Sine (Sine Is Not Eine),[[28]](#cite_note-28)  
                             which was written by Owen Theodore Anderson.       
                             Weinreb's [EINE](/wiki/EINE) was the first Emacs   
                             written in Lisp. In 1978, [Bernard                 
                             Greenberg](/wiki/Bernard_Greenberg) wrote [Multics 
                             Emacs](/wiki/Multics_Emacs) almost entirely in     
                             Multics Lisp at [Honeywell](/wiki/Honeywell)'s     
                             Cambridge Information Systems Lab. Multics Emacs   
                             was later maintained by [Richard                   
                             Soley](/wiki/Richard_Soley), who went on to develop
                             the NILE Emacs-like editor for the NIL Project, and
                             by Barry Margolin. Many versions of Emacs,         
                             including GNU Emacs, would later adopt Lisp as an  
                             extension language.                                
                                                                                
                             [James Gosling](/wiki/James_Gosling), who would    
                             later invent [NeWS](/wiki/NeWS) and the [Java      
                             programming                                        
                             language](/wiki/Java_(programming_language)), wrote
                             [Gosling Emacs](/wiki/Gosling_Emacs) in 1981. The  
                             first Emacs-like editor to run on                  
                             [Unix](/wiki/Unix)[[citation                       
                             needed](/wiki/Wikipedia:Citation_needed)], Gosling 
                             Emacs was written in                               
                             [C](/wiki/C_(programming_language)) and used       
                             [Mocklisp](/wiki/Mocklisp), a language with        
                             Lisp-like syntax, as an extension language.        
                                                                                
                             Early Ads for [Computer Corporation of             
                             America](/wiki/Computer_Corporation_of_America)'s  
                             CCA EMACS (Steve                                   
                             Zimmerman)[[29]](#cite_note-Emacs.BookCCA-29)      
                             appeared in 1984.[[30]](#cite_note-30) 1985        
                             comparisons to GNU Emacs, when it came out,        
                             mentioned free vs.                                 
                             $2,400.[[31]](#cite_note-31)[[irrelevant           
                             citation](/wiki/Wikipedia:Verifiability)]          
                             GNU Emacs                                          
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=4)
                             ]                                                  
                                                                                
                             Richard Stallman began work on GNU Emacs in 1984 to
                             produce a [free software](/wiki/Free_software)     
                             alternative to the proprietary Gosling Emacs. GNU  
                             Emacs was initially based on Gosling Emacs, but    
                             Stallman's replacement of its Mocklisp interpreter 
                             with a true Lisp interpreter required that nearly  
                             all of its code be rewritten. This became the first
                             program released by the nascent GNU Project. GNU   
                             Emacs is written in                                
                             [C](/wiki/C_(programming_language)) and provides   
                             [Emacs Lisp](/wiki/Emacs_Lisp), also implemented in
                             C, as an extension language. Version 13, the first 
                             public release, was made on March 20, 1985. The    
                             first widely distributed version of GNU Emacs was  
                             version 15.34, released later in 1985. Early       
                             versions of GNU Emacs were numbered as 1.x.x, with 
                             the initial digit denoting the version of the C    
                             core. The 1 was dropped after version 1.12, as it  
                             was thought that the major number would never      
                             change, and thus the numbering skipped from 1 to   
                             13.[[32]](#cite_note-32) In September 2014, it was 
                             announced on the GNU emacs-devel mailing list that 
                             GNU Emacs would adopt a [rapid                     
                             release](/w/index.php?title=Rapid_release&action=ed
                             it&redlink=1) strategy and version numbers would   
                             increment more quickly in the                      
                             future.[[33]](#cite_note-33)                       
                                                                                
                             GNU Emacs offered more features than Gosling Emacs,
                             in particular a full-featured Lisp as its extension
                             language, and soon replaced Gosling Emacs as the de
                             facto Unix Emacs editor. [Markus                   
                             Hess](/wiki/Markus_Hess) exploited a security flaw 
                             in GNU Emacs' email subsystem in his 1986 cracking 
                             spree in which he gained                           
                             [superuser](/wiki/Superuser) access to Unix        
                             computers.[[34]](#cite_note-34)                    
                             Most of GNU Emacs functionality is implemented     
                             through a [scripting                               
                             language](/wiki/Scripting_language) called [Emacs  
                             Lisp](/wiki/Emacs_Lisp). Because about 70% of GNU  
                             Emacs is written in the Emacs Lisp extension       
                             language,[[35]](#cite_note-35) one only needs to   
                             port the C core which implements the Emacs Lisp    
                             interpreter. This makes porting Emacs to a new     
                             platform considerably less difficult than porting  
                             an equivalent project consisting of native code    
                             only.                                              
                                                                                
                             GNU Emacs development was relatively closed until  
                             1999 and was used as an example of the Cathedral   
                             development style in [The Cathedral and the        
                             Bazaar](/wiki/The_Cathedral_and_the_Bazaar). The   
                             project has since adopted a public development     
                             mailing list and anonymous                         
                             [CVS](/wiki/Concurrent_Versions_System) access.    
                             Development took place in a single CVS trunk until 
                             2008 and was then switched to the Bazaar           
                             [DVCS](/wiki/Distributed_Version_Control_System).  
                             On November 11, 2014, development was moved to     
                             [Git](/wiki/Git_(software)).[[36]](#cite_note-36)  
                             Richard Stallman has remained the principal        
                             maintainer of GNU Emacs, but he has stepped back   
                             from the role at times. Stefan Monnier and Chong   
                             Yidong were maintainers from 2008 to               
                             2015.[[37]](#cite_note-37)[[38]](#cite_note-38)    
                             John Wiegley was named maintainer in 2015 after a  
                             meeting with Stallman at MIT.[[39]](#cite_note-39) 
                             As of early 2014, GNU Emacs has had 579 individual 
                             [committers](/wiki/Commit_(revision_control))      
                             throughout its history.[[40]](#cite_note-40)       
                             XEmacs                                             
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=5)
                             ]                                                  
                                                                                
                             Lucid Emacs, based on an early alpha version of GNU
                             Emacs 19, was developed beginning in 1991 by [Jamie
                             Zawinski](/wiki/Jamie_Zawinski) and others at      
                             [Lucid Inc.](/wiki/Lucid_Inc.) One of the          
                             best-known early forks in [free                    
                             software](/wiki/Free_software) development occurred
                             when the codebases of the two Emacs versions       
                             diverged and the separate development teams ceased 
                             efforts to merge them back into a single           
                             program.[[41]](#cite_note-41) Lucid Emacs has since
                             been renamed [XEmacs](/wiki/XEmacs). Its           
                             development is currently inactive, with the most   
                             recent stable version 21.4.22 released in January  
                             2009 (while a beta was released in 2013), while GNU
                             Emacs has implemented many formerly XEmacs-only    
                             features.[[42]](#cite_note-42)[[better source      
                             needed](/wiki/Wikipedia:NOTRS)]                    
                             Other forks of GNU Emacs                           
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=6)
                             ]                                                  
                             Other notable forks include:                       
                             - Aquamacs – based on GNU Emacs (Aquamacs 3.2 is   
                             based on GNU Emacs version 24 and Aquamacs 3.3 is  
                             based on GNU Emacs version 25) which focuses on    
                             integrating with the Apple Macintosh user interface
                                                                                
                             [Meadow](/wiki/Meadow_(programming))– a Japanese   
                             version for Microsoft Windows[[43]](#cite_note-43) 
                             Various Emacs editors                              
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=7)
                             ]                                                  
                             In the past, projects aimed at producing small     
                             versions of Emacs proliferated. GNU Emacs was      
                             initially targeted at computers with a 32-bit flat 
                             address space and at least 1 [MiB](/wiki/Mebibyte) 
                             of RAM.[[44]](#cite_note-44) Such computers were   
                             high end [workstations](/wiki/Workstation) and     
                             [minicomputers](/wiki/Minicomputer) in the 1980s,  
                             and this left a need for smaller reimplementations 
                             that would run on common [personal                 
                             computer](/wiki/Personal_computer) hardware.       
                             Today's computers have more than enough power and  
                             capacity to eliminate these restrictions, but small
                             clones have more recently been designed to fit on  
                             software installation disks or for use on less     
                             capable hardware.[[45]](#cite_note-45)             
                             Other projects aim to implement Emacs in a         
                             different dialect of Lisp or a different           
                             programming language altogether. Although not all  
                             are still actively maintained, these clones        
                             include:                                           
                                                                                
                             [MicroEMACS](/wiki/MicroEMACS), which was          
                             originally written by Dave Conroy and further      
                             developed by Daniel Lawrence and which exists in   
                             many variations.[mg](/wiki/Mg_(text_editor)),      
                             originally called MicroGNUEmacs and, later, mg2a, a
                             public-domain offshoot of MicroEMACS intended to   
                             more closely resemble GNU Emacs. Now installed by  
                             default                                            
                             on[OpenBSD](/wiki/OpenBSD).[JOVE](/wiki/JOVE)(Jonat
                             han's Own Version of Emacs), Jonathan Payne's      
                             non-programmable Emacs implementation              
                             for[UNIX-like](/wiki/UNIX-like)systems.[MINCE](/wik
                             i/MINCE)(MINCE Is Not Complete Emacs), a version   
                             for[CP/M](/wiki/CP/M)and later DOS, from[Mark of   
                             the Unicorn](/wiki/Mark_of_the_Unicorn). MINCE     
                             evolved into Final Word, which eventually became   
                             the                                                
                             Borland[Sprint](/wiki/Sprint_(word_processor))word 
                             processor.[Perfect Writer](/wiki/Perfect_Writer),  
                             a[CP/M](/wiki/CP/M)implementation derived from     
                             MINCE that was included circa 1982 as the default  
                             word processor with the very earliest releases of  
                             the Kaypro II and Kaypro IV.                       
                                                                                
                             It was later provided with the Kaypro 10 as an     
                             alternative                                        
                             to[WordStar](/wiki/WordStar).[Freemacs](/wiki/Freem
                             acs), a[DOS](/wiki/DOS)version that uses an        
                             extension language based on text macro expansion   
                             and fits within the original                       
                             64[KiB](/wiki/Kibibyte)flat memory                 
                             limit.[Zmacs](/wiki/Zmacs), for the MIT[Lisp       
                             Machine](/wiki/Lisp_Machine)and its descendants,   
                             implemented                                        
                             in[ZetaLisp](/wiki/ZetaLisp).[Epsilon](/wiki/Epsilo
                             n_(text_editor)),[[46]](#cite_note-46)an Emacs     
                             clone by Lugaru Software. Versions for DOS,        
                             Windows, Linux, FreeBSD, Mac OS X and OS/2 are     
                             bundled in the release. It uses a non-Lisp         
                             extension language with C syntax and used a very   
                             early concurrent command shell buffer              
                             implementation under the single-tasking            
                             MS-DOS.[PceEmacs](/wiki/PceEmacs)is the Emacs-based
                             editor                                             
                             for[SWI-Prolog](/wiki/SWI-Prolog).[Hemlock](/wiki/H
                             emlock_(text_editor)), originally written in[Spice 
                             Lisp](/wiki/Spice_Lisp), then[Common               
                             Lisp](/wiki/Common_Lisp). A part of[CMU Common     
                             Lisp](/wiki/CMU_Common_Lisp). Influenced           
                             by[Zmacs](/wiki/Zmacs). Later forked by Lucid      
                             Common Lisp (as                                    
                             Helix),[LispWorks](/wiki/LispWorks)and[Clozure     
                             CL](/wiki/Clozure_CL)projects. There is also a     
                             Portable Hemlock project, which aims to provide a  
                             Hemlock, which runs on several Common Lisp         
                             implementations.[edwin](/wiki/MIT/GNU_Scheme), an  
                             Emacs-like text editor included with MIT/GNU       
                             Scheme.                                            
                                                                                
                             Editors with Emacs emulation                       
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=8)
                             ]                                                  
                             - The                                              
                                                                                
                             [Cocoa text system](/wiki/Cocoa_text_system)uses   
                             some of the same terminology and understands many  
                             Emacs navigation bindings. This is possible because
                             the native UI uses the[Command                     
                             key](/wiki/Command_key)(equivalent to Super)       
                             instead of the[Control                             
                             key](/wiki/Control_key).[[47]](#cite_note-47)      
                             [Eclipse (IDE)](/wiki/Eclipse_(software))provides a
                             set of Emacs keybindings.[Epsilon (text            
                             editor)](/wiki/Epsilon_(text_editor))Defaults to   
                             Emacs emulation and supports a vi mode.[GNOME      
                             Builder](/wiki/GNOME_Builder)has an emulation mode 
                             for Emacs.[GNU Readline](/wiki/GNU_Readline)is     
                             a[line editor](/wiki/Line_editor)that understands  
                             the standard Emacs navigation keybindings. It also 
                             has a[vi](/wiki/Vi_(text_editor))emulation         
                             mode.[IntelliJ IDEA](/wiki/IntelliJ_IDEA)provides a
                             set of Emacs                                       
                             keybindings.[JED](/wiki/JED_(text_editor))has an   
                             emulation mode for Emacs.[Joe's Own                
                             Editor](/wiki/Joe%27s_Own_Editor)emulates Emacs    
                             keybindings when invoked as                        
                             jmacs.[MATLAB](/wiki/MATLAB)provides Emacs         
                             keybindings for its                                
                             editor.[[48]](#cite_note-48)[Multi-Edit](/wiki/Mult
                             i-Edit)provides Emacs keybindings for its          
                             editor.[KornShell](/wiki/KornShell)has an Emacs    
                             line editing mode that predates Gnu                
                             Readline.[[49]](#cite_note-49)[Visual Studio       
                             Code](/wiki/Visual_Studio_Code)has multiple        
                             extensions available to emulate Emacs              
                             keybindings.[Oracle SQL                            
                             Developer](/wiki/Oracle_SQL_Developer)can save and 
                             load alternative keyboard-shortcut layouts. One of 
                             the built-in layouts provides Emacs-like           
                             keybindings, including using different commands to 
                             achieve closer behavior.                           
                                                                                
                             Features                                           
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=9)
                             ]                                                  
                             Emacs is primarily a [text                         
                             editor](/wiki/Text_editor) and is designed for     
                             manipulating pieces of text, although it is capable
                             of formatting and printing documents like a [word  
                             processor](/wiki/Word_processor) by interfacing    
                             with external programs such as                     
                             [LaTeX](/wiki/LaTeX),                              
                             [Ghostscript](/wiki/Ghostscript) or a web browser. 
                             Emacs provides commands to manipulate and          
                             [differentially display](/wiki/Syntax_highlighting)
                             [semantic](/wiki/Semantic) units of text such as   
                             [words](/wiki/Word_(linguistics)),                 
                             [sentences](/wiki/Sentence_(linguistics)),         
                             [paragraphs](/wiki/Paragraph) and [source          
                             code](/wiki/Source_code) constructs such as        
                             [functions](/wiki/Function_(programming)). It also 
                             features keyboard macros for performing            
                             user-defined batches of editing commands.          
                                                                                
                             GNU Emacs is a real-time display editor, as its    
                             edits are displayed onscreen as they occur. This is
                             standard behavior for modern text editors but EMACS
                             was among the earliest to implement this. The      
                             alternative is having to issue a distinct command  
                             to display text, (e.g. before or after modifying   
                             it). This was common in earlier (or merely simpler)
                             line and context editors, such as                  
                             [QED](/wiki/QED_(text_editor)) (BTS, CTSS,         
                             Multics), [ed](/wiki/Ed_(text_editor)) (Unix), ED  
                             (CP/M), and [Edlin](/wiki/Edlin) (DOS).            
                             General architecture                               
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=10
                             )]                                                 
                                                                                
                             Almost all of the functionality in Emacs, including
                             basic editing operations such as the insertion of  
                             characters into a file, is achieved through        
                             [functions](/wiki/Function_(programming)) written  
                             in a dialect of the [Lisp programming              
                             language](/wiki/Lisp_programming_language). The    
                             dialect used in GNU Emacs is known as [Emacs       
                             Lisp](/wiki/Emacs_Lisp) (Elisp), and was developed 
                             expressly to port Emacs to [GNU](/wiki/GNU) and    
                             [Unix](/wiki/Unix). The Emacs Lisp layer sits atop 
                             a stable core of basic services and platform       
                             abstraction written in the [C programming          
                             language](/wiki/C_programming_language), which     
                             enables GNU Emacs to be ported to a wide variety of
                             operating systems and architectures without        
                             modifying the implementation semantics of the Lisp 
                             system where most of the editor lives. In this Lisp
                             environment,                                       
                             [variables](/wiki/Variable_(programming)) and      
                             [functions](/wiki/Subroutine) can be modified with 
                             no need to rebuild or restart Emacs, with even     
                             newly redefined versions of core editor features   
                             being asynchronously compiled and loaded into the  
                             live environment to replace existing definitions.  
                             Modern GNU Emacs features both                     
                             [bytecode](/wiki/Bytecode) and [native             
                             code](/wiki/Native_code) compilation for Emacs     
                             Lisp.                                              
                                                                                
                             All configuration is stored in variables, classes, 
                             and data structures, and changed by simply updating
                             these live. The use of a Lisp dialect in this case 
                             is a key advantage, as Lisp syntax consists of     
                             so-called [symbolic                                
                             expressions](/wiki/S-expression) (or sexprs), which
                             can act as both evaluatable code expressions and as
                             a [data serialisation format](/wiki/Serialization) 
                             akin to, but simpler and more general than, well   
                             known ones such as [XML](/wiki/XML),               
                             [JSON](/wiki/JSON), and [YAML](/wiki/YAML). In this
                             way there is little difference in practice between 
                             customising existing features and writing new ones,
                             both of which are accomplished in the same basic   
                             way. This is operatively different from most modern
                             extensible editors, for instance such as [VS       
                             Code](/wiki/Visual_Studio_Code), in which separate 
                             languages are used to implement the interface and  
                             features of the editor and to encode its           
                             user-defined configuration and options. The goal of
                             Emacs' open design is to transparently expose      
                             Emacs' internals to the Emacs user during normal   
                             use in the same way that they would be exposed to  
                             the Emacs developer working on the [git            
                             tree](/wiki/Git), and to collapse as much as       
                             possible of the distinction between using Emacs and
                             programming Emacs, while still providing a stable, 
                             practical, and responsive editing environment for  
                             novice users.                                      
                                                                                
                             Interactive data                                   
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=11
                             )]                                                 
                             The main text editing [data                        
                             structure](/wiki/Data_structure) is the            
                             [buffer](/wiki/Data_buffer), a memory region       
                             containing data (usually text) with associated     
                             attributes. The most important of these are:       
                             - The point: the                                   
                             [editing cursor](/wiki/Cursor_(user_interface)); - 
                             The mark: a settable location which, along with the
                             point, enables selection of                        
                             - The region: a conceptually contiguous collection 
                             of text to which editing commands will be applied; 
                             - The name and                                     
                             [inode](/wiki/Inode)of the file the buffer is      
                             visiting (if any); - The default directory, where  
                             any                                                
                             [OS](/wiki/Operating_System)-level commands will   
                             be[executed from](/wiki/Working_directory)by       
                             default; - The buffer's modes, including a major   
                             mode possibly several minor modes                  
                             - The buffer encoding, the method by which Emacs   
                             represents buffer data to the user;                
                             - and a variety of buffer local variables and Emacs
                             Lisp state.                                        
                                                                                
                             Modes, in particular, are an important concept in  
                             Emacs, providing a mechanism to disaggregate Emacs'
                             functionality into sets of behaviours and keybinds 
                             relevant to specific buffers' data. Major modes    
                             provide a general package of functions and commands
                             relevant to a buffer's data and the way users might
                             be interacting with it (e.g. editing source code in
                             a specific language, [editing                      
                             hex](/wiki/Hex_editor), viewing the filesystem,    
                             interacting with [git](/wiki/Git), etc.), and minor
                             modes define subsidiary collections of             
                             functionality applicable across many major modes   
                             (such as auto-save-mode                            
                             ). Minor modes can be toggled on or off both       
                             locally to each buffer as well as globally across  
                             all buffers, while major modes can only be toggled 
                             per-buffer. Any other data relevant to a buffer but
                             not bundled into a mode can be handled by simply   
                             [focussing](/wiki/Focus_(computing)) that buffer   
                             and live modifying the relevant data directly.     
                             Any interaction with the editor (like key presses  
                             or clicking a mouse button) is realized by         
                             evaluating Emacs Lisp code, typically a command,   
                             which is a function explicitly designed for        
                             interactive use. Keys can be arbitrarily redefined 
                             and commands can also be accessed by name; some    
                             commands evaluate arbitrary Emacs Lisp code        
                             provided by the user in various ways (e.g. a family
                             of eval-                                           
                                                                                
                             functions, operating on the buffer                 
                             , region                                           
                             , or individual expression                         
                             ). Even the simplest user inputs (such a [printable
                             characters](/wiki/ASCII#Printable_characters)) are 
                             effectuated as Emacs Lisp functions, such as the   
                             self-insert-command                                
                             , bound by default to most keyboard keys in a      
                             typical text editing buffer, which parameterises   
                             itself with the                                    
                             [locale](/wiki/Locale_(computer_software))-defined 
                             character associated with the key used to call it. 
                             For example, pressing the f key in a buffer that   
                             accepts text input evaluates the code              
                             (self-insert-command 1 ?f)                         
                             , which inserts one copy of the character constant 
                             ?f                                                 
                             at point. The 1                                    
                             , in this case, is determined by what Emacs terms  
                             the universal argument: all Emacs command code     
                             accepts a numeric value which, in its simplest     
                             usage, indicates repetition of an action, but in   
                             more complex cases (where repetition doesn't make  
                             sense) can yield other behaviours. These arguments 
                             may be supplied via command prefices, such as      
                             Control+u 7 f, or more compactly Meta+7 f, which   
                             expands to (self-insert-command 7 ?f)              
                                                                                
                             . When no prefix is supplied, the universal        
                             argument is 1                                      
                             : every command implicitly runs once, but may be   
                             called multiply, or in a different way, when       
                             supplied with such a prefix. Such arguments may    
                             also be non-positive where it makes sense for them 
                             to be so - it is up to the function accepting the  
                             argument to determine, according to its own        
                             semantics, what a given number means to it. One    
                             common usage is for functions to perform actions in
                             reverse simply by checking the                     
                             [sign](/wiki/Sign_(mathematics)) of the universal  
                             argument, such as a sort command which sorts in    
                             obverse by default and in reverse when called with 
                             a negative argument, using the absolute value of   
                             its argument as the sorting key (e.g. -7           
                             sorting in reverse by column index (or delimiter)  
                             7), or undo/redo, which are simply negatives of    
                             each other (traversing forward and backward through
                             a recursive history of diffs by some number of     
                             steps at a time).                                  
                             Command language                                   
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=12
                             )]                                                 
                                                                                
                             Because of its relatively large vocabulary of      
                             commands, Emacs features a long-established command
                             language, to concisely express the keystrokes      
                             necessary to perform an action. This command       
                             language recognises the following shift and        
                             modifier keys: Ctrl, Alt, ⇧ Shift, Meta, Super, and
                             Hyper. Not all of these may be present on an       
                             IBM-style keyboard, though they can usually be     
                             configured as desired. These are represented in    
                             command language as the respective prefices: C-    
                             , A-                                               
                             , S-                                               
                             , M-                                               
                             , s-                                               
                             , and H-                                           
                             . Keys whose names are only printable with more    
                             than one character are enclosed in angle brackets. 
                             Thus, a keyboard shortcut such as Ctrl+Alt+⇧       
                             Shift+F9 (check dependent formulas and calculate   
                             all cells in all open workbooks in                 
                             [Excel](/wiki/Microsoft_Excel)) would be rendered  
                             in Emacs command language as C-A-S-<f9>            
                             , while an Emacs command like Meta+s f Ctrl+Meta+s 
                             (incremental file search by filename-matching      
                             [regexp](/wiki/Regular_expression)), would be      
                             expressed as M-s f C-M-s                           
                             . Command language is also used to express the     
                             actions needed to invoke commands with no assigned 
                             shortcut: for example, the command scratch-buffer  
                                                                                
                             (which initialises a buffer in memory for temporary
                             text storage and manipulation), when invoked by the
                             user, will be reported back as M-x scra <return>   
                             , with Emacs scanning the namespace of contextually
                             available commands to return the shortest sequence 
                             of keystrokes which uniquely lexicate it.          
                             Dynamic display                                    
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=13
                             )]                                                 
                             Because Emacs predates modern standard terminology 
                             for [graphical user                                
                             interfaces](/wiki/Graphical_user_interface), it    
                             uses somewhat divergent names for familiar         
                             interface elements. Buffers, the data that Emacs   
                             users interact with, are displayed to the user     
                             inside windows, which are [tiled                   
                             portions](/wiki/Split_screen_(computing)) of the   
                             terminal screen or the GUI window, which Emacs     
                             refers to as frames; in modern terminology, an     
                             Emacs frame would be a window and an Emacs window  
                             would be a split. Depending on configuration,      
                             windows can include their own scroll bars, line    
                             numbers, sometimes a 'header line' typically to    
                             ease navigation, and a mode line at the bottom     
                             (usually displaying buffer name, the active modes  
                             and point position of the buffer among others). The
                             bottom of every frame is used for output messages  
                             (then called 'echo area') and text input for       
                             commands (then called 'minibuffer').               
                                                                                
                             In general, Emacs display elements (windows,       
                             frames, etc.) do not belong to any specific data or
                             process. Buffers are not associated with windows,  
                             and multiple windows can be opened onto the same   
                             buffer, for example to track different parts of a  
                             long text side-by-side without scrolling back and  
                             forth, and multiple buffers can share the same     
                             text, for example to take advantage of different   
                             major modes in a mixed-language file. Similarly,   
                             Emacs instances are not associated with particular 
                             frames, and multiple frames can be opened          
                             displaying a single running Emacs process, e.g. a  
                             frame per screen in a multi-monitor setup, or a    
                             terminal frame connected via [ssh](/wiki/SSH) from 
                             a remote system and a graphical frame displaying   
                             the same Emacs process via the local system's      
                             monitor.                                           
                                                                                
                             Just as buffers don't require windows, running     
                             Emacs processes do not require any frames, and one 
                             common usage pattern is to deploy Emacs as an      
                             editing server: running it as a                    
                             [headless](/wiki/Headless_software)                
                             [daemon](/wiki/Daemon_(computing)) and connecting  
                             to it via a frame-spawning client. This server can 
                             then be made available in any situation where an   
                             editor is required, simply by declaring the client 
                             program to be the user's EDITOR                    
                             or VISUAL                                          
                             variable. Such a server continues to run in the    
                             background, managing any child processes,          
                             accumulating                                       
                             [stdin](/wiki/Standard_streams#Standard_input_(stdi
                             n)) from open pipes, ports, or fifos, performing   
                             periodic or pre-programmed actions, and remembering
                             buffer undo history, saved text snippets, command  
                             history, and other user state between editing      
                             sessions. In this mode of operation, Emacs overlaps
                             the functionality of programs like                 
                             [screen](/wiki/GNU_Screen) and [tmux](/wiki/Tmux). 
                                                                                
                             Because of its separation of display concerns from 
                             editing functionality, Emacs can display roughly   
                             similarly on any device more complex than a [dumb  
                             terminal](/wiki/Dumb_terminal), including providing
                             typical graphical [WIMP](/wiki/WIMP_(computing))   
                             elements on sufficiently featureful text terminals 
                             - though graphical frames are the preferred mode of
                             display, providing a strict superset of the        
                             features of text terminal frames.                  
                             Customizability and extensibility                  
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=14
                             )]                                                 
                             - User actions can be recorded into macros and     
                             replayed to automate complex, repetitive tasks.    
                             This is often done on an ad-hoc basis, with each   
                             macro discarded after use, although macros can be  
                             saved and invoked later.                           
                             - Because of the uniformity of Emacs' features'    
                             definition in terms of Emacs Lisp, what counts as a
                             "user action" for the purposes of macro-automation 
                             is flexible: macros may include, e.g., keypresses, 
                             commands, mouse clicks, other macros, and anything 
                             that can be effectuated via these. Macros can thus 
                             be recursive, and can be defined and invoked inside
                             of macros.                                         
                             - At startup, Emacs executes an Emacs Lisp script  
                             named ~/.emacs (recent versions also look for      
                             ~/emacs.el, ~/.emacs.d/init.el, and                
                             ~/.config/emacs/init.el,                           
                                                                                
                             [[50]](#cite_note-50)as well as similar variations 
                             on                                                 
                             ~/.config/emacs/early-init.el.[[51]](#cite_note-51)
                             Emacs reads early-init.el first if it exists, and  
                             it can be used to configure or short-circuit core  
                             Emacs features before they load, such as the       
                             graphical display system or[package                
                             manager](/wiki/Package_manager). It will then      
                             execute the first version .emacs or init.el that it
                             finds, ignoring the rest. This personal            
                             customization file can be arbitrarily long and     
                             complex, but typical content includes:- Setting    
                             global variables or invoking functions to customize
                             Emacs behaviour, for example                       
                             (set-default-coding-systems 'utf-8)                
                             [Key bindings](/wiki/Keyboard_shortcut)to override 
                             standard ones and to add shortcuts for commands    
                             that the user finds convenient but don't have a key
                             binding by default. Example:(global-set-key (kbd   
                             "C-x C-b") 'ibuffer)                               
                             - Loading, enabling and initializing extensions    
                             (Emacs comes with many extensions, but only a few  
                             are loaded by default.)                            
                             - Configuring event hooks to run arbitrary code at 
                             specific times, for example to automatically       
                             recompile source code after saving a buffer (      
                             after-save-hook                                    
                                                                                
                             ) - Executing arbitrary files, usually to split an 
                             overly long configuration file into manageable and 
                             homogeneous parts (~/.emacs.d/ and ~/elisp/ are    
                             traditional locations for these personal scripts)  
                             - Setting global variables or invoking functions to
                             customize Emacs behaviour, for example             
                             - The customize extension allows the user to set   
                             configuration properties such as the color scheme  
                             interactively, from within Emacs, in a more        
                             user-friendly way than by setting variables in     
                             .emacs: it offers search, descriptions and help    
                             text, multiple choice inputs, reverting to         
                             defaults, modification of the running Emacs        
                             instance without reloading, and other conveniences 
                             similar to the                                     
                             [preferences](/wiki/Preferences)functionality of   
                             other programs. The customized values are saved in 
                             .emacs (or another designated file) automatically. 
                             - Themes, affecting the choice of fonts and        
                             colours, are defined as Emacs Lisp files and chosen
                             through the customize extension.                   
                             - Modes, which support editing a range of          
                             programming languages (e.g., emacs-lisp-mode,      
                             c-mode, java-mode, ESS for R) by changing fonts to 
                             highlight the code and keybindings modified        
                             (foreword-function vs. forward-page). Other modes  
                             include ones that support editing spreadsheets     
                             (dismal) and structured text.                      
                                                                                
                             Self-documenting                                   
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=15
                             )]                                                 
                             The first Emacs contained a help library that      
                             included documentation for every command, variable 
                             and internal function. Because of this, Emacs      
                             proponents described the software as               
                             self-documenting in that it presents the user with 
                             information on its normal features and its current 
                             state. Each function includes a documentation      
                             string that is displayed to the user on request, a 
                             practice that subsequently spread to programming   
                             languages including                                
                             [Lisp](/wiki/Lisp_programming_language),           
                             [Java](/wiki/Java_(programming_language)),         
                             [Perl](/wiki/Perl), and                            
                             [Python](/wiki/Python_(programming_language)). This
                             help system can take users to the actual code for  
                             each function, whether from a built-in library or  
                             an added third-party library.                      
                             Emacs also has a built-in                          
                             [tutorial](/wiki/Tutorial). Emacs displays         
                             instructions for performing simple editing commands
                             and invoking the tutorial when it is launched with 
                             no file to edit. The tutorial is by Stuart Cracraft
                             and Richard Stallman.                              
                             Culture                                            
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=16
                             )]                                                 
                             Church of Emacs                                    
                                                                                
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=17
                             )]                                                 
                             The Church of Emacs, formed by [Richard            
                             Stallman](/wiki/Richard_Stallman), is a [parody    
                             religion](/wiki/Parody_religion) created for Emacs 
                             users.[[52]](#cite_note-52) While it refers to     
                             [vi](/wiki/Vi_(text_editor)) as the editor of the  
                             beast (vi-vi-vi being [6-6-6](/wiki/666_(number))  
                             in Roman numerals), it does not oppose the use of  
                             vi; rather, it calls it [proprietary               
                             software](/wiki/Proprietary_software)              
                             [anathema](/wiki/Anathema). ("Using a              
                             [free](/wiki/Free_software) version of vi is not a 
                             sin but a                                          
                             [penance](/wiki/Penance)."[[53]](#cite_note-53))   
                             The Church of Emacs has its own                    
                             [newsgroup](/wiki/Newsgroup),                      
                             alt.religion.emacs,[[54]](#cite_note-54) that has  
                             posts purporting to support this parody religion.  
                             Supporters of vi have created an opposing Cult of  
                             vi.                                                
                                                                                
                             Stallman has jokingly referred to himself as St I  
                             [GNU](/wiki/GNU) cius, a saint in the Church of    
                             Emacs.[[55]](#cite_note-55) This is in reference to
                             [Ignatius of Antioch](/wiki/Ignatius_of_Antioch),  
                             an early Church father venerated in Christianity.  
                             Terminology                                        
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=18
                             )]                                                 
                             The word emacs is sometimes pluralized as emacsen, 
                             by phonetic analogy with                           
                             [boxen](https://en.wiktionary.org/wiki/boxen) and  
                             [VAXen](/wiki/VAX), referring to different         
                             varieties of Emacs.[[56]](#cite_note-56)           
                             See also                                           
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=19
                             )]                                                 
                             [Comparison of text                                
                             editors](/wiki/Comparison_of_text_editors)[Conkeror
                             ](/wiki/Conkeror)[GNU                              
                             TeXmacs](/wiki/GNU_TeXmacs)[List of text           
                             editors](/wiki/List_of_text_editors)[List of Unix  
                             commands](/wiki/List_of_Unix_commands)[Integrated  
                             development                                        
                             environment](/wiki/Integrated_development_environme
                             nt)                                                
                             References                                         
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=20
                             )]                                                 
                             - ^                                                
                             [a](#cite_ref-Greenberg_1-0)[b](#cite_ref-Greenberg
                             _1-1)Greenberg, Bernard S. (1979).[Multics Emacs:  
                             The History, Design and                            
                             Implementation](http://www.multicians.org/mepap.htm
                             l). - ^                                            
                                                                                
                             [a](#cite_ref-Gnu_Emacs_FAQ_2-0)[b](#cite_ref-Gnu_E
                             macs_FAQ_2-1)[c](#cite_ref-Gnu_Emacs_FAQ_2-2)["GNU 
                             Emacs                                              
                             FAQ"](https://www.gnu.org/software/emacs/emacs-faq.
                             html#Origin-of-the-term-Emacs). - ^                
                             [a](#cite_ref-MACSimizing_TECO_3-0)[b](#cite_ref-MA
                             CSimizing_TECO_3-1)[c](#cite_ref-MACSimizing_TECO_3
                             -2)[d](#cite_ref-MACSimizing_TECO_3-3)Adrienne G.  
                             Thompson.["MACSimizing                             
                             TECO"](https://web.archive.org/web/20131024150047/h
                             ttp://www.codeartnow.com/hacker-art-1/macsimizing-t
                             eco). Archived from[the                            
                             original](http://www.codeartnow.com/hacker-art-1/ma
                             csimizing-teco)on 2013-10-24. Retrieved 2012-02-26.
                             [^](#cite_ref-4)["A Tutorial Introduction to GNU   
                             Emacs"](http://www2.lib.uchicago.edu/keith/tcl-cour
                             se/emacs-tutorial.html).For an editor to be called 
                             "emacs" the main requirement is that it be fully   
                             extensible with a real programming language, not   
                             just a macro language.                             
                                                                                
                             [^](#cite_ref-5)["GNU Emacs Pocket                 
                             Reference"](https://ebooks-it.org/1565924967-ebook.
                             htm).GNU Emacs is the most popular and widespread  
                             of the Emacs family of editors.                    
                                                                                
                             [^](#cite_ref-6)["GNU Emacs                        
                             Manual"](https://www.gnu.org/software/emacs/manual/
                             html_node/emacs/index.html). FSF. Retrieved 24     
                             November 2012.[^](#cite_ref-7)Zawinski, Jamie      
                             (2007-10-29).["Emacs                               
                             Timeline"](https://www.jwz.org/doc/emacs-timeline.h
                             tml). www.jwz.org. Retrieved                       
                             2023-07-31.[^](#cite_ref-8)["On the Origin of Emacs
                             in 1976 (Emacs blog                                
                             articles)"](https://onlisp.co.uk/On-the-Origin-of-E
                             macs-in-1976.html). onlisp.co.uk. Retrieved        
                             2024-07-24.[^](#cite_ref-wikidata-7d4c2b2092cb944b3
                             a0a41b985d72cb5868baa4a-v18_9-0)["Emacs 30.1       
                             released"](https://lists.gnu.org/archive/html/emacs
                             -devel/2025-02/msg00997.html).[^](#cite_ref-10)["Tr
                             amp User                                           
                             Manual"](https://www.gnu.org/software/tramp/).[Free
                             Software                                           
                             Foundation](/wiki/Free_Software_Foundation).       
                             Retrieved 2009-04-04.[^](#cite_ref-11)["Introducing
                             Elfeed, an Emacs Web Feed                          
                             Reader"](http://nullprogram.com/blog/2013/09/04/).[
                             ^](#cite_ref-12)["Collaborative editing using      
                             Conflict-free Replicated Data                      
                             Types"](https://code.librehq.com/qhong/crdt.el).[^]
                             (#cite_ref-13)["Amusements"](https://www.gnu.org/so
                             ftware/emacs/manual/html_node/emacs/Amusements.html
                             ).Finally, if you find yourself frustrated, try    
                             describing your problems to the famous             
                             psychotherapist Eliza. Just do M-x doctor.         
                                                                                
                             [^](#cite_ref-jwz_timeline_14-0)[Zawinski,         
                             Jamie](/wiki/Jamie_Zawinski)(2005-06-21)           
                             [1999].["Emacs                                     
                             Timeline"](https://www.jwz.org/doc/emacs-timeline.h
                             tml). Retrieved 11 August                          
                             2015.[^](#cite_ref-15)[Richard                     
                             Stallman](/wiki/Richard_Stallman)is often credited 
                             as another co-creator, but as[Daniel               
                             Weinreb](/wiki/Daniel_Weinreb)wrote, "The original 
                             (TECO-based) Emacs was created and designed by Guy 
                             L. Steele Jr. and David Moon. After they had it    
                             working, and it had become established as the      
                             standard text editor at the AI lab, Stallman took  
                             over its maintenance." Moon himself responded "All 
                             true, so far as I can remember.                    
                                                                                
                             But in all fairness I have to say that Stallman    
                             greatly improved Emacs after he “liberated” it from
                             Guy and me." See[Weinreb,                          
                             Dan](/wiki/Daniel_Weinreb)(November 11,            
                             2007),["Rebuttal to Stallman's Story About The     
                             Formation of Symbolics and                         
                             LMI"](https://web.archive.org/web/20090101103828/ht
                             tp://danweinreb.org/blog/rebuttal-to-stallmans-stor
                             y-about-the-formation-of-symbolics-and-lmi), Dan   
                             Weinreb's blog: software and innovation, archived  
                             from the original on January 1,                    
                             2009.[^](#cite_ref-16)["A history of               
                             Emacs"](http://www.xemacs.org/Documentation/21.5/ht
                             ml/internals_3.html). XEmacs Internals Manual.     
                             2006-12-11. Retrieved                              
                             2007-08-22.[^](#cite_ref-17)Allombert,             
                             Bill.["Debian Popularity                           
                             Contest"](http://popcon.debian.org/main/editors/by_
                             vote). Editors report. Debian.                     
                                                                                
                             Retrieved 22 November 2011.[^](#cite_ref-18)["The  
                             10 oldest, significant open-source                 
                             programs"](https://www.zdnet.com/article/the-10-old
                             est-significant-open-source-programs/).[ZDNet](/wik
                             i/ZDNet).[^](#cite_ref-isbn1-56592-152-6_19-0)Raymo
                             nd, Eric S.; Cameron, Debra; Rosenblatt, Bill      
                             (1996).[Learning GNU Emacs, 2nd                    
                             Edition](https://books.google.com/books?id=a_lea3-w
                             -1kC&q=bucky+keyboard&pg=PA408). Sebastopol, CA:   
                             O'Reilly. pp.                                      
                             408–409.[ISBN](/wiki/ISBN_(identifier))[1-56592-152
                             -6](/wiki/Special:BookSources/1-56592-152-6).[^](#c
                             ite_ref-20)[Williams,                              
                             Sam](/wiki/Sam_Williams_(journalist))(2002).[Free  
                             as in Freedom: Richard Stallman's Crusade for Free 
                             Software](https://books.google.com/books?id=ou2fOwh
                             qAD8C&pg=PA82).                                    
                                                                                
                             Sebastopol, CA: O'Reilly Media. p.                 
                             82.[ISBN](/wiki/ISBN_(identifier))[0-596-00287-4](/
                             wiki/Special:BookSources/0-596-00287-4).[^](#cite_r
                             ef-21)Arthur Samuel (March 1980).["Essential       
                             E"](http://i.stanford.edu/pub/cstr/reports/cs/tr/80
                             /796/CS-TR-80-796.pdf)(PDF). Retrieved             
                             2020-04-19.[^](#cite_ref-22)["EMACS vs. vi: The    
                             endless geek 'holy                                 
                             war'"](https://web.archive.org/web/20141126181620/h
                             ttp://archive09.linux.com/feature/19661). Archived 
                             from[the                                           
                             original](http://archive09.linux.com/feature/19661)
                             on 2014-11-26. Retrieved 2014-05-30."EMACS as such 
                             actually started out as a standards project,"      
                             emails Guy Steele                                  
                                                                                
                             [^](#cite_ref-23)[Stallman, Richard                
                             M.](/wiki/Richard_Stallman)(1987).["The EMACS      
                             Full-Screen                                        
                             Editor"](http://www.lysator.liu.se/history/garb/txt
                             /87-1-emacs.txt). GARB. No. Maj 1987. Lysator,     
                             Linköping University. pp. 8–11. Retrieved          
                             2007-09-14.[^](#cite_ref-24)Reynolds, Craig        
                             (1992-02-10). Wiseman, David G. (ed.).["The Emac   
                             Bolio Name                                         
                             Koan"](https://web.archive.org/web/20030116151636/h
                             ttp://www.csd.uwo.ca/staff/magi/personal/humour/Com
                             puter_Folklore/The%20Emac%20Bolio%20Name%20Koan.htm
                             l). David G. Wiseman: Stories of Computer Folklore.
                             Archived from[the                                  
                             original](http://www.csd.uwo.ca/staff/magi/personal
                             /humour/Computer_Folklore/The%20Emac%20Bolio%20Name
                             %20Koan.html)on January 16, 2003.A cocky novice    
                             once said to Stallman: 'I can guess why the editor 
                             is called Emacs, but why is the justifier called   
                             Bolio?'. Stallman replied forcefully, Names are but
                             names, Emack & Bolio's is the name of a popular ice
                             cream shop in Boston town. Neither of these men had
                             anything to do with the software.' His question    
                             answered, yet unanswered, the novice turned to go, 
                             but Stallman called to him, 'Neither Emacs nor     
                             Bolio had anything to do with the ice cream shop,  
                             either.'                                           
                             - ^                                                
                                                                                
                             [a](#cite_ref-519a_25-0)[b](#cite_ref-519a_25-1)Sta
                             llman, Richard (March 26, 1981).[EMACS: The        
                             Extensible, Customizable, Self-Documenting, Display
                             Editor](http://dspace.mit.edu/bitstream/handle/1721
                             .1/5736/AIM-519A.pdf)(PDF) (Technical report). MIT 
                             AI Lab. AI Memo 519a. Retrieved 2011-01-07.        
                             [^](#cite_ref-26)Leigh Klotz (2007-08-29).["email  
                             quoted in "Be Careful What You Joke                
                             About""](http://pogue.blogs.nytimes.com/2007/08/29/
                             be-careful-what-you-joke-about/). The New York     
                             Times. Retrieved                                   
                             2010-05-01.[^](#cite_ref-27)["Comment by ZWEI's    
                             author Dan                                         
                             Weinreb"](http://steve-yegge.blogspot.be/2008/04/xe
                             macs-is-dead-long-live-xemacs.html#c818782918560086
                             0534).I wrote the second Emacs ever: the Lisp      
                             machine implementation, whose spec was "do what    
                             Stallman's PDP-10 (original) Emacs does", and then 
                             progressed from there. There's just a whole LOT of 
                             it. It took me and Mike McMahon endless hours to   
                             implement so many commands to make ZWEI/Zmacs.     
                                                                                
                             [^](#cite_ref-28)Owen Theodore Anderson (January   
                             1979).["The Design and Implementation of a         
                             Display-Oriented Editor Writing                    
                             System"](http://dspace.mit.edu/bitstream/handle/172
                             1.1/16038/07332831.pdf?sequence=1)(PDF). Retrieved 
                             2012-09-09.[^](#cite_ref-Emacs.BookCCA_29-0)Christo
                             pher Kelty; Mario Biagioli; Peter Jaszi; Martha    
                             Woodmansee (2015). Making and Unmaking Intellectual
                             Property.Computer Corporation of America (CCA)     
                             EMACS, written by Steve Zimmerman                  
                             [^](#cite_ref-30)["Emacs"](http://www.softwareprese
                             rvation.org/projects/emacs). December 17,          
                             2017.[^](#cite_ref-31)["Differences between GNU    
                             Emacs and CCA                                      
                             Emacs"](http://www.retro11.de/ouxr/43bsd/usr/src/ne
                             w/emacs/etc/CCADIFF).[^](#cite_ref-32)["A History  
                             of                                                 
                             Emacs"](http://www.xemacs.org/Documentation/21.5/ht
                             ml/internals_3.html).[^](#cite_ref-33)["emacs-devel
                              msg 00872                                         
                             (2014-09-29)"](http://lists.gnu.org/archive/html/em
                             acs-devel/2014-09/msg00872.html).In retrospect 24.3
                             should have been named 25.1 and 24.4 should have   
                             been named 26.1. The .N thingy should really be    
                             kept only for bug-fix releases and neither of 24.3,
                             24.4, nor the previously planned 24.5 are bug-fix  
                             releases.                                          
                                                                                
                             [^](#cite_ref-34)[Stoll,                           
                             Clifford](/wiki/Clifford_Stoll)(1988).["Stalking   
                             the wily                                           
                             hacker"](https://doi.org/10.1145%2F42411.42412).[Co
                             mmunications of the                                
                             ACM](/wiki/Communications_of_the_ACM). 31 (5):     
                             484–497.[doi](/wiki/Doi_(identifier)):[10.1145/4241
                             1.42412](https://doi.org/10.1145%2F42411.42412).[S2
                             CID](/wiki/S2CID_(identifier))[6956966](https://api
                             .semanticscholar.org/CorpusID:6956966).[^](#cite_re
                             f-35)["GNU                                         
                             Emacs"](https://www.openhub.net/p/emacs/analyses/la
                             test/languages_summary).[Open Hub](/wiki/Open_Hub).
                             Retrieved 2017-11-25.[^](#cite_ref-36)[Raymond,    
                             Eric](/wiki/Eric_S._Raymond)(2014-11-12).["New Git 
                             repository is                                      
                             up"](http://lists.gnu.org/archive/html/emacs-devel/
                             2014-11/msg00681.html). Retrieved                  
                             2017-11-25.[^](#cite_ref-37)[Stallman,             
                             Richard](/wiki/Richard_Stallman)(2008-02-22).["Re: 
                             Looking for a new Emacs maintainer or              
                             team"](http://lists.gnu.org/archive/html/emacs-deve
                             l/2008-02/msg02140.html).                          
                                                                                
                             gnu.org Mailing List. Retrieved                    
                             2017-11-25.[^](#cite_ref-38)McNamara, Paul         
                             (2008-02-25).["Stallman on handing over GNU Emacs, 
                             its future and the importance of                   
                             nomenclature"](https://web.archive.org/web/20080523
                             201156/http://www.networkworld.com/community/node/2
                             5360).[Network World](/wiki/Network_World).        
                             Archived from[the                                  
                             original](http://www.networkworld.com/community/nod
                             e/25360)on 2008-05-23. Retrieved                   
                             2017-11-25.[^](#cite_ref-39)Chirgwin, Richard      
                             (2015-11-05).["Emacs gets new maintainer as Richard
                             Stallman signs                                     
                             off"](https://www.theregister.co.uk/2015/11/05/wieg
                             ley_new_emacs_maintainer/).[The                    
                             Register](/wiki/The_Register). Retrieved           
                             2017-11-25.[^](#cite_ref-40)[Raymond,              
                             Eric](/wiki/Eric_S._Raymond)(2014-03-29).["Ugliest…
                             repository…conversion…ever"](http://esr.ibiblio.org
                             /?p=5634). Retrieved 2017-11-25.twenty-nine years  
                             of continuous development by no fewer than 579     
                             people                                             
                                                                                
                             [^](#cite_ref-41)Stephen J., Turnbull.["XEmacs vs. 
                             GNU                                                
                             Emacs"](http://www.xemacs.org/About/XEmacsVsGNUemac
                             s.html). Retrieved                                 
                             2012-10-02.[^](#cite_ref-42)["XEmacs is Dead. Long 
                             Live                                               
                             XEmacs!"](http://steve-yegge.blogspot.com/2008/04/x
                             emacs-is-dead-long-live-xemacs.html).[^](#cite_ref-
                             43)[FrontPage - Meadow                             
                             Wiki](http://www.meadowy.org/meadow/pukiwiki-en/)[A
                             rchived](https://web.archive.org/web/20120216081734
                             /http://www.meadowy.org/meadow/pukiwiki-en/)2012-02
                             -16 at the[Wayback                                 
                             Machine](/wiki/Wayback_Machine)[^](#cite_ref-44)["M
                             y Lisp Experiences and the Development of GNU      
                             Emacs"](https://www.gnu.org/gnu/rms-lisp.html).Ther
                             e were people in those days, in 1985, who had      
                             one-megabyte machines without virtual memory. They 
                             wanted to be able to use GNU Emacs. This meant I   
                             had to keep the program as small as possible.      
                                                                                
                             [^](#cite_ref-45)["GNU Zile (Zile is Lossy Emacs) -
                             Summary"](https://savannah.gnu.org/projects/zile/).
                             Modern computers have more than enough resources to
                             start and run a full Emacs in a fraction of a      
                             second, and Emacs is probably what you want. Zile  
                             is a small, fast, and powerful Emacs clone. It is  
                             useful for small footprint installations (e.g. on  
                             floppy disk), machines with little memory, or quick
                             editing sessions, especially on remote machines or 
                             as a different user, e.g. root.                    
                                                                                
                             [^](#cite_ref-46)["Lugaru Software                 
                             Homepage"](http://www.lugaru.com/).[^](#cite_ref-47
                             )["Cocoa text                                      
                             system"](https://www.hcs.harvard.edu/~jrus/site/coc
                             oa-text.html).[^](#cite_ref-48)["Setting up        
                             keybindings for the Command Window and             
                             Editor"](https://blogs.mathworks.com/community/2007
                             /05/11/setting-up-keybindings-for-the-command-windo
                             w-and-editor/). Mathworks Blogs. 2007-05-11.       
                             Retrieved 2019-08-18.[^](#cite_ref-49)Bolsky,      
                             Morris I.; Korn, David G. (1989).                  
                             "Acknowledgements".[The KornShell Command and      
                             Programming                                        
                             Language](https://archive.org/details/kornshellcomm
                             and00bols). Englewood Cliffs, NJ: Prentice Hall.   
                             pp.                                                
                             xii.[ISBN](/wiki/ISBN_(identifier))[0-13-516972-0](
                             /wiki/Special:BookSources/0-13-516972-0).[^](#cite_
                             ref-50)["Init                                      
                             file"](https://www.gnu.org/software/emacs/manual/ht
                             ml_node/emacs/Init-File.html).[^](#cite_ref-51)["Ea
                             rly Init                                           
                             file"](https://www.gnu.org/software/emacs/manual/ht
                             ml_node/emacs/Early-Init-File.html).[^](#cite_ref-5
                             2)["Saint IGNUcius - Richard                       
                             Stallman"](http://stallman.org/saint.html).        
                                                                                
                             Retrieved 29 January 2015.[^](#cite_ref-53)["The   
                             unabridged selective transcript of Richard M       
                             Stallman's talk at the                             
                             ANU"](https://web.archive.org/web/20111004151936/ht
                             tp://linuxhelp.blogspot.com/2006/04/unabridged-sele
                             ctive-transcript-of.html). Archived from[the       
                             original](http://linuxhelp.blogspot.com/2006/04/una
                             bridged-selective-transcript-of.html)on 4 October  
                             2011. Retrieved 29 January                         
                             2015.[^](#cite_ref-54)[alt.religion.emacs          
                             newsgroup](news:alt.religion.emacs)[^](#cite_ref-55
                             )["Saint IGNUcius - Richard                        
                             Stallman"](http://www.stallman.org/saint.html).    
                             www.stallman.org. Retrieved 27 March               
                             2018.[^](#cite_ref-56)["VAXen"](http://www.catb.org
                             /~esr/jargon/html/V/VAXen.html). Catb.org.         
                             Retrieved 2009-11-08.                              
                                                                                
                             Bibliography                                       
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=21
                             )]                                                 
                                                                                
                             [Ciccarelli,                                       
                             Eugene](/w/index.php?title=Eugene_Ciccarelli&action
                             =edit&redlink=1)(1978). An Introduction to the     
                             Emacs Editor. Cambridge, Massachusetts: MIT        
                             Artificial Intelligence Laboratory.                
                             AIM-447.[PDF](https://archive.org/details/bitsavers
                             _mitaiaimAI_4967481)[Stallman, Richard             
                             M.](/wiki/Richard_Stallman)(1981) [1979]. EMACS:   
                             The Extensible, Customizable, Self-Documenting     
                             Display Editor. Cambridge Massachusetts: MIT       
                             Artificial Intelligence Laboratory.                
                             AIM-519A.[PDF](https://archive.org/details/bitsaver
                             s_mitaiaimAI_2207521)[HTML](https://www.gnu.org/sof
                             tware/emacs/emacs-paper.html)[Stallman, Richard    
                             M.](/wiki/Richard_Stallman)(2002).[GNU Emacs       
                             Manual](https://www.gnu.org/software/emacs/manual/)
                             (15th ed.). GNU                                    
                             Press.[ISBN](/wiki/ISBN_(identifier))[1-882114-85-X
                             ](/wiki/Special:BookSources/1-882114-85-X).[Stallma
                             n, Richard M.](/wiki/Richard_Stallman)(2002).["My  
                             Lisp Experiences and the Development of GNU        
                             Emacs"](https://www.gnu.org/gnu/rms-lisp.html).    
                             Retrieved 2007-02-01.[Chassel, Robert              
                             J.](/wiki/Robert_J._Chassell)(2004).[An            
                             Introduction to Programming in Emacs               
                             Lisp](https://www.gnu.org/software/emacs/emacs-lisp
                             -intro/). GNU                                      
                             Press.[ISBN](/wiki/ISBN_(identifier))[1-882114-56-6
                             ](/wiki/Special:BookSources/1-882114-56-6).-       
                             Glickstein, Bob (April 1997).                      
                                                                                
                             [Writing GNU Emacs                                 
                             Extensions](https://archive.org/details/writinggnue
                             macse00glic). O'Reilly &                           
                             Associates.[ISBN](/wiki/ISBN_(identifier))[1-56592-
                             261-1](/wiki/Special:BookSources/1-56592-261-1). - 
                             Cameron, Debra; Elliott, James; Loy, Marc; Raymond,
                             Eric; Rosenblatt, Bill (December 2004).            
                                                                                
                             [Learning GNU Emacs, 3rd                           
                             Edition](http://www.oreilly.com/catalog/gnu3/).    
                             O'Reilly &                                         
                             Associates.[ISBN](/wiki/ISBN_(identifier))[0-596-00
                             648-9](/wiki/Special:BookSources/0-596-00648-9). - 
                             Finseth, Craig A. (1991).                          
                             [The Craft of Text Editing -or- Emacs for the      
                             Modern World](http://www.finseth.com/craft/).      
                             Springer-Verlag &                                  
                             Co.[ISBN](/wiki/ISBN_(identifier))[978-1-4116-8297-
                             9](/wiki/Special:BookSources/978-1-4116-8297-9). - 
                             Thompson, Adrienne G. (2009).                      
                             ["MACSimizing                                      
                             TECO"](http://www.codeartnow.com/hacker-art/macsimi
                             zing-teco). Retrieved 2012-02-26.                  
                             External links                                     
                             [[edit](/w/index.php?title=Emacs&action=edit§ion=22
                             )]                                                 
                             [Emacs](https://en.wikiquote.org/wiki/Special:Searc
                             h/Emacs).                                          
                             [Emacs](https://commons.wikimedia.org/wiki/Category
                             :Emacs).                                           
                                                                                
                             [Emacs](https://en.wikibooks.org/wiki/Special:Searc
                             h/Emacs)                                           
                             [Categories](/wiki/Help:Category):                 
                             [Emacs](/wiki/Category:Emacs)[1970s in             
                             computing](/wiki/Category:1970s_in_computing)[1976 
                             software](/wiki/Category:1976_software)[Free file  
                             comparison                                         
                             tools](/wiki/Category:Free_file_comparison_tools)[F
                             ree integrated development                         
                             environments](/wiki/Category:Free_integrated_develo
                             pment_environments)[Free software programmed in    
                             C](/wiki/Category:Free_software_programmed_in_C)[Fr
                             ee software programmed in                          
                             Lisp](/wiki/Category:Free_software_programmed_in_Li
                             sp)[Free text                                      
                             editors](/wiki/Category:Free_text_editors)[Hex     
                             editors](/wiki/Category:Hex_editors)[Linux         
                             integrated development                             
                             environments](/wiki/Category:Linux_integrated_devel
                             opment_environments)[Linux text                    
                             editors](/wiki/Category:Linux_text_editors)[MacOS  
                             text                                               
                             editors](/wiki/Category:MacOS_text_editors)[OpenVMS
                             text                                               
                             editors](/wiki/Category:OpenVMS_text_editors)[Unix 
                             text                                               
                             editors](/wiki/Category:Unix_text_editors)[Windows 
                             text editors](/wiki/Category:Windows_text_editors) 
[03/12/25 20:30:49] INFO     PromptTask f8c230adb8a44485995e92b17d7847fa        
                             Output: Here's a comparison of Vim and Emacs based 
                             on the information retrieved:                      
                                                                                
                             ### Vim                                            
                             - **Origin**: Vim, short for "Vi IMproved," is a   
                             free and open-source text editor that is an        
                             enhanced version of the vi editor. It was created  
                             by Bram Moolenaar and first released in 1991.      
                             - **Design**: Vim is designed for both command-line
                             interface and graphical user interface use. It is  
                             known for its efficiency in text editing, allowing 
                             users to perform complex text manipulations with   
                             minimal keystrokes.                                
                             - **Features**: Vim supports syntax highlighting,  
                             code folding, spell checking, and a wide range of  
                             plugins. It is highly customizable through scripts 
                             written in Vim script or other languages like      
                             Python and Lua.                                    
                             - **Modes**: Vim operates in different modes, such 
                             as normal, insert, visual, and command-line modes, 
                             which allow for different types of text            
                             manipulation.                                      
                             - **Popularity**: Vim is popular among developers  
                             for its speed and efficiency, especially in        
                             environments where keyboard-centric navigation is  
                             preferred.                                         
                             - **License**: Vim is released under a license that
                             encourages donations to charity, specifically to   
                             help children in Uganda.                           
                                                                                
                             ### Emacs                                          
                             - **Origin**: Emacs is a family of text editors    
                             that began development in the mid-1970s. The most  
                             popular version, GNU Emacs, was created by Richard 
                             Stallman for the GNU Project.                      
                             - **Design**: Emacs is known for its extensibility 
                             and is often described as an "extensible,          
                             customizable, self-documenting, real-time display  
                             editor." It uses Emacs Lisp as its scripting       
                             language.                                          
                             - **Features**: Emacs offers a wide range of       
                             features, including text editing, file management, 
                             email, news reading, and more. It supports a vast  
                             number of extensions and can be customized to      
                             perform almost any task.                           
                             - **Modes**: Emacs uses modes to provide           
                             context-specific editing capabilities, such as     
                             major modes for different programming languages and
                             minor modes for additional features.               
                             - **Popularity**: Emacs is favored by users who    
                             appreciate its extensibility and the ability to    
                             customize it to suit their workflow. It is also    
                             part of the traditional "editor wars" with vi/Vim. 
                             - **License**: Emacs is free software, released    
                             under the GNU General Public License.              
                                                                                
                             ### Contrast                                       
                             - **User Interface**: Vim is more keyboard-centric 
                             with a steeper learning curve due to its modal     
                             nature, while Emacs offers a more traditional      
                             interface with extensive use of keybindings.       
                             - **Extensibility**: Emacs is often considered more
                             extensible due to its use of Emacs Lisp, allowing  
                             users to write complex extensions and applications 
                             within the editor.                                 
                             - **Community and Culture**: Both editors have     
                             strong communities and are part of the "editor     
                             wars," with users often having strong preferences  
                             for one over the other.                            
                             - **Learning Curve**: Vim's modal interface can be 
                             challenging for new users, while Emacs requires    
                             learning Emacs Lisp for deeper customization.      
                                                                                
                             Both Vim and Emacs are powerful text editors with  
                             unique features and capabilities, catering to      
                             different user preferences and workflows.          
