Denne artikel dykker ned i denne lange, igangværende redaktørskrig og træffer en beslutning om, hvilket program - Emacs eller Vim - tager kanten over det andet.
Hvad er Emacs og Vim?
Vim er en af de ældste UNIX-baserede tekstredaktører derude. Denne teksteditor er en udvikling af vi, en teksteditor fra de tidlige dage af UNIX. Vim blev hurtigt populær efter introduktionen, da den ikke kun havde næsten alle funktionerne i vi indbygget i den, men også tilføjede nogle ekstra funktioner, der gjorde den meget mere kraftfuld end sin forgænger.
Vims charme stammer fra, at den er ekstremt let og har en grænseflade med flere tilstande, hver med et andet, nyttigt formål. Med funktioner som et fortrykt træ på flere niveauer, en enorm samling af plugins, kraftfulde tekstmanipulationsværktøjer og understøttelse af snesevis af programmeringssprog er Vim bunnsolid og udmærker sig som en teksteditor.
Emacs er derimod en platform-editor med en ikke-modal grænseflade. Emacs er ligesom Vim, der er en gammel teksteditor, der har været populær i årevis. I stedet for at kalde det en teksteditor er Emacs dog så meget mere, noget som det, du vil kalde et operativsystem. Emacs er kendt for at være meget udvidelig og er let at finjustere og tilpasse og tillader implementering af forskellige funktioner og metoder, hvilket giver en klar indikation af, hvor kraftigt dette værktøj kan være. Emacs har support til en overflod af pakker og udvidelser, og brugere kan bruge disse til yderligere at konfigurere dette program, hvilket gør det endnu mere kraftfuldt end før.
Med en kort introduktion til, hvad hver redaktør tilbyder afsluttet, lad os nu se på nogle af de funktioner, som både Emacs og Vim giver.
1) Mere end en teksteditor
Som tekstredaktører udmærker både Emacs og Vim sig på det job, de er beregnet til. Begge redaktører indeholder understøttelse af flere sprog ud over at tilbyde funktioner, der får det bedste ud af en udvikler. Begge disse redaktører kan næsten gøre alt, hvad du kan forestille dig.
Forskellen mellem disse to skyldes, at Emacs i modsætning til Vim ikke kun er en teksteditor, men snarere har et IDE-lignende miljø. Med andre ord er Emacs en fuldt udviklet lisp-maskine, en grænseflade, der tilbyder flere værktøjer til sine brugere og skaber en helt åben verden, hvor brugerne kan være online 24/7 og leve inde i programmet.
For eksempel, i modsætning til Vim-brugere, der skal åbne terminalen separat for at bruge programmet, kommer Emacs sammen med en egen indbygget skal.
Emacs-brugere har også adgang til funktioner som en webbrowser, notering og organisering af filer såvel som flere spil, såsom Tetris.
Webbrowser:
Org-mode - Organizer:
Tetris:
Som det ses af ovenstående eksempler, er tekstredigering kun et aspekt blandt de dusin funktioner der findes i Emacs.
2) Tilpasningsevne
Både Emacs og Vim er kendt for at være ekstremt tilpasselige og alsidige, med en overflod af plugins og udvidelser, der hjælper med at konfigurere programmerne ved at tilføje flere funktioner.
Emacs tager dette et skridt videre ved hjælp af lisp programmeringssprog. Du kan implementere og omdefinere næsten alt i Emacs ved hjælp af lisp.
Sig for eksempel, at du vil definere en funktion, der efter kørsel kører Bing i webbrowseren. Dette kan let implementeres i Emacs ved hjælp af lisp. For at tilføje denne funktion til Emacs skal følgende kodelinjer føjes til Emcas-initialiseringsfilen (~ /.emacs-fil):
(defun searcher ()(interaktiv)
(browse-url
"https: // www.bing.com / "))
For dem, der er vant til at bruge Vim, giver Emacs også brugere med pakker, der giver dem mulighed for at opnå Vim-lignende adfærd inde i Emacs. Den mest kendte pakke er Evil-tilstand, som er en ekstremt kraftfuld Emacs-tilstand, der efterligner vi fuldstændigt og også forsøger at udvide den ved at tilføje mere kompatible og kraftfulde funktioner.
3) Brugervenligt interface
Som nævnt ovenfor er Vim en modal editor, hvilket betyder, at den har flere tilstande til at udføre forskellige funktioner. For begyndere kan dette virke vanskeligt, da det at skifte fra en tilstand til en anden og lære at håndtere tekst i hver tilstand kan vise sig at være ret kompliceret i starten.
Emacs ser derimod ud til at være mere tilgængelig for nye brugere, da det har en ikke-modal grænseflade, og tastebindingerne ser ikke ud til at være så udenlandske.
4) Elisp vs Vim Script
Elisp og vim script er de programmeringssprog, der er defineret for henholdsvis Emacs og Vim. Disse scripts bruges til at skrive funktioner og plugins til yderligere at udvide redaktørernes muligheder. Når man sammenligner disse to sprog side om side, strækker Elisp sig vim ud med en bred margin. Sammenlignet med Elisp er vim-script meget sværere at konfigurere og har meget få biblioteker at arbejde med. Elisp står dog i hjertet af Emacs og anses for at være stærk nok til at gennemføre noget.
Hvorfor Emacs er bedre end Vim?
Både Emacs og Vim er fremragende værktøjer til redigering af filer af alle typer programmeringssprog. Begge er ekstremt kraftfulde og giver store sæt værktøjer, som deres brugere kan arbejde med. Emacs har dog ikke kun de redigeringsværktøjer, som Vim har, men udvider dem også ved at tilbyde yderligere funktioner, såsom e-mail-klient, debugger osv.
Selv med alle disse funktioner til stede, giver Emacs dig mulighed for yderligere at tilpasse det og tilføje funktioner til det, hvilket er en fin indikation af den kraft og kompleksitet, der findes i kernen af Emacs. Emacs er uendelig udvidelig og står hoved og skuldre over Vim.