emacs | |
---|---|
Type | Tekst editor |
Forfatter | Richard Stallman , Guy Steel [d] og David Moon [d] |
Udvikler | GNU projekt |
Skrevet i | C og Emacs lisp [1] |
Operativ system | Cross platform |
Første udgave | 1976 [2] |
Hardware platform | på tværs af platforme |
nyeste version |
|
Licens | GNU GPL |
Internet side | gnu.org/software/emacs/ |
Mediefiler på Wikimedia Commons |
Emacs ( Imax, Emax , også Emax ) er en familie af multifunktionelle, udvidelige teksteditorer .
Den originale EMACS blev skrevet i 1976 af Richard Stallman og Guy Steel (engelsk) som et sæt makroer til redigering ( Engelsk redaktør MACroS ) til TECO -editoren [4] [5] [6] [7] .
Med udskiftningen af fjernskrivemaskiner med terminaler vandt TECO- teksteditoren popularitet i begyndelsen af 1970'erne . Dens ulempe var, at den fungerede i kommandotilstand. Hver handling (åbn en fil, luk, gem, indtast tekst osv.) blev udført af den tilsvarende editor-kommando, som var en kæde af instruktioner.
I 1972 eller 1974 (ifølge andre kilder, i 1976 ) besøgte Richard Stallman Stanford AI Lab, hvor han mødte E -teksteditoren , som gjorde et stort indtryk på ham. E gav mulighed for redigering i realtid, hvor skærmen blev opdateret med hvert tastetryk.
I 1972 tilføjede Carl Mikkelsen (eller Mikkelson) en funktion til TECO, der skiftede den fra kommandotilstand til redigeringstilstand i realtid, hvor skærmen blev opdateret for hvert tastetryk. Funktionen fik navnet "Control-R", efter den tastekombination, der udløste den. Richard Stallman modificerede denne funktion for at være mere effektiv og inkludere muligheden for at kalde makroer, hvilket gjorde det muligt for tastekombinationer at fremkalde de relevante TECO-kommandoer.
I 1978 blev Multics Emacs skabt af Bernard Greenberg fra Honeywell Cambridge Information Systems Lab , skrevet i MacLisp . Brugerudvidelser blev også skrevet i Lisp . Valget af Lisp gav større fleksibilitet end nogensinde før, og de fleste efterfølgende implementeringer af Emacs fulgte.
I 1981 blev Gosling Emacs , den første Emacs til at køre på UNIX , skabt af James Gosling . Det blev skrevet i C , og udvidelserne blev skrevet på en Lisp - dialekt kaldet Mocklisp .
I 1984 begyndte Richard Stallman at udvikle en ny implementering af Emacs som et gratis alternativ til de proprietære Gosling Emacs. GNU Emacs var det første program i GNU-projektet . Redaktørens kerne blev skrevet i C , mens udvidelserne blev skrevet i Emacs Lisp . De første versioner af GNU Emacs brugte noget af Gosling Emacs-koden, men da Gosling Emacs blev solgt til UniPress og gjort proprietær, blev GNU Emacs-kildekoden fjernet fra Gosling Emacs-kildekoden.
I 1991 dukkede en gaffel af Emacs af Lucid Inc. op, kaldet LucidEmacs. Den var baseret på den tidlige alfaversion af GNU Emacs 19. Den blev efterfølgende omdøbt til XEmacs . Gaflen holdt indtil 2009, hvor den sidste stabile version af XEmacs blev udgivet (den sidste betaversion blev udgivet i 2013 [10] ). Faktisk er alle de unikke funktioner i denne variant af Emacs blevet returneret til GNU/Emacs-hovedgrenen.
I 2008 trak Richard Stallman sig fra direkte støtte til GNU/Emacs-udvikling. De vigtigste udviklere blev erstattet af Stefan Monnier og Chong Yidong [11] .
I 2015 erstattede John Wiegley Stéphane Monier som hovedudvikler af GNU/Emacs [12] .
Da Emacs har eksisteret i lang tid og oprindeligt kun fungerede på tekstterminaler, svarer dens terminologi ikke nøjagtigt til moderne vinduessystemer. Grundlæggende Emacs specifikke vilkår:
Grundlaget for Emacs-ideologien er principperne om "alt i ét", udvidelsesmuligheder, brugertilpasning og dokumentation.
Funktionaliteten af Emacs kan opdeles i tre niveauer: grundlæggende, hovedtilstand og avanceret tilstand. Kombinationen af disse tre niveauer giver dig mulighed for at udføre et stort antal opgaver (inklusive dem, der ikke er direkte relateret til tekstredigering) uden at forlade editoren.
Kernefunktionaliteten inkluderer grundlæggende tekstmanipulationsoperationer , både fundet i enhver editor og unikke for Emacs. Dette omfatter indsættelse og sletning af tekst, flytning gennem tekst, åbning og lagring af filer osv. Det unikke for Emacs er de mange af disse operationer og tilgængeligheden af næsten alle af dem fra tastaturet. Så du kan for eksempel bevæge dig gennem teksten tegn for tegn, efter ord, linjer, sider, sætninger, afsnit, balancerede lister (det vil sige ved udtryk omgivet af parenteser), funktioner ...
Emacs' hovedtilstand bestemmes af typen af fil, der redigeres. Der er tilstande til forskellige programmeringssprog , tekstmarkeringssprog ( HTML , TeX osv.), til at gennemse mapper, til at læse og sende e-mail og mange andre. Major-tilstand bestemmer, hvordan syntaks fremhæves, hvordan kode justeres for programmeringssprog, specielle kommandoer til udførelse af almindeligt anvendte operationer og mere. Major-tilstand kan også tilsidesætte grundlæggende tekstelementer. Så når du redigerer programmer på C og lignende sprog, betragtes en enkelt kommando af programmet som en sætning. Samtidig har sætningen i kommentarerne den sædvanlige tekstmæssige betydning.
Yderligere tilstande giver normalt funktionalitet uafhængig eller svagt afhængig af formatet på den fil, der redigeres. I modsætning til hovedtilstanden, som er den samme for enhver buffer, er antallet af aktive yderligere tilstande ikke begrænset. For eksempel er der tilstande til at fremhæve den aktuelle linje, konstant vise navnet på den aktuelle funktion for programtekster, fremhæve matchende parenteser og mange andre.
Emacs er skrevet på to sprog: C og Emacs Lisp (Elisp, en dialekt af Lisp ). Redaktøren er selv Elisp-tolk. Faktisk er det meste af Emacs skrevet i Elisp og kan opfattes som en udvidelse til hovedprogrammet.
Brugere kan selv oprette dele af Emacs, fra individuelle funktioner til nye hovedtilstande. Ved at gøre det kan du tilsidesætte alle Elisp-funktioner, inklusive dem, der er en del af selve editoren, og ændre funktionaliteten af Emacs ved at ændre nogle funktioner i overensstemmelse hermed.
Ud over et stort antal udvidelser med fokus på at skrive tekst eller udvikle programmer, er der pakker til Emacs, der udfører funktionerne som fuldgyldige applikationer til at læse mail og nyheder (f.eks. Gnus ), organisere personlig tid og holde styr på information , skabe og lytte til musik, kommunikere via Jabber eller IRC . Antallet af applikationer oprettet til Emacs er sådan, at du med succes kan udføre mange opgaver uden at forlade Emacs.
Derudover giver Emacs dig mulighed for at omdefinere næsten enhver tast - både globalt og for hver hovedtilstand individuelt - hvilket giver dig mulighed for at tildele en ofte brugt handling til en gratis tastekombination.
En række spil er blevet indbygget i Emacs som udvidelser, såsom Tetris ( M-x tetris) [13] .
Emacs er skrevet med den forståelse, at forskellige brugere har forskellige præferencer. Forskellige redigeringsmuligheder kan ændres ved hjælp af Elisp-variabler. Hertil kommer, for nemheds skyld, såvel som for dem, der ikke kender Elisp, en konfigurationstilstand, hvor parameterværdier kan indtastes i specielle felter eller vælges fra lister. Emacs giver dig mulighed for at indstille forskellige parameterværdier for forskellige buffere. Variable værdier kan også gemmes i filer, så du nemt kan redigere C-filer med en grundindrykning på 2 mellemrum eller 4 - denne værdi kan simpelthen gemmes i en fil.
Som nævnt ovenfor kan du tilpasse Emacs til dine behov ved at bruge funktioner skrevet på Elisp-sproget, inklusive tilsidesættelse af eksisterende. Endelig giver Emacs en meget kraftfuld evne til at udføre et vilkårligt sæt funktioner, når visse betingelser er opfyldt. Sådanne funktioner føjes til de såkaldte "fælder" ( engelsk krog - en fælde, en fælde, en krog). Ved hjælp af "fælder" kan du "fange" (opsnappe) visse begivenheder (for eksempel inkludering af en eller anden tilstand). Der er endda en så kraftfuld funktion som evnen til at udføre funktioner efter hver bufferændring.
Emacs har omfattende dokumentation, herunder dokumentation for Elisp. Men en funktion ved Emacs er, at hver funktion eller variabel kan forsynes med dokumentation, når den er defineret. Sådan dokumentation kan ses ved blot at indtaste navnet på funktionen eller variablen.
emacs | ||||||
---|---|---|---|---|---|---|
Implementeringer |
| |||||
Tilstande | ||||||
Enhed | ||||||
Andet |
| |||||
|
Teksteditorer ( liste ) | |
---|---|
Unix / Linux | |
DOS | |
Windows | |
Cross-platform | |
SDK | |
Funktioner |
GNU projekt | ||
---|---|---|
Historie | ||
Licenser |
| |
Software _ |
| |
Personligheder |
| |
Andre emner |
|