Válka editorů - Editor war
![]() | Téma tohoto článku nemusí splňovat požadavky Wikipedie obecný pokyn k notabilitě.Srpna 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
The válka redaktorů je rivalita mezi uživateli Emacs a vi (nyní obvykle Vim nebo nedávno Neovim ) textové editory. Soupeření se stalo trvalou součástí hackerská kultura a komunita svobodného softwaru.
Debata Emacs vs vi byla jednou z původních „svatých válek“ vedených dne Usenet skupiny,[1] s mnoha plamenné války bojovali mezi těmi, kteří trvali na tom, že jejich zvoleným editorem je vzor editace dokonalost a urážku druhého, přinejmenším od roku 1985.[2] Související bitvy byly vybojovány operační systémy, programovací jazyky, ovládání verze systémy a dokonce i zdrojový kód styl odsazení.[3][4]
Srovnání
Nejdůležitější historický[poznámky 1] rozdíly mezi vi a Emacs jsou uvedeny v následující tabulce:
Vlastnosti | Emacs | vi |
---|---|---|
Provedení stisknutí klávesy | Tradičně[poznámky 1], Příkazy Emacsu jsou kombinace kláves pro který modifikační klávesy jsou držena stisknutá, zatímco jsou stisknuty další klávesy; příkaz je proveden, jakmile je úplně napsán. Toto stále tvoří rozhodovací strom příkazů, ale ne jeden z jednotlivých stisknutí kláves. Balíček Emacs inspirovaný vim (vrátit strom ) poskytuje a uživatelské rozhraní ke stromu.[5] | vi si zachovává každý permutace zadaných kláves. Tím se vytvoří cesta v rozhodovací strom který jednoznačně identifikuje jakýkoli příkaz. |
Využití paměti a přizpůsobitelnost | Emacs provede při spuštění mnoho akcí, z nichž mnohé mohou spustit libovolný uživatelský kód.[6] Díky tomu spuštění Emacsu trvá déle (i ve srovnání s vim) a vyžaduje více Paměť. Je však vysoce přizpůsobitelný a zahrnuje velké množství funkcí, protože se v zásadě jedná o prostředí pro provádění pro Lisp program určený pro editaci textu. Emacs 18 (vydaný v roce 1987) představil režim serveru[7] navržen tak, aby běžel nepřetržitě na pozadí. V klientském režimu lze poté spustit různé instance Emacsu, připojit se k tomuto serveru a sdílet stav. Doba spuštění klienta Emacs je prakticky okamžitá, protože pouze provokuje existující proces Emacs k překreslení displeje. | vi je menší a rychlejší program, ale s menší kapacitou pro přizpůsobení. vim se vyvinul z vi, aby poskytoval podstatně více funkcí a přizpůsobení než vi, což je srovnatelné s Emacs[poznámky 2]. vi Čas spuštění je u malých textových souborů téměř okamžitý, zatímco vim je téměř stejně rychlý. |
Uživatelské prostředí | Emacs, i když byl původně navržen pro použití na konzole, měl X11 Přidána podpora grafického uživatelského rozhraní v Emacsu 18 a nastavena jako výchozí ve verzi 19. Aktuální grafická uživatelská rozhraní Emacsu obsahují plnou podporu pro proporcionální rozteč a variace velikosti písma. Emacs také podporuje vložené obrázky a Hyper-textový. | vi, stejně jako emacs, byl původně používán výhradně uvnitř textové konzoly, nabízející č grafické uživatelské prostředí (GUI). Mnoho moderních derivátů vi, např. MacVim a gVim, zahrnují GUI. Podpora pro proporcionálně rozmístěná písma zůstává nepřítomný. Chybí také podpora pro různě velká písma ve stejném dokumentu.[10] |
Funkční / navigační rozhraní | Emacs používá metakey akordy.[poznámky 3] Klíče nebo klíčové akordy lze definovat jako prefixové klíče, který přepnul Emacs do režimu, kde čeká na další stisknutí klávesy které tvoří a vázání klíčů. Vazby kláves mohou být specifické pro daný režim, což dále upravuje styl interakce. Emacs poskytuje a příkazový řádek přístup M-x, který lze nakonfigurovat na automatické doplňování různými způsoby. Emacs také poskytuje defalias makro, které umožňuje alternativní názvy příkazů. | vi používá odlišné úpravy režimy. V „režimu vkládání“ vkládají klávesy do dokumentu znaky. V „normálním režimu“ (také známém jako „příkazový režim“, který nelze zaměňovat s „režimem příkazového řádku“, který umožňuje uživateli zadávat příkazy), holé stisknutí kláves spustí příkazy vi. |
Klávesnice | Rozšíření jedné z Emacsových backronyms je Escape, Meta, Alt, Control, Shift, který přehledně shrnuje většinu použitých modifikačních klíčů, pouze vynechá Super. Emacs byl vyvinut dne Klávesnice Space-Cadet který měl více klíčových modifikátorů než moderní rozvržení. Existuje několik balíčků emacs, například spacemacs[12] nebo ergoemacs[13] které tyto kombinace kláves nahradí těmi, které se snadněji píší, nebo lze provést přizpůsobení ad hoc uživatelem. | vi nepoužívá Alt klíč a málokdy používá Ctrl klíč. Sada klíčů vi je omezena hlavně na alfanumerické klíče a uniknout klíč. Toto je jeho trvalá památka dálnopis dědictví, ale má za následek zpřístupnění většiny funkcí vi bez častých nepříjemných zásahů prstů. |
Podpora jazyků a skriptů | Emacs má plnou podporu pro všechny systémy psaní kompatibilní s Unicode a umožňuje volně směšovat více skriptů.[14] | vi má základní podporu pro jiné jazyky než angličtinu. Modern Vim podporuje Unicode, pokud se používá s terminálem, který podporuje Unicode. |
Výhody Emacsu
- Emacs má non-modální rozhraní
- Jeden z nejvíce přeneseno počítačové programy. To běží dovnitř textový režim a pod grafická uživatelská rozhraní na širokou škálu operační systémy, včetně většiny Unixový systémy (Linux, různé BSD, Solaris, AIX, IRIX, Operační Systém Mac[15][16] atd.), MS-DOS, Microsoft Windows,[17][18][19] AmigaOS, a OpenVMS. Unixové systémy, bezplatné i proprietární, často poskytují Emacs dodávaný s operační systém.
- Architektura serveru Emacs umožňuje více klientům připojit se ke stejné instanci Emacs a sdílet seznam vyrovnávacích pamětí, zabij prsten, vrátit historie a jiný stav.
- Všudypřítomný online podpora systém s klávesovými zkratkami, funkcemi a příkazy zdokumentovanými za běhu.
- Rozšiřitelné a přizpůsobitelné Programovací jazyk Lisp varianta (Emacs Lisp ), s funkcemi, které zahrnují:
- Schopnost napodobovat vi a vim (pomocí Zla,[20] Viper nebo Vimpulse).
- Výkonný a rozšiřitelný správce souborů (otrávený ), integrovaný debugger a velká sada vývojových a dalších nástrojů.
- Každý příkaz musí být funkcí Emacs Lisp, což umožňuje příkazům DWIM (Do What I Mean) tím, že programově reaguje na minulé akce a stav dokumentu. Například a
přepínací nebo rozdělené okno
příkaz může přepnout do jiného okna, pokud existuje, nebo v případě potřeby vytvořit. Tím se sníží počet stisknutí kláves a příkazů, které si uživatel musí pamatovat. - "OS uvnitř OS". Emacs Lisp umožňuje programování Emacsu daleko za hranice editačních funkcí. Dokonce i základní instalace obsahuje několik desítek aplikací, včetně dvou internetové prohlížeče, čtenáři zpráv, několik poštovních agentů, čtyři IRC klienti, verze ELIZA a celou řadu her. Všechny tyto aplikace jsou k dispozici kdekoli, kde běží Emacs, se stejným uživatelským rozhraním a funkčností. Počínaje verzí 24 obsahuje Emacs a správce balíčků, což usnadňuje instalaci dalších aplikací včetně alternativních webových prohlížečů, EMMS (Multimediální systém Emacs ), a více. K dispozici je také řada balíčků pro programování, včetně některých zaměřených na konkrétní kombinace jazyků / knihoven nebo styly kódování.
- Díky nemodální povaze klávesových zkratek Emacs je praktické být podporována jako klávesové zkratky pro celý OS.[21]
Výhody vi
- Příkazy pro úpravy jsou skládatelné[22]
- Vi má a modální rozhraní
- Vi se načítá rychleji než Emacs.
- Protože je hluboce spojen s tradicí UNIX, běží na všech systémech, které mohou implementovat standard C knihovna, včetně UNIX, Linux, AmigaOS, DOS, Okna, Mac, BeOS, OpenVMS, IRIX, AIX, HP-UX, BSD a POSIX -kompatibilní systémy.
- Rozšiřitelné a přizpůsobitelné prostřednictvím Vim skript nebo API pro interpretované jazyky, jako jsou Python, Ruby, Perl a Lua
- Všudypřítomný. V podstatě všechny systémy Unix a systémy podobné systému Unix přicházejí s vestavěným vi (nebo variantou). Vi (a ex, ale ne vim) je uvedeno v POSIX Standard.[23]
- Prostředí pro záchranu systému, vestavěné systémy (zejména ty s BusyBox ) a další omezená prostředí často zahrnují vi, ale ne emacs.
Vývoj

V minulosti vzkvétalo mnoho malých editorů po vzoru vi nebo odvozených od vi. To bylo způsobeno důležitostí zachování paměti s poměrně malým množstvím dostupným v té době. Jak se počítače staly výkonnějšími, mnoho klonů vi, Vim zejména vzrostly co do velikosti a složitosti kódu. Tyto vi varianty dneška, stejně jako staré odlehčené varianty Emacsu, mají tendenci mít mnoho vnímaných výhod a nevýhod opačné strany. Například Vim bez jakýchkoli rozšíření vyžaduje přibližně desetkrát více místa na disku, než vyžaduje vi, a nejnovější verze Vim mohou mít více rozšíření a běžet pomaleji než Emacs. v Umění programování v Unixu, Eric S.Raymond nazval Vimovu předpokládanou nízkou hmotnost ve srovnání s Emacsem „sdílený mýtus“.[24] Navíc s velkým množstvím RAM v moderních počítačích jsou Emacs i vi lehké ve srovnání s velkými integrovaná vývojová prostředí jako Zatmění, které mají sklon vyvodit posměch od uživatelů Emacsu i vi.
Tim O'Reilly řekl v roce 1999, že O'Reilly Media je návod na vi prodává dvakrát tolik kopií než na Emacsu (ale poznamenal, že Emacs přišel s bezplatným manuálem).[25] Mnoho programátorů používá buď Emacs a vi, nebo jejich různé odnože, včetně Linus Torvalds kdo používá MicroEMACS.[26] Také v roce 1999, tvůrce vi Bill Joy řekl, že vi bylo „napsáno pro svět, který už neexistuje“, a uvedl, že Emacs byl napsán na mnohem schopnějších strojích s rychlejšími displeji, aby mohli mít „vtipné příkazy s třpytivým obrazem na obrazovce a to všechno, a zatím jsem m sedím doma v přebytečném bydlení druhé světové války v Berkeley s modemem a terminálem, který jen stěží dokáže dostat kurzor ze spodního řádku “.[27][28]
Kromě pracovních funkcí Emacs a vi, pico a jeho zdarma a open-source klon nano a další textové editory jako ne často mají své vlastní obhájce třetích stran ve válkách editorů, i když ne v rozsahu Emacsu a vi.
Od roku 2020[Aktualizace], Emacs i vi mohou tvrdit, že patří mezi nejdelší aplikační programy všech dob,[29] stejně jako dva nejčastěji používané textové editory pro Linux a Unix.[30] Mnoho operačních systémů, zejména Linux a BSD deriváty, sdružují více textových editorů s operačním systémem tak, aby vyhovovaly požadavkům uživatelů. Například výchozí instalace Operační Systém Mac obsahuje Emacs, vyd, nano, TextEdit a Vim. Často na to někdo v určitém okamžiku diskuse upozorní vyd je standardní textový editor.[31]
Humor

The Kostel Emacs,[32] vytvořený Emacsem a Projekt GNU tvůrce Richard Stallman, je parodie náboženství.[33] I když to odkazuje na vi jako „redaktor šelmy“ (bytost vi-vi-vi 6-6-6 v římských číslicích), nebrání použití vi; spíše to volá proprietární software anathema. ("Používat volný, uvolnit verze vi není hřích, ale a pokání."[34]) Církev Emacs má svůj vlastní diskusní skupina, alt.religion.emacs, který má příspěvky, které mají podporovat tento systém víry.
Stallman se o sobě zmiňuje jako SvGNU −cius, svatý v kostele Emacs.[35]
Příznivci vi vytvořili protivníka Kult vi, tvrdili tvrdšími uživateli Emacsu jako pokus „opičit svým sázkařům“.[Citace je zapotřebí ]
Pokud jde o vi modální povaha (společný bod frustrace pro nové uživatele)[36] někteří uživatelé Emacsu žertují, že vi má dva režimy - „opakovaně pípnout“ a „rozbít vše“. Uživatelé vi si užívají legraci, kterou indukují klíčové sekvence Emacsu syndrom karpálního tunelu, nebo zmínku o jednom z mnoha satirických rozšíření zkratky EMACS, jako je například „Escape Meta Alt Control Shift“ (úder na spoléhání Emacsu na modifikační klávesy)[37] nebo „Osm megabajtů a Neustálá výměna "(v době, kdy to bylo velké množství paměti) nebo" EMACS zpomaluje jakýkoli počítač "(a rekurzivní zkratka jako ty, které používá Stallman) nebo „Eventually Munches All Computer Storage“, s odkazem na vysoké požadavky na systémové prostředky Emacsu. GNU EMACS byl rozšířen na „Obecně se nepoužívá, kromě počítačů středního věku“, které odkazují na jeho nejhorlivější fanoušky, a jeho klesající využití mezi mladšími programátory ve srovnání s grafičtějšími editory, jako jsou TextMate. Distribuce Emacs zahrnuje úplný seznam.[38]
Jako píchnutí na Emacse plíživý rys Je známo, že obhájci vi popisují Emacs jako „skvělý operační systém, kterému chybí pouze slušný editor“. Je známo, že obhájci Emacsu reagují, že editor je ve skutečnosti velmi dobrý, ale operační systém by mohl použít vylepšení (s odkazem na slavný nedostatek Emacsu konkurence ).
Hra mezi uživateli systému UNIX, a to buď k otestování hloubky porozumění editoru Emacsu uživatelem, nebo k pobavení nad složitostí Emacsu, zahrnovala předpovídání toho, co by se stalo, kdyby uživatel podržel modifikační klávesu (například Ctrl nebo Alt) a zadali své vlastní jméno. Tento herní humor vznikl[39] uživatelé starších TECO editor, který byl základem implementace původního Emacsu prostřednictvím maker.
Kvůli neintuitivní posloupnosti znaků pro ukončení vi („: q!“) Si hackeři dělají srandu z navrhované metody vytvoření posloupnost náhodných znaků tím, že uživatel, který není obeznámen s vi, sedí před otevřeným editorem a požádá ho o ukončení programu.[Citace je zapotřebí ]
Viz také
Poznámky
- ^ A b V současné době oba editory poskytují snadné způsoby, jak navzájem implementovat klíčové vazby. V Emacsu jsou klávesové zkratky Vim implementovány prostřednictvím režimu Zlo, zatímco ve Vimu jsou klávesové zkratky Emacs implementovány prostřednictvím balíčku Vimacs. Ačkoli jsou klávesové vazby Vim oblíbené pro svou ergonomii, pravděpodobně nejergonomičtější klávesa na klávesnici, tj. Mezera, se ve Vimu nepoužívá. Populární alternativa k způsobům navigace Emacs a Vim byla implementována přes Spacemacs, což je oblíbená konfigurace Emacs, která využívá mezerník jako hlavní klávesu pro ovládání a navigaci. Myšlenka Spacemacs byla také přenesena na Vim přes Spacevim.
- ^ Od roku 2013[Aktualizace], vim má 1731 kLOC kódu (1142 v C + 506 stock distro vimScript + 83 makefile), zatímco GNU Emacs má 1623 (jen 299 v C + 1270 stock distro Emacs Lisp + 54 makefile).[8][9] Existuje mnoho volitelných balíčků Emacs Lisp (a Vimscript); čísla zde odkazují pouze na kód, který je ve skutečnosti obsažen v hlavním stahování příslušného editoru.
- ^ Emacs má také něco, čemu se říká „režimy“; v Emacsu se však tyto obecně týkají stavů dlouhodobé interakce, které platí po celou dobu práce s daným souborem nebo datovou sadou, což není definice modálního rozhraní per se.[11]
Reference
- ^ „Svatá válka (hackerský žargon)“. Archivovány od originál dne 02.04.2012. Citováno 2016-11-30.
- ^ „EMACS vs. vi: Nekonečná svatá válka geeků'". Archivovány od originál dne 30. 11. 2016. Citováno 2016-11-30.
- ^ „Just Let Me Code“. Archivovány od originál dne 2015-05-01. Citováno 2015-04-24.
- ^ „Proč záleží na stylu kódování“. Archivovány od originál dne 2015-05-03. Citováno 2015-04-24.
- ^ „undo-tree-readme.txt“.
Jedinou nevýhodou tohoto pokročilejšího, ale jednoduššího systému zpět je, že byl inspirován Vimem. Nakonec však nejúspěšnější náboženství kradou svým konkurentům ty nejlepší nápady!
- ^ „Souhrn při spuštění“.
- ^ „NEWS.18“. Archivovány od originál dne 2015-06-14.
Programům, jako jsou poštovní programy, které vyvolávají „editora“ jako podřízeného pro úpravu nějakého textu, lze nyní říci, aby místo vytvoření nového editoru používaly stávající proces Emacs.
- ^ „Projekt GNU Emacs Open Source na Open Hub: stránka jazyků“. Ohloh.net. Citováno 1. prosince 2014.
- ^ „Projekt Vim Open Source na Open Hub: Stránka jazyků“. Ohloh.net. Citováno 1. prosince 2014.
- ^ „syntax.txt“.
Všechna použitá písma, kromě Menu a Popisu, by měla mít stejnou velikost znaků jako výchozí písmo! Jinak nastanou problémy s překreslením.
[trvalý mrtvý odkaz ] - ^ "EmacsWiki: Režimy kategorie". Emacswiki.org. Citováno 1. prosince 2014.
- ^ "spacemacs".
- ^ "Ergoemacs".
- ^ „International Chars“.
Emacs interně používá vlastní vícebajtové kódování znaků, které je nadmnožinou standardu Unicode. Toto interní kódování umožňuje míchat znaky téměř ze všech známých skriptů do jedné vyrovnávací paměti nebo řetězce. Emacs překládá mezi vícebajtovým kódováním znaků a různými jinými kódovacími systémy při čtení a zápisu souborů a při výměně dat s podprocesy.
- ^ „Carbon Emacs Package“. Archivovány od originál dne 2007-03-14. Citováno 2006-09-27.
- ^ „Aquamacs je snadno použitelný Emacs ve stylu Mac pro Mac OS X“. Citováno 2006-09-27.
- ^ B, Ramprasad (2005-06-24). „Časté dotazy GNU Emacs pro Windows 95/98 / ME / NT / XP a 2000“. Citováno 2006-09-27.
- ^ Borgman, Lennart (2006). „Domovská stránka EmacsW32“. Archivovány od originál dne 06.03.2007. Citováno 2006-09-27.
- ^ „GNU Emacs ve Windows“. Franz Inc. 2006. Citováno 2006-09-27.
- ^ „Evil - Home - Open wiki“. gitorious.org. 29. května 2014. Archivovány od originál dne 16. září 2014. Citováno 16. září 2014.
- ^ „(Emacs) Klávesové zkratky pro úpravy textových polí v OS X“.
- ^ Kozlowski, Mike. „Proč Atom nemůže nahradit Vima“. Citováno 7. května 2014.
- ^ „vi“. pubs.opengroup.org. Citováno 2017-03-11.
- ^ „Správná velikost pro editora“. Catb.org. Citováno 1. prosince 2014.
- ^ „Editor: vi nebo emacs?“. Oreilly.com. 21. června 1999. Archivovány od originál dne 1. dubna 2014. Citováno 1. prosince 2014.
- ^ Jarosław Rzeszótko. „Stifflog: Stiff se ptá, skvělí programátoři odpovídají“. Stifflog.com. Archivovány od originál dne 8. listopadu 2006. Citováno 1. prosince 2014.
- ^ Vance, Ashlee (11. září 2003). „Největší dárek Billa Joy pro člověka - editor vi“. theregister.co.uk. Archivováno z původního dne 3. června 2014. Citováno 3. června 2014.
- ^ Joy, Bill (listopad 1999). „Radost z Unixu: Spoluzakladatel Sun Microsystems Bill Joy mapuje, kde se Linux a svobodný software hodí do sluneční soustavy jeho společnosti“. Linux Magazine (Rozhovor). Rozhovor s Eugenem Ericem Kimem. Archivovány od originál 7. února 2003. Citováno 3. června 2014.
- ^ Auerbach, David (9. května 2014). „Nejstarší soupeření ve výpočetní technice“. Břidlice.
dva konkurenční programy mohou tvrdit, že patří mezi aplikace s nejdelší životností všech dob. Oba programy se chystají vstoupit do své páté dekády. Oba programy jsou textové editory pro zadávání a úpravy kódu, datové soubory, surové webové stránky HTML a cokoli jiného. A jsou to smrtelní nepřátelé.
- ^ „Výběr editora“.
tito dva redaktoři vyjadřují ostře kontrastující filozofie designu, ale oba jsou extrémně populární a vyžadují velkou loajalitu od identifikovatelných hlavních populací uživatelů. Průzkumy unixových programátorů důsledně naznačují, že mezi nimi došlo k rozdělení 50/50, přičemž všichni ostatní redaktoři se sotva zaregistrovali.
- ^ "Ed, člověče!! Člověče ed". Gnu.org. Citováno 1. prosince 2014.
- ^ "Pravidla, hříchy, ctnosti, bohové a další z církve Emacs". Gnu.org. Citováno 1. prosince 2014.
- ^ „Svatý IGNUcius - Richard Stallman“. Stallman.org. Archivovány od originál dne 22. listopadu 2014. Citováno 1. prosince 2014.
- ^ „Nezkrácený selektivní přepis rozhovoru Richarda M. Stallmana na ANU“. Linuxhelp.blogspot.com. Citováno 1. prosince 2014.
- ^ „Svatý IGNUcius - Richard Stallman“. Stallman.org. Citováno 1. prosince 2014.
- ^ vi (hackerský žargon)
- ^ „satirické expanze EMACS“. Gnu.org. Citováno 1. prosince 2014.
- ^ Eric S.Raymond (2004). Umění programování v Unixu. Addison-Wesley Professional. p.343. ISBN 978-0-13-142901-7. Citováno 17. prosince 2011.
- ^ "Skuteční programátoři nepoužívají PASCAL". Datamace: 263–265. Červenec 1983.
externí odkazy
- Výsledky experimentu porovnání Vi a Emacsu
- Porovnání stisknutí kláves na úkol
- Humor kolem Vi, Emacsu a jejich srovnání
- Výsledky měřiče Sucks-Rules-O-Meter pro Vi a Emacs z komentářů na webu
- V kostele Emacs „použití bezplatné verze vi není hřích, je to pokání.“
- Emacs nabízí funkce Vi, z Emacs wiki
- Emacs Vs Vi, z WikiWikiWeb
- Správná velikost pro editora diskuse o vi a Emacsu v relativně moderních termínech