Emacs - Emacs

Emacs
Emacs27 viser Org, Magit og Dired med modus-operandi theme.png
Org-mode , Magit og Dired buffere i GNU Emacs
Originale forfatter (er) David A. Moon ,
Guy L. Steele Jr.
Udvikler (er) Forskellige gratis/gratis softwareudviklere , herunder frivillige og kommercielle udviklere
Første udgivelse 1976 ; 45 år siden ( 1976 )
Skrevet i Lisp , C
Operativ system På tværs af platforme
Type Tekst editor

Emacs / Jeg m æ k s / eller EMACS ( Redaktør makroer ) er en familie af teksteditorer som er karakteriseret ved deres strækbarhed . Manualen til den mest udbredte variant, GNU Emacs , beskriver den som "den udvidelige, brugerdefinerbare, selvdokumenterende displayredigerer i realtid". Udviklingen af ​​de første Emacs begyndte i midten af ​​1970'erne, og arbejdet med dens direkte efterkommer, GNU Emacs, fortsætter aktivt fra 2021.

Emacs har over 10.000 indbyggede kommandoer, og brugergrænsefladen gør det muligt for brugeren at kombinere disse kommandoer til makroer for at automatisere arbejdet. Imaceringer af Emacs har typisk en dialekt af programmeringssproget Lisp, der giver en dyb udvidelsesmulighed, så brugerne og udviklerne kan skrive nye kommandoer og applikationer til editoren. Udvidelser er blevet skrevet til at administrere e -mail , filer , konturer og RSS -feeds samt kloner af ELIZA , Pong , Conway's Life , Snake og Tetris .

Den originale EMACS blev skrevet i 1976 af David A. Moon og Guy L. Steele Jr. som et sæt af Editor MACroS til TECO -redaktøren. Det var inspireret af ideerne fra TECO-makroredaktørerne TECMAC og TMACS.

Den mest populære og mest portede version af Emacs er GNU Emacs, som blev oprettet af Richard Stallman til GNU -projektet . XEmacs er en variant, der forgrenede sig fra GNU Emacs i 1991. GNU Emacs og XEmacs bruger lignende Lisp -dialekter og er for det meste kompatible med hinanden. XEmacs udvikling er inaktiv.

Emacs er sammen med vi en af ​​de to hovedkonkurrenter i de traditionelle redaktørkrige i Unix -kulturen. Emacs er blandt de ældste gratis og open source -projekter, der stadig er under udvikling.

Historie

Emacs blev startet af Guy L. Steele Jr. som et projekt for at forene de mange divergerende TECO -kommandosæt og nøglebindinger på MIT
David A. Moon
Grænsefladen til Emacs blev påvirket af designet af Symbolics space-cadet-tastaturet

Emacs udvikling begyndte i løbet af 1970'erne på MIT AI Lab , hvis PDP-6 og PDP-10 computere brugte operativsystemet Incompatible Timesharing System (ITS) , der havde en standard linjeditor kaldet Tape Editor and Corrector (TECO). I modsætning til de fleste moderne tekstredigerere brugte TECO separate tilstande, hvor brugeren enten ville tilføje tekst, redigere eksisterende tekst eller vise dokumentet. Man kunne ikke placere tegn direkte i et dokument ved at skrive dem i TECO, men ville i stedet indtaste et tegn ('i') i TECO -kommandosproget, der fortæller det at skifte til input -tilstand, indtaste de nødvendige tegn, i løbet af hvilken tid den redigerede tekst blev ikke vist på skærmen, og indtast endelig et tegn (<esc>) for at skifte editor tilbage til kommandotilstand. (En lignende teknik blev brugt til at tillade overtyping.) Denne adfærd ligner den i programmet ed .

Richard Stallman besøgte Stanford AI Lab i 1972 eller 1974 og så laboratoriets E -editor, skrevet af Fred Wright. Han var imponeret over redaktørens intuitive WYSIWYG (What You See Is What You Get) adfærd, som siden er blevet standardadfærd for de fleste moderne tekstredigerere. Han vendte tilbage til MIT, hvor Carl Mikkelsen, en hacker på AI Lab, havde tilføjet TECO en kombineret visning/redigeringstilstand kaldet Control-R, der tillod skærmvisningen at blive opdateret, hver gang brugeren indtastede et tastetryk. Stallman genimplementerede denne tilstand for at køre effektivt og tilføjede derefter en makrofunktion til TECO-visningsredigeringsfunktionen, der tillod brugeren at omdefinere ethvert tastetryk for at køre et TECO-program.

E havde en anden funktion, som TECO manglede: tilfældig adgangsredigering. TECO var en side-sekventiel editor, der var designet til at redigere papirbåndPDP-1 og typisk tillod redigering på kun en side ad gangen i rækkefølgen af ​​siderne i filen. I stedet for at vedtage E's tilgang til at strukturere filen til side-tilfældig adgang på disk, ændrede Stallman TECO til at håndtere store buffere mere effektivt og ændrede sin filhåndteringsmetode til at læse, redigere og skrive hele filen som en enkelt buffer. Næsten alle moderne redaktører bruger denne fremgangsmåde.

Den nye version af TECO blev hurtigt populær på AI Lab og akkumulerede hurtigt en stor samling brugerdefinerede makroer, hvis navne ofte endte på MAC eller MACS , som stod for makro . To år senere overtog Guy Steele projektet med at forene de forskellige makroer i et enkelt sæt. Steele og Stallmans færdige implementering omfattede faciliteter til udvidelse og dokumentation af det nye makrosæt. Det resulterende system blev kaldt EMACS, som stod for Editing MACroS eller alternativt E med MACroS . Stallman valgte navnet Emacs "fordi <E> ikke var i brug som en forkortelse på ITS på det tidspunkt." En apokryf hacker koan påstår, at programmet er opkaldt efter Emack & Bolio's , en populær isbutik i Cambridge . Det første operationelle EMACS -system eksisterede i slutningen af ​​1976.

Stallman så et problem i for meget tilpasning og de facto gafler og satte visse betingelser for brug. Senere skrev han:

EMACS blev distribueret på grundlag af fælles deling, hvilket betyder, at alle forbedringer skal gives tilbage til mig for at blive inkorporeret og distribueret.

De originale Emacs kørte ligesom TECO kun på PDP-10, der kørte ITS. Dets adfærd var tilstrækkelig forskellig fra TECO's, til at den kunne betragtes som en tekstredaktør i sig selv, og den blev hurtigt standardredigeringsprogrammet på ITS. Mike McMahon overførte Emacs fra ITS til operativsystemerne TENEX og TOPS-20 . Andre bidragydere til tidlige versioner af Emacs inkluderer Kent Pitman , Earl Killian og Eugene Ciccarelli . I 1979 var Emacs hovedredaktøren, der blev brugt i MIT's AI -laboratorium og dets laboratorium for datalogi.

Implementeringer

Tidlige implementeringer

James Gosling skrev den første Emacs-lignende editor, der kørte på Unix ( Gosling Emacs ) i 1981

I de følgende år skrev programmører en række forskellige Emacs-lignende redaktører til andre computersystemer. Disse omfattede EINE ( EINE Is Not EMACS ) og ZWEI ( ZWEI Was EINE Initially ), som blev skrevet til Lisp -maskinen af Mike McMahon og Daniel Weinreb og Sine ( Sine Is Not Eine ), som blev skrevet af Owen Theodore Anderson. Weinrebs EINE var den første Emacs skrevet i Lisp. I 1978 skrev Bernard Greenberg Multics Emacs næsten udelukkende i Multics Lisp på Honeywells Cambridge Information Systems Lab. Multics Emacs blev senere vedligeholdt af Richard Soley , der fortsatte med at udvikle NILE Emacs-lignende redaktør for NIL-projektet, og af Barry Margolin. Mange versioner af Emacs, herunder GNU Emacs, ville senere vedtage Lisp som et udvidelsessprog.

James Gosling , der senere skulle opfinde NeWS og programmeringssproget Java , skrev Gosling Emacs i 1981. Den første Emacs-lignende editor, der kørte på Unix , blev Gosling Emacs skrevet i C og brugte Mocklisp , et sprog med Lisp-lignende syntaks, som et udvidelsessprog.

Tidlige annoncer til Computer Corporation of America 's CCA EMACS (Steve Zimmerman). dukkede op i 1984. 1985 sammenligninger med GNU Emacs, da den kom ud, nævnte gratis vs. $ 2.400.


GNU Emacs

GNU Emacs kører i en tekstkonsol
GNU Emacs kører på Microsoft Windows

Richard Stallman begyndte at arbejde på GNU Emacs i 1984 for at producere et gratis software -alternativ til de proprietære Gosling Emacs. GNU Emacs var oprindeligt baseret på Gosling Emacs, men Stallmans udskiftning af sin Mocklisp -tolk med en ægte Lisp -tolk krævede, at næsten hele koden blev omskrevet. Dette blev det første program udgivet af det begyndende GNU -projekt. GNU Emacs er skrevet i C og giver Emacs Lisp , også implementeret i C, som et udvidelsessprog. Version 13, den første offentlige udgivelse, blev foretaget den 20. marts 1985. Den første bredt distribuerede version af GNU Emacs var version 15.34, udgivet senere i 1985. Tidlige versioner af GNU Emacs blev nummereret som 1.xx , med det første ciffer betegnet versionen af ​​C -kernen. Den 1 blev droppet efter versionen 1.12, da man mente, at den største antal aldrig ville ændre sig, og dermed nummereringen sprunget fra en til at 13 . I september 2014 blev det annonceret på GNU emacs-devel-mailinglisten, at GNU Emacs ville vedtage en hurtig frigivelsesstrategi , og versionsnumre ville øges hurtigere i fremtiden.

GNU Emacs blev senere portet til Unix. Det tilbød flere funktioner end Gosling Emacs, især en fuldt udstyret Lisp som sit udvidelsessprog, og snart erstattede Gosling Emacs som de facto Unix Emacs-editor. Markus Hess udnyttede en sikkerhedsfejl i GNU Emacs e -mail -undersystem i sin krakketur i 1986, hvor han fik superbrugeradgang til Unix -computere.

Det meste af GNU Emacs funktionalitet er implementeret gennem et scriptsprog kaldet Emacs Lisp . Fordi omkring 70% af GNU Emacs er skrevet i Elisp -udvidelsessproget, behøver man kun at porte C -kernen, der implementerer Elisp -tolken. Dette gør det betydeligt mindre vanskeligt at overføre Emacs til en ny platform end at overføre et tilsvarende projekt, der kun består af indfødt kode.

GNU Emacs udvikling var relativt lukket indtil 1999 og blev brugt som et eksempel på katedralens udviklingsstil i Domkirken og basaren . Projektet har siden vedtaget en offentlig udviklings mailingliste og anonym CVS -adgang. Udviklingen fandt sted i en enkelt CVS -bagagerum frem til 2008 og blev derefter skiftet til Bazaar DVCS . Den 11. november 2014 blev udviklingen flyttet til Git .

Richard Stallman er forblevet hovedindehaver af GNU Emacs, men han er til tider trådt tilbage fra rollen. Stefan Monnier og Chong Yidong var vedligeholdere fra 2008 til 2015. John Wiegley blev udnævnt til vedligeholder i 2015 efter et møde med Stallman på MIT. I begyndelsen af ​​2014 har GNU Emacs haft 579 individuelle forpligtere gennem sin historie.

XEmacs

XEmacs 21.5 på Linux

Lucid Emacs, baseret på en tidlig alfa-version af GNU Emacs 19, blev udviklet begyndende i 1991 af Jamie Zawinski og andre hos Lucid Inc. En af de mest kendte tidlige gafler inden for fri softwareudvikling opstod, da kodebaserne for de to Emacs-versioner divergerede og de separate udviklingsteams ophørte med at fusionere dem tilbage til et enkelt program. Lucid Emacs er siden blevet omdøbt til XEmacs . Dens udvikling er i øjeblikket inaktiv, med den seneste stabile version 21.4.22 udgivet i januar 2009 (mens en beta blev frigivet i 2013), mens GNU Emacs har implementeret mange tidligere XEmacs-funktioner.

Andre gafler af GNU Emacs

Andre bemærkelsesværdige gafler omfatter:

  • Aquamacs - baseret på GNU Emacs (Aquamacs 3.2 er baseret på GNU Emacs version 24 og Aquamacs 3.3 er baseret på GNU Emacs version 25), der fokuserer på integration med Apple Macintosh -brugergrænsefladen
  • Meadow - en japansk version til Microsoft Windows
  • SXEmacs - Steve Youngs gaffel af XEmacs

Forskellige Emacs -redaktører

uEmacs/Pk 4.0.15 på Linux
De mg bittesmå Emacs-lignende editor i OpenBSD 5.3. Redigering af Ruby -kildekode
JOVE kører i en Debian -boks
Zmacs , en Emacs til Lisp -maskiner

Tidligere spredte projekter sigte på at producere små versioner af Emacs. GNU Emacs var oprindeligt målrettet mod computere med et 32-bit fladt adresserum og mindst 1  MiB RAM. Sådanne computere var avancerede arbejdsstationer og minicomputere i 1980'erne, og det efterlod et behov for mindre genimplementeringer, der ville køre på almindelig personlig computerhardware . Dagens computere har mere end nok strøm og kapacitet til at fjerne disse restriktioner, men små kloner er for nylig blevet designet til at passe på softwareinstallationsdiske eller til brug på mindre kapabel hardware.

Andre projekter sigter mod at implementere Emacs på en anden dialekt af Lisp eller et helt andet programmeringssprog. Selvom ikke alle stadig vedligeholdes aktivt, omfatter disse kloner:

  • MicroEMACS , som oprindeligt blev skrevet af Dave Conroy og videreudviklet af Daniel Lawrence, og som findes i mange variationer.
  • mg , oprindeligt kaldet MicroGNUEmacs og senere mg2a, en offentlig udlægning af MicroEMACS beregnet til mere at ligne GNU Emacs. Nu installeret som standard på OpenBSD .
  • JOVE (Jonathan's Own Version of Emacs), Jonathan Paynes ikke-programmerbare Emacs-implementering til UNIX-lignende systemer.
  • MINCE (MINCE Is Not Complete Emacs), en version til CP/M og senere DOS, fra Mark of the Unicorn . MINCE udviklede sig til Final Word, som til sidst blev Borland Sprint tekstbehandler.
  • Perfect Writer , en CP/M -implementering afledt af MINCE, der blev inkluderet omkring 1982 som standard tekstbehandler med de tidligste udgivelser af Kaypro II og Kaypro IV. Det blev senere leveret med Kaypro 10 som et alternativ til WordStar .
  • Freemacs , en DOS -version, der bruger et udvidelsessprog baseret på tekstmakroudvidelse og passer inden for den oprindelige 64 KiB flade hukommelsesgrænse.
  • Zile . Zile var et rekursivt akronym for Z ile I s L ossy E macs , men projektet blev omskrevet i Lua og giver nu udvidelsen som Zile Implements Lua Editors. Den nye Zile indeholder stadig en implementering af Emacs i Lua kaldet Zemacs. Der er også en implementering af vi kaldet Zi.
  • Zmacs , til MIT Lisp -maskinen og dens efterkommere, implementeret i ZetaLisp .
  • Climacs , en Zmacs-påvirket variant implementeret i Common Lisp .
  • Epsilon , en Emacs -klon af Lugaru Software. Versioner til DOS, Windows, Linux, FreeBSD, Mac OS X og O/S 2 er samlet i udgivelsen. Det bruger et ikke-Lisp-udvidelsessprog med C-syntaks og brugte en meget tidlig samtidig kommando-shell-bufferimplementering under MS-DOS med én opgave.
  • PceEmacs er den Emacs-baserede editor for SWI-Prolog .
  • Amacs , en Apple II ProDOS -version af Emacs implementeret i 6502 -samling af Brian Fox .
  • Hemlock , oprindeligt skrevet i Spice Lisp , derefter Common Lisp . En del af CMU Common Lisp . Påvirket af Zmacs . Senere forked af Lucid Common Lisp (som Helix), LispWorks og Clozure CL -projekter. Der er også et Portable Hemlock -projekt, der har til formål at levere en Hemlock, der kører på flere Common Lisp -implementeringer.
  • umacs , en implementering under OS-9
  • edwin , en Emacs-lignende tekstredaktør inkluderet i MIT/GNU Scheme.

Redaktører med Emacs -emulering

  • Joe's Own Editor emulerer Emacs nøglebindinger, når de påberåbes som jmacs .
  • JED har en emuleringstilstand for Emacs.
  • Eclipse (IDE) indeholder et sæt Emacs -nøglebindinger.
  • IntelliJ IDEA indeholder et sæt Emacs -nøglebindinger.
  • Epsilon (teksteditor) Standard til Emacs -emulering og understøtter en vi -tilstand.
  • Det Kakao tekst-systemet bruger nogle af de samme terminologi og forstår mange Emacs navigation bindinger. Dette er muligt, fordi den oprindelige brugergrænseflade bruger kommandotasten (svarer til Super) i stedet for kontroltasten .
  • GNU Readline er en linje-editor , der forstår de standard Emacs navigation tastebindinger. Det har også en vi -emuleringstilstand.
  • GNOME Builder har en emuleringstilstand for Emacs.
  • MATLAB giver Emacs nøglebindinger til sin editor.
  • Visual Studio Code giver en udvidelse til at efterligne Emacs nøglebindinger.

Funktioner

Emacs er primært et tekstredigeringsprogram og er designet til at manipulere tekststykker, selvom det er i stand til at formatere og udskrive dokumenter som et tekstbehandlingsprogram ved at interagere med eksterne programmer som LaTeX , Ghostscript eller en webbrowser. Emacs giver kommandoer til at manipulere og differentielt vise semantiske tekstenheder såsom ord , sætninger , afsnit og kildekodekonstruktioner såsom funktioner . Det indeholder også tastaturmakroer til at udføre brugerdefinerede batcher af redigeringskommandoer.

GNU Emacs er en visningsredaktør i realtid , da redigeringerne vises på skærmen, når de forekommer. Dette er standardadfærd for moderne tekstredigerere, men EMACS var blandt de tidligste til at implementere dette. Alternativet er at skulle udstede en særskilt kommando for at vise tekst, (f.eks. Efter at have ændret den). Dette gøres i line-redaktører, såsom ed (unix), ED (CP/M) og Edlin (MS-DOS).

Generel arkitektur

Næsten al funktionalitet i Emacs, herunder grundlæggende redigeringsoperationer, såsom indsættelse af tegn i et dokument, opnås gennem funktioner skrevet på en dialekt af Lisp -programmeringssproget . Dialekten, der bruges i GNU Emacs, er kendt som Emacs Lisp (ELisp). ELisp -laget sidder oven på en stabil kerne af grundlæggende tjenester og platformabstraktion skrevet i C -programmeringssproget . I dette Lisp -miljø kan variabler og funktioner ændres uden at skulle kompilere eller genstarte Emacs. De fleste konfigurationer gemmes i variabler og ændres ved blot at ændre variabelværdier.

Hovedteksten redigering datastruktur kaldes puffer indeholdende tekst med yderligere attributter; de vigtigste er: punkt (markørplacering) og mark (en anden placering, der afgrænser den valgte region sammen med punktet ), navnet på den fil, den besøger (hvis det er relevant) og lokale værdier for ELisp -variabler, der er specifikke for bufferen. Sådanne lokale værdier især angive sæt af aktive tilstande (præcis en vigtig tilstand typisk tilpasse editoren til indholdet type bufferen (ligesom ELisp, C, HTML osv), og et vilkårligt antal mindre tilstande styrer andre redaktør adfærd uafhængigt af indhold type). Enhver interaktion med editoren (som tastetryk eller klik på en museknap) realiseres ved at udføre Elisp -kode, typisk en kommando , som er en funktion eksplicit designet til interaktiv brug. Nøgler kan vilkårligt omdefineres, og kommandoer kan også tilgås ved navn; nogle kommandoer evaluerer vilkårlig Elisp -kode fra buffere (f.eks. eval-regioneller eval-buffer).

Buffere vises i vinduer , som er flisebelagte dele af terminalskærmen eller GUI -vinduet (kaldet en ramme i Emacs -termer; flere rammer er mulige). Afhængigt af konfiguration inkluderer vinduer rullepaneler, linjenumre, nogle gange en 'header line' typisk for at lette navigationen og en tilstandslinje i bunden (normalt viser buffernavn, de aktive tilstande og punktposition for bufferen blandt andre). Bunden af ​​hver ramme bruges til meddelelser (dengang kaldet 'ekkoområde') og tekstindtastning til kommandoer (dengang kaldet 'minibuffer').

Flere vinduer kan åbnes på den samme buffer, for eksempel for at se forskellige dele af en lang tekst, og flere buffere kan dele den samme tekst, for eksempel for at drage fordel af forskellige større tilstande i en fil med blandet sprog. Den store tilstand kan også ændres manuelt efter behov med M-x <mode name>.

Tilpasning

  • Tastetryk kan registreres i makroer og afspilles igen for at automatisere komplekse, gentagne opgaver. Dette gøres ofte ad hoc, hvor hver makro kasseres efter brug, selvom makroer kan gemmes og påberåbes senere.
  • Ved opstart udfører Emacs et Emacs Lisp -script ved navn ~/.emacs (nyere versioner leder også efter ~/emacs.el , ~/.emacs.d/init.el og ~/.config/emacs/init.el ; Emacs vil udføre den første, den finder, og ignorere resten). Denne personlige tilpasningsfil kan være vilkårligt lang og kompleks, men typisk indhold omfatter:
    • Indstilling af globale variabler eller påkaldelse af funktioner for eksempelvis at tilpasse Emacs adfærd (set-default-coding-systems 'utf-8)
    • Nøglebindinger til at tilsidesætte standardknapper og tilføje genveje til kommandoer, som brugeren finder praktisk, men som ikke har en nøglebinding som standard. Eksempel:(global-set-key (kbd "C-x C-b") 'ibuffer)
    • Indlæser, aktiverer og initialiserer udvidelser (Emacs leveres med mange udvidelser, men kun få er indlæst som standard.)
    • Konfiguration af hændelseskroge til at køre vilkårlig kode på bestemte tidspunkter, f.eks. For automatisk at kompilere kildekoden igen efter at have gemt en buffer ( after-save-hook)
    • Udførelse af vilkårlige filer, normalt for at opdele en alt for lang konfigurationsfil i håndterbare og homogene dele ( ~/ .emacs.d/ og ~/ elisp/ er traditionelle placeringer for disse personlige scripts)
  • Den tilpassede udvidelse gør det muligt for brugeren at indstille konfigurationsegenskaber, f.eks. Farveskemaet interaktivt, indefra Emacs, på en mere brugervenlig måde end ved at indstille variabler i .emacs : den tilbyder søgning, beskrivelser og hjælpetekst, input til flere valg, tilbageførsel til standardindstillinger, ændring af den kørende Emacs -instans uden genindlæsning og andre bekvemmeligheder, der ligner præferencer i andre programmer. De tilpassede værdier gemmes automatisk i .emacs (eller en anden udpeget fil).
  • Temaer , der påvirker valget af skrifttyper og farver, defineres som elispile filer og vælges gennem den tilpassede udvidelse.

Selvdokumenterende

Den første Emacs indeholdt en hjælp bibliotek, der indeholdt dokumentation for hver kommando, variabel og intern funktion. På grund af dette beskrev Emacs-fortalere softwaren som selvdokumenterende, idet den præsenterer brugeren for oplysninger om dens normale funktioner og dens aktuelle tilstand. Hver funktion indeholder en dokumentationsstreng, der vises til brugeren efter anmodning, en praksis, der efterfølgende spredte sig til programmeringssprog, herunder Lisp , Java , Perl og Python . Dette hjælpesystem kan tage brugerne til den faktiske kode for hver funktion, hvad enten det er fra et indbygget bibliotek eller et tilføjet tredjepartsbibliotek.

Emacs har også en indbygget tutorial . Emacs viser instruktioner til udførelse af enkle redigeringskommandoer og påkaldelse af selvstudiet, når det startes uden fil at redigere. Undervisningen er af Stuart Cracraft og Richard Stallman.

Kultur

Emacs Kirke

Richard Stallman som St I GNUcius , en helgen i Emacs Kirke

Den Kirke Emacs , dannet af Richard Stallman , er en parodi religion skabt til Emacs-brugere. Selvom det refererer til vi som dyrets redaktør (vi-vi-vi er 6-6-6 med romertal), er det ikke imod brugen af ​​vi; det kalder det snarere proprietær software anathema . ("Brug af en gratis version af vi er ikke en synd, men en bod ".) Emacs Kirke har sin egen nyhedsgruppe , alt.religion.emacs , der har indlæg, der påstås at støtte denne parodiereligion. Tilhængere af vi har skabt en modsat Cult of vi .

Stallman har i spøg omtalt sig selv som St I  GNU  cius , en helgen i Emacs Kirke.

Emacs pink

Der er folklore, der tilskriver en gentagen belastningsskade i daglig tale kaldet Emacs pinky til Emacs stærke afhængighed af modifikatortaster, selvom der ikke er foretaget undersøgelser for at vise, at Emacs forårsager flere sådanne problemer end andre tastatur-tunge computerprogrammer.

Brugere har behandlet dette på forskellige måder. Nogle brugere anbefaler simpelthen at bruge de to kontroltaster på typiske pc -tastaturer som Shift -taster, mens de trykker på tastaturet for at undgå overdreven belastning af venstre pinky, en korrekt brug af tastaturet vil reducere RSI. Software-side metoder inkluderer:

  • Tilpasning af nøglelayoutet, så Ctrlnøglen transponeres med nøglen. Lignende teknikker omfatter at definere nøglen som en ekstra kontrolnøgle eller transponering af kontrol- og metatasterne. Da disse taster stadig trykkes med den samme finger, kan de dog stadig bidrage til Emacs pink.Caps LockCaps Lock
  • Software, f.eks. Xwrits eller den indbyggede type-break-mode i Emacs, der minder brugeren om at tage regelmæssige planlagte pauser.
  • Brug af ErgoEmacs nøglebindinger (med mindre tilstand ergoemacs-mode).
  • Tilpasning af hele tastaturlayoutet til at flytte statistisk hyppige Emacs -taster til mere passende steder.
  • Pakker som f.eks. ace-jump-modeEller fjerner udvidelser, der giver lignende funktionalitet i trinvis navigation, først beder om et tegn og derefter erstatter forekomster af tegnet med adgangstaster til markørbevægelse.
  • evil-mode, et avanceret Vim -emuleringslag.
  • god-mode, som giver en tilgang, der ligner vim's, med en tilstand til indtastning af Emacs -kommandoer uden ændringstaster.
  • Brug af tilpasset nøglelayout , der tilbydes af Spacemacs , et projekt, hvor space barnøglen bruges som hovednøgle til at starte kontrolsekvenser. Projektet inkorporerer også stærkt både evil-modeog god-mode.
  • StickyKeys , som gør tastesekvenser til tastekombinationer.
  • Emacs 'indbyggede, viper-modeder tillader brug af vi- tastelayoutet til grundlæggende tekstredigering og Emacs-skemaet til mere avancerede funktioner.
  • Giver en nøgle, der er lettere tilgængelig, f.eks. Mellemrumstasten, en dobbelt rolle, så den fungerer som en Control-tast, når den trykkes i kombination med andre taster. Ergonomiske tastaturer eller tastaturer med et større antal taster ved siden af ​​mellemrumstasten, f.eks. Japanske tastaturer , tillader tommelfingerstyring af andre ændringstaster, f.eks. Meta eller Shift.
  • Brug af en begrænset ergonomisk delmængde af tastaturbindinger og adgang til anden funktionalitet ved at skrive M-x <command-name>. Mx selv kan også rebound.
  • Kørsel af Emacs via stemmeinput.

Hardwareløsninger omfatter specielle tastaturer, såsom Kinesis's Contoured Keyboard , som placerer ændringstasterne, hvor de let kan betjenes af tommelfingeren , eller Microsoft Natural -tastaturet , hvis store modifikatortaster er placeret symmetrisk på begge sider af tastaturet og kan trykkes med håndfladen. Fodpedaler kan også bruges.

Den Emacs Pinky er en forholdsvis ny udvikling. Det Space-cadet tastatur , som Emacs blev udviklet havde overdimensionerede Kontrol taster, der var ved siden af mellemrumstasten og var let at nå med tommelfingeren.

Terminologi

Ordet emacs er undertiden pluraliseret som emacsen , efter fonetisk analogi med boxen og VAXen , med henvisning til forskellige varianter af Emacs.

Se også

Referencer

Bibliografi

eksterne links