•  untoreh-light

Emacs

Varför emacs, och min personliga emacs önskelista.

Vad är emacs?

A virtuell maskin eller tolk för emacs lisp programmeringsspråk ... typ av. Emacs lisp programmeringsspråk (elisp) är allmänt men har förstklassigt stöd för själva textredigeraren som kör det. De primitiva typerna är fokuserade kring textredigering, men du kan skriva vad du vill med vackert hyfsad prestanda (nyligen tack vare jit sammanställning ) eftersom det är en lisp ättling till MACLISP och ett syskon till vanlig lisp . Emacs lisp har dock ingen standard, och specifikationen motsvarar den mest populära implementeringen, det vill säga GNU Emacs.

Varför emacs?

Med frasen "Emacs är ett operativt system" menar folk att du kan använda det för att göra allt du skulle använda en dator till. Det kommer inte att vara ett bokstavligt operativt system eftersom kärnan (vanligtvis linux) fortfarande är ansvarig för hårdvaran.[1] Det kan dock enkelt kallas en skrivbordsmiljö eftersom det ger en miljö att arbeta med. Det ger dig möjlighet att skriva snabb interaktiv kod för att ansluta till alla applikationer, det kan vara lika smutsigt som skalskript eller genomtänkt för att tillhandahålla stabila API: er. Faktum är att många emacs -funktioner tillhandahålls av paket.[2] Kan andra redaktörer vara lika utdragbara som emacs? Nej varför? Eftersom andra redaktörer använder en annan användarmodell, en där användaren måste begränsas eftersom den betraktas som en "gäst" i den löpande miljön som erbjuder en "tjänst" till användaren. Detta är inte fallet med emacs, där miljön och användaren blir en och samma. I emacs har du tillgång till allt och kan modifiera nästan alla saker på samma sätt som dessa saker skapades, aka elisp.

Är det värt det?

Fördelarna tillkommer, det är investeringar, och liksom alla investeringar bör du förvänta dig vinster som är proportionella mot hur mycket du lägger ner, därför måste du lägga lite tid på att lära dig och öva på hur du använder den.

Min GNU emacs önskelista

Emacs är ett mycket bra operativsystem, men en dålig textredigerare.

... Eller något i den stilen. GNU Emacs implementering, precis som emacs, har sina rötter på åttiotalet, och många delar av kärnan visar deras ålder ...

[7]kan inte på grund av hastighet men hastighet är bara viktigt på kort sikt, och utan att överväga jit -sammanställning
[6]Argumentet för mer avancerade animationer kan bli omtvistat, eftersom många tror att saker som övergångar, oskärpa, texturer, skuggor etc. inte ger mervärde till ett GUI ... men de gör det. Men att försvara animationer är ett annat inlägg, här kan jag bara säga att noggrann och genomtänkt tillämpning av mer avancerade egenskaper kan göra stor skillnad i användbarhet och produktivitet också (Det är inte bara styling!).
[5] emacs-ng använder webrender, vilket tillåter gpu -baserad ritning, eftersom det fungerar på samma sätt som en spelmotor, fyller det delar av mina önskemål, men jag vet inte hur webrender -backend ansluter till emacs internals; om dess ansträngningar liknar [pgtk] backend att det fortfarande skulle bli ganska kort.
[1]Det är dock roligt att tänka på en framtid där GNU HURD (kärnan) kan kopplas till emacs för att tala med en lisp närmare bar metall
[2]Det finns dock fortfarande en bulk av 200 000 rader C -kod som implementerar kärnfunktioner
[4]Eftersom emacs visar saker som en "server" när man pratar med en annan server skickar den en fullständig "uppdatering" av fönstret, vilket har orsakat flimmer i vissa fall.
[3] browsh kan visa webbsidor inom terminalen, är den rika webbplatsen "reducerad" för att stödja terminalgränssnittet, detta är fallet med "grafisk första, terminal andra"

Inläggstaggar: