Războiul editorilor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Războiul editorilor indică rivalitatea dintre editorii de text Emacs și Vi (și încarnările sale ulterioare Vim și gVim ).

Aceștia sunt doi editori foarte versatili, ai căror utilizatori au purtat adesea război cu flacără cu privire la care dintre cei doi a fost mai bun. În cultura computerelor, acesta reprezintă unul dintre diferitele contraste care văd utilizatorii împărțiți și nașterea flăcării, similar cu alegerea dintre sistemele de operare , limbajele de programare , software-ul de control al versiunilor sau stilul de indentare . [1] [2] [3]

Principalele diferențe

tu Emacs
Intrare stochează secvențele de apăsare a tastelor acolo, generând un arbore de decizie care vă permite să identificați fără echivoc comenzi pentru fiecare apăsare de tastă. Comenzile Vim sunt compozibile. [4] Comenzile Emacs sunt combinații de taste care utilizează taste modificatoare (care trebuie ținute apăsate împreună cu alte taste), iar comanda este executată după introducerea completă. Acest mod formează, de asemenea, un arbore de decizie, dar nu pentru fiecare apăsare de tastă ca în vi. O interfață arborescentă de comandă de tip vi a fost implementată într-o extensie din pachetul de anulare a arborelui . [5]
Utilizarea resurselor vi este mai ușor și mai rapid decât Emacs, cu timpi de încărcare mai rapide, dar are mai puține opțiuni de personalizare. Vim, pe de altă parte, oferă o personalizare mult mai extinsă decât vi, comparabilă cu Emacs. [6] [7] [8] Vim 7 a introdus mecanismul de încărcare automată a funcțiilor definite în pluginuri, care nu sunt încărcate la pornire, ci doar prima dată când utilizatorul le invocă, mărind viteza de pornire a programului. [9] [10] Emacs efectuează un număr mare de acțiuni la pornire, [11] care este de obicei mai lent decât vi / Vim și necesită mai multă memorie RAM . Emacs 18 (lansat în 1987) a introdus un mod server [12] care vă permite să rulați în fundal o instanță la care se pot conecta mai mulți clienți Emacs, cu o pornire mai rapidă a aceluiași, partajând tampoane, ineluri de ucidere , anulare stive și altele Caracteristici. [13]
Scripting Vim este extensibil și personalizabil prin propriul limbaj de programare, VimScript , [14] și acceptă, de asemenea, extensia prin alte limbaje precum Python , [15] Ruby , [16] Perl [17] și Lua . [18] Emacs este extensibil prin programarea în Emacs Lisp . Deoarece comenzile sunt implementate ca funcții în Emacs Lisp, vă permite să implementați comenzi DWIM („Do What I Mean”) în raport cu starea editorului, reducând numărul de apăsări de taste. De exemplu, o switch-or-split-window poate modifica fereastra de intrare dacă există cel puțin una alta decât cea curentă, altfel poate crea una nouă. [19]

Scriptarea în Emacs Lisp vă permite să depășiți cu mult funcționalitatea unui editor de text, creând un fel de „ sistem de operare în cadrul sistemului de operare”. O instalare de bază a Emacs include aplicații precum un manager de fișiere ( dired ), browser web ( browserul dvs. ewb.el , complet integrat fără dependențe externe, [20] și o interfață pentru w3m ), [21] debugger integrat și multe alte instrumente de dezvoltare, cititori de știri, unii agenți de poștă electronică, doi clienți IRC , o implementare ELIZA și câteva jocuri. Începând cu versiunea 24, Emacs include un manager de pachete care simplifică gestionarea suplimentelor. [22]

Interfața cu utilizatorul vi în mod tradițional avea doar o interfață de linie de comandă ; unele clone vi mai moderne, cum ar fi gVim și MacVim, oferă interfețe grafice , care nu au suport pentru fonturi spațiate proporțional sau fonturi care schimbă dimensiunea în același document. [23] Emacs s-a născut, de asemenea, doar cu o interfață de linie de comandă, dar a dezvoltat în curând o interfață text, moștenită de la mașinile lisp . Emacs 18 a adăugat o interfață grafică pentru X11 , care a devenit implicită cu versiunea 19. GUI-urile actuale pentru Emacs au suport complet pentru fonturi proporționale distanțate și de dimensiuni variabile, hipertext și încorporare a imaginilor.
Navigare text vi folosește moduri distincte pentru introducerea și manipularea textului. Emacs folosește combinații de taste. [24] [25] Unele taste sau combinații de taste pot fi utilizate ca prefixe, după care Emacs așteaptă introducerea altor taste sau combinații pentru a finaliza comanda.
Tastatură vi nu folosește tasta Alt și folosește tasta Ctrl într-o măsură limitată, cu un set de taste limitat în principal la tastele alfanumerice și la tasta Esc . [26] Aceasta este o moștenire a tastaturilor teletip și are, de asemenea, efectul de a face ca majoritatea funcțiilor vi să fie accesibile fără a fi nevoie de mișcări ciudate ale degetelor pentru a crea apăsări complexe de taste. Emacs folosește extensiv tastele modificatoare Esc , Meta , Alt , Ctrl , Shift și Super . De fapt, a fost dezvoltat pe mașinile Lisp cu o tastatură spațială-cadet , în care aspectul tastelor modificatoare era mai ergonomic decât tastaturile moderne. Au fost create unele pachete, cum ar fi spacemacs [27] și ergoemacs [28] care înlocuiesc combinații complexe cu altele mai ușor de ergoemacs .
Limbi vi are suport rudimentar pentru alte limbi decât engleza. Vim acceptă caractere Unicode și multibyte. [29] [30] Emacs are suport complet pentru sistemele de scriere compatibile Unicode. [31]
Anulează / Reface În plus față de stiva clasică de comenzi undo / reface, Vim acceptă și un arbore navigabil prin capacitatea de a crea ramuri, astfel încât prin efectuarea de noi operații după unele anulări, comenzile ulterioare din istorie nu se pierd. [32] În Emacs, anularea în sine este considerată o comandă, deci pentru a reface o comandă anulată trebuie să anulați anularea însăși. [33]
Sisteme de operare Deși este profund asociat cu tradiția Unix, acesta rulează pe orice sistem care are o implementare a bibliotecii C standard, cum ar fi toate sistemele Unix și Unix , Linux , BSD , AmigaOS , DOS , Windows , Mac , BeOS , OpenVMS , IRIX , AIX , HP-UX . De asemenea, face parte din standardul POSIX . Acesta vine cu majoritatea sistemelor Unix și Unix-like, dar și în sisteme de recuperare sau încorporate. [34] [35] Emacs acceptă o mare varietate de sisteme de operare, inclusiv aproape toate sistemele de tip Unix ( GNU / Linux , BSD ,Solaris , AIX , IRIX , macOS [36] [37] etc.), MS-DOS , Microsoft Windows , [38 ] [39] [40] AmigaOS și OpenVMS . Multe sisteme Unix au Emacs preinstalat ca editor de text. [41]
Emulare editor simultan În Vim este posibil să se Vimacs modul de intrare Emacs cu unele extensii, cum ar fi Vimacs [42] Emacs are câteva pachete care vă permit să emulați vi și Vim (folosind Evil , [43] Viper [44] sau Vimpulse [45] ).

Utilizare

În trecut, au apărut mulți editori de text cu inspirație minimală. Acest lucru a fost justificat de necesitatea de a economisi cât mai multă memorie posibil, care era o resursă foarte limitată la acea vreme. Mai târziu, unele clone, cum ar fi Vim, au crescut în dimensiune, concentrându-se pe adăugarea funcționalității. Ambii editori au încorporat multe avantaje ale rivalului și, de asemenea, unele dezavantaje, de exemplu versiunile moderne ale Vim sunt de zece ori mai grele decât vi și sunt mai lente decât unele versiuni mai vechi ale Emacs. În The Art of Unix Programming , Eric S. Raymond susține că ușurința lui Vim în comparație cu Emacs este „un mit comun”. [46] De asemenea, cu cantitățile mari de resurse disponibile pe mașinile moderne, atât Vim, cât și Emacs sunt extrem de ușoare în comparație cu majoritatea mediilor de dezvoltare integrate . [47]

Tim O'Reilly a susținut în 1999 că cartea sa Învățând editorii vi și Vim a vândut de două ori mai multe exemplare decât cea de pe Emacs (menționând totuși că Emacs are și propriul său manual gratuit). [48] Mulți programatori folosesc vi, Emacs sau un derivat al acestora, de exemplu Linus Torvalds folosește MicroEMACS . [49] Tot în 1999, creatorul lui Bill Joy a spus că vi „a fost scris pentru o lume care nu mai există” și că Emacs a fost scris pentru mașini mai puternice cu afișaje cu răspuns rapid („ [ar putea avea] comenzi amuzante cu ecranul sclipind și toate astea și, între timp, stau acasă într-un fel de surplus de locuințe din cel de-al doilea război mondial la Berkeley, cu un modem și un terminal care abia poate scoate cursorul de pe linia de jos. "). [50] [51]

În plus față de susținătorii Emacs și vi, alți editori de text, cum ar fi pico , clonarea sa gratuită nano , ne și alți editori au reprezentare în războaiele editorilor, deși nu sunt comparabile ca dimensiune cu vi sau Emacs. [52]

Atât Emacs, cât și vi se numără printre cele mai vechi programe software din toate timpurile [53] , precum și cei mai utilizați doi editori de text în Unix și Linux. [54] [55] Multe distribuții de sisteme de operare GNU / Linux sau BSD includ una sau ambele, adesea împreună cu alți editori de text. De exemplu, o instalare macOS oferă Emacs, ed , nano și Vim. [56]

Umor

Richard Stallman este Sf. IGNU - cius, un sfânt al Bisericii Emacs

„Biserica Emacs”, [57] este o religie parodică fondată de Richard Stallman . [58] În timp ce se referă la vi ca „editorul fiarei” (deoarece vi-vi-vi este egal cu numărul fiarei în cifre romane ), el nu se opune utilizării acesteia, dar invocă anatema software-ului proprietar („folosind o versiune gratuită a vi nu este un păcat, ci o pocăință ”). [59] [60] Biserica Emacs are propriul său grup de știri alt.religion.emacs, în care postările discută sistemul de credințe. Stallman este Sf. IGNU - cius , un sfânt al Bisericii Emacs. [61] Susținătorii vi au creat, în contrast, „Cultul lui vi”, [62] care este văzut de adepții Bisericii Emacs ca o încercare de a-și simți credințele. [52]

Vorbind despre modul de introducere modal al vi, utilizatorii Emacs glumesc că există două moduri - „ beep în mod repetat ” și „ rupe totul ”. Utilizatorii își bat joc de dvs. că utilizarea Emacs, cu combinațiile sale de chei, provoacă sindromul tunelului carpian . Acronimul EMACS a fost extins în mod ironic la Escape Meta Alt Control Shift (datorită utilizării considerabile a tastelor modificatoare), [63] Opt Megabytes And Constant Swapping („opt megabytes and swapping constant”, referindu-se la cererea sa de resurse, la timp în care opt megaocteți reprezentau o cantitate considerabilă de memorie), EMACS face ca orice computer să fie lent („Emacs face ca fiecare computer să fie lent”, care este un acronim recursiv , folosit frecvent de Stallman) sau în cele din urmă Munches All Computer Storage („în cele din urmă consumă tot spațiul de stocare al computerului ", din nou cu referire la consumul de resurse de către program). GNU EMACS a fost extins la General Inutilizat , cu excepția informaticienilor de vârstă medie („de obicei neutilizat, cu excepția informaticienilor de vârstă mijlocie”), cu referire la utilizatorii și susținătorii săi principali, în timp ce informaticii mai tineri preferă în general mediile de dezvoltare integrată instrumente sau editori de text cu o interfață grafică inerentă, cum ar fi Atom , TextMate sau Sublime Text . Emacs oferă o listă de expansiuni parodice ale acronimului. [64]

Referindu- se la caracteristica de creep a Emacs, utilizatorii o descriu ironic ca „un sistem de operare foarte bun, lipsind doar un editor de text decent”. [65]

Un joc popular printre utilizatorii Emacs de pe Unix, pentru a testa cunoștințele editorului sau pentru a glumi despre complexitatea acestuia, este de a prezice ce se întâmplă dacă țineți apăsată o tastă modificatoare și introduceți numele dvs. Un joc similar se juca deja printre utilizatorii TECO , un predecesor al Emacs. [66]

Utilizatorii Emacs glumesc despre modul non-intuitiv de a termina vi (care necesită tastarea : q↵ în modul normal), afirmând că pentru a obține un bun generator de șiruri aleatorii, trebuie doar să puneți un novice în fața vi care rulează pe un terminal și cereți-i să termine programul, în timp ce într-o altă glumă un utilizator spune că folosește vi de ani de zile, deoarece nu a găsit încă o modalitate de a termina aplicația. [67]

Notă

  1. ^ Doar lasă-măcodez , la drdobbs.com . Adus la 25 octombrie 2015 (arhivat din original la 1 mai 2015) .
  2. ^ De ce Coding Style Matters , pe smashingmagazine.com . Adus la 25 octombrie 2015 (arhivat din original la 3 mai 2015) .
  3. ^ Nu utilizați niciodată file hard , pe opensourcehacker.com .

    «Datorită moștenirii, diferiți editori de text tratează diferit filele. Editorii de text UNIX preferă fila hard este 8 spații, editorii de text Windows și IDE (Eclipse) preferă ca o filă hard să fie de 4 spații. Astfel, filele hard pot sparge lizibilitatea și editabilitatea codului sursă dacă există mai mult de o singură persoană care editează fișierul. Vor deschide fișierul într-un editor cu diferite setări de filă, îl vor edita și data viitoare când deschideți fișierul, acesta este stricat și toate indentările sunt greșite. Acest lucru este și mai rău pentru limbajele sensibile la spațiul alb (Python, CoffeeScript), deoarece acest lucru ar putea cauza de fapt erori de sintaxă sau erori de logică de programare. Cu toate acestea, puteți evita această problemă, în primul rând, dacă faceți indentare folosind în schimb file file (spații). Chiar dacă ați fi singura persoană din lume care editează fișierul text, chiar s-ar putea să schimbați editorul de text într-un anumit moment și să vă împușcați accidental în picior. "

  4. ^ Mike Kozlowski, De ce atomul nu poate înlocui Vim , pe medium.com . Adus pe 7 mai 2014 .
  5. ^ undo-tree-readme.txt ( TXT ), la elpa.gnu.org .
    „Singurul dezavantaj al acestui sistem de anulare mai avansat, dar mai simplu, este că a fost inspirat de Vim. Dar, la urma urmei, majoritatea religiilor de succes fură cele mai bune idei de la concurenții lor! " .
  6. ^ În 2013 sursele vim au constat din 1 731 kSLOC (1142 în C + 506 în vimScript + 83 în makefile), în timp ce cele ale GNU Emacs din 1623 (299 în C + 1270 în Emacs Lisp + 54 în makefile). În plus față de funcționalitatea încorporată, ambii editori au la dispoziție un număr mare de pachete, respectiv în VimScript și în Emacs Lisp: datele se referă doar la codul oficial de lansare.
  7. ^ Proiectul Open Source GNU Emacs pe Open Hub: Pagina Limbi , pe ohloh.net . Adus la 1 decembrie 2014 (arhivat din original la 8 noiembrie 2013) .
  8. ^ Proiectul Open Source Vim pe Open Hub: Pagina Limbi , pe ohloh.net . Adus la 1 decembrie 2014 (arhivat din original la 8 noiembrie 2013) .
  9. ^ Documentație Vim: eval , la vimdoc.sourceforge.net .
  10. ^ Cum se scrie un plugin , la vim.wikia.com .
  11. ^ Rezumatul pornirii , la gnu.org .
  12. ^ NEWS . 18 , pe searchcode.com. Adus la 12 octombrie 2020 (arhivat de la adresa URL originală la 30 iulie 2020) .
    „Programelor precum mailerele care invocă„ editorul ”ca fiind inferior pentru a edita un anumit text pot acum să li se spună să folosească un proces Emacs existent în loc să creeze un editor nou.” .
  13. ^ GNU Emacs Manual: Emacs Server , la gnu.org .
  14. ^ Documentație Vim: usr_41 , pe vimdoc.sourceforge.net .
  15. ^ Documentație Vim: if_pyth , pe vimdoc.sourceforge.net .
  16. ^ Documentație Vim: if_ruby , la vimdoc.sourceforge.net .
  17. ^ Documentație Vim: if_perl , la vimdoc.sourceforge.net .
  18. ^ Documentație Vim: if_lua , pe vimdoc.sourceforge.net .
  19. ^ Fă ce vreau să spun , la emacswiki.org .
  20. ^ Emacs Web Browser , la emacswiki.org .
  21. ^ Emacs w3m , la emacswiki.org .
  22. ^ ELPA , pe emacswiki.org .
  23. ^ syntax.txt ( TXT ) [ link rupt ] , pe ftp.tuwien.ac.at .
    „Toate fonturile folosite, cu excepția meniului și a informațiilor, ar trebui să aibă aceeași dimensiune de caractere ca fontul implicit! În caz contrar, vor apărea probleme de redesenare. " .
  24. ^ În Emacs, termenul „moduri” este utilizat într-un context diferit, referindu-se la modurile de interacțiune pe termen lung față de fișiere sau seturi de date.
  25. ^ EmacsWiki: Moduri de categorie , pe emacswiki.org . Adus la 1 decembrie 2014 .
  26. ^ Documentație Vim: hartă , la vimdoc.sourceforge.net .
  27. ^ spacemacs , pe github.com .
  28. ^ Ergoemacs , la ergoemacs.org .
  29. ^ Documentație Vim: multibyte , la vimdoc.sourceforge.net .
  30. ^ Documentație Vim: mlang , la vimdoc.sourceforge.net .
  31. ^ International Chars , la gnu.org .
    ( EN )

    "Pe plan intern, Emacs folosește propria sa codificare de caractere multibyte, care este un superset al standardului Unicode."

    ( IT )

    "Pe plan intern, Emacs folosește propria sa codificare de caractere multibyte, care este un superset al standardului Unicode."

  32. ^ Documentație Vim: usr_32 , pe vimdoc.sourceforge.net .
  33. ^ EmacsWiki: Redo Mode , la emacswiki.org .
  34. ^ POSIX 1003.1 - pagina man pentru vi , pe unix.com .
  35. ^ descărcare: vim online , la vim.org .
  36. ^ Pachetul Carbon Emacs , pe homepage.mac.com . Adus la 27 septembrie 2006 (arhivat din original la 14 martie 2007) .
  37. ^ Aquamacs este un Emacs ușor de utilizat, în stil Mac, pentru Mac OS X , la aquamacs.org . Adus 27-09-2006 .
  38. ^ Ramprasad B, GNU Emacs FAQ pentru Windows 95/98 / ME / NT / XP și 2000 , la gnu.org , 24 iunie 2005. Accesat la 27 septembrie 2006 .
  39. ^ Lennart Borgman, EmacsW32 Home Page , pe ourcomments.org , 2006. Accesat la 27 septembrie 2006 (arhivat din original la 6 martie 2007) .
  40. ^ GNU Emacs pe Windows , de la franz.com , Franz Inc., 2006. Accesat la 27 septembrie 2006 .
  41. ^ MIT 2.S998: Help - Emacs browse , pe oceanai.mit.edu (arhivat din original la 30 octombrie 2015) .
  42. ^ https://www.vim.org/scripts/script.php?script_id=300 , pe vim.org .
  43. ^ Evil - Home - Open wiki , pe gitorious.org , 29 mai 2014. Accesat la 16 septembrie 2014 (arhivat din original la 16 septembrie 2014) .
  44. ^ Viper este un pachet pentru rebelii Emacs , la gnu.org .
  45. ^ Vimpulse , la emacswiki.org .
  46. ^ Mărimea potrivită pentru un editor , la catb.org . Adus la 1 decembrie 2014 .
  47. ^ Larry Ullman, Modern JavaScript: Develop and Design , Peachpit Press, 2012, pp. 64 -65, ISBN 978-0-13-290587-9 .
    ( EN )

    „Editorii de text necesită mai puține resurse hardware pentru a rula - spațiu pe disc, memorie și activitate de procesor, ceea ce înseamnă că sunt alegeri mai bune dacă aveți un computer mai vechi. De fapt, cei mai de bază editori de text, cum ar fi vi și emacs, nu au interfață grafică. "

    ( IT )

    „Editorii de text necesită mai puține resurse hardware - spațiu pe disc, memorie și activitate de procesor, deci sunt o alegere mai bună pentru cineva cu un computer mai vechi. De fapt, majoritatea editorilor de text de bază, cum ar fi vi și emacs, nu au o interfață grafică. "

  48. ^ Editor: vi sau emacs? , pe oreilly.com . Adus la 1 decembrie 2014 (arhivat din original la 1 aprilie 2014) .
  49. ^ Jarosław Rzeszótko, Stifflog: Stiff întreabă, marii programatori răspund , la stifflog.com . Adus la 1 decembrie 2014 (arhivat din original la 8 noiembrie 2006) .
  50. ^ Ashlee Vance, cel mai mare dar al lui Bill Joy pentru om - editorul vi , theregister.co.uk , 11 septembrie 2003. Accesat la 3 iunie 2014 ( arhivat la 3 iunie 2014) .
  51. ^ Bill Joy, Bucuria Unix: co-fondatorul Sun Microsystems Bill Joy Diagramele în care Linux și software-ul gratuit se încadrează în sistemul solar al companiei sale. , în Linux Magazine , interviu de Eugene Eric Kim, noiembrie 1999. Accesat la 3 iunie 2014 (arhivat din original la 7 februarie 2003) .
  52. ^ a b Primele 4 războaie pe internet despre software-ul gratuit , pe freesoftwaremagazine.com (arhivat din original la 25 octombrie 2015) .
  53. ^ The Oldest Rivalry in Computing , pe slate.com .
    „Două programe rivale pot pretinde că se numără printre cele mai longevive aplicații din toate timpurile. Ambele programe sunt pe cale să intre în a cincea decadă. Ambele programe sunt editoare de text, pentru introducerea și editarea de cod, fișiere de date, pagini web HTML brute și orice altceva. Și sunt dușmani muritori ". .
  54. ^ Vim vs Emacs: De ce editor de text aveți nevoie? , pe udemy.com .
    „Vim și Emacs sunt cei mai utilizați doi editori de text pe Linux” .
  55. ^ Alegerea unui editor , la catb.org .
    „Acești doi editori exprimă filosofii de proiectare puternic contrastante, dar ambii sunt extrem de populari și obțin o loialitate mare față de populațiile de utilizatori de bază identificabile. Sondajele programatorilor Unix indică în mod constant aproximativ o divizare 50/50 între ei, toți ceilalți editori abia înregistrându-se. " .
  56. ^
  57. ^ Reguli, păcate, virtuți, zei și multe altele ale Bisericii Emacs , pe gnu.org . Adus la 1 decembrie 2014 .
  58. ^ Sfântul IGNUcius - Richard Stallman , la stallman.org . Adus la 1 decembrie 2014 .
  59. ^ "Folosirea unei versiuni gratuite de vi nu este un păcat, ci o pocăință." Vedea
  60. ^ Transcrierea selectivă integrală a discursului lui Richard M Stallman la ANU , la linuxhelp.blogspot.com . Adus la 1 decembrie 2014 .
  61. ^ Sfântul IGNUcius - Richard Stallman , la stallman.org . Adus la 1 decembrie 2014 .
  62. ^ Cultul lui vi , pe guckes.net .
  63. ^ expansiuni satirice ale EMACS , pe gnu.org . Adus la 1 decembrie 2014 .
  64. ^ Eric S. Raymond , The art of Unix programming , Addison-Wesley Professional, 2004, p. 343, ISBN 978-0-13-142901-7 . Adus la 17 decembrie 2011 .
  65. ^ "un sistem de operare excelent, lipsit doar de un editor decent" De la Vim la Emacs - partea 2 , pe upsilon.cc .
  66. ^ Programatorii reali nu folosesc PASCAL , în Datamation , iulie 1983, pp. 263-265.
  67. ^ Vim și Emacs glumesc pe Twitter , la cmdlinetips.com .

Elemente conexe

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT