Emacs är ett sådant exempel på en textredigerare som på grund av sin mångsidighet och anpassningsbara karaktär har fått ett riktigt namn bland utvecklargruppen. Som en av de äldsta textredigerarna där ute är Emacs känt för sin stabilitet och konsistens.
Det som gör Emacs speciellt är att det inte bara är en textredigerare utan snarare en fullfjädrad maskin. Emacs kan ställas in som ett skal, en e-postklient, en arrangör och så mycket mer. Emacs komplexitet uppstår från Lisp-tolk i sin kärna, vilket i sin tur gör det möjligt för användare att anpassa den med ännu fler funktioner med hjälp av Lisp-språket.
Den här artikeln beskriver hur man använder Lisp genom olika metoder för att konfigurera och anpassa Emacs.
Grunderna i Lisp
Innan du ser hur Lisp kan användas för att konfigurera Emacs är det först viktigt att titta på några av grunderna i Lisp-språket för att få en bättre förståelse för denna funktion.
I Lisp består program av symboliska uttryck, förkortade till s-exps. Dessa uttryck kan bara bestå av antingen variabler eller inkludera andra funktioner.
En funktion noteras genom att slå in texten inom en parentes. För att anropa tilläggsfunktionen används till exempel följande syntax:
(+ 2 2)Ovanstående uttalande säger "lägg till 2 till 2.”Kapslade s-exp kommer att se ut så här:
(+ 2 (+ 1 1))Du kan också lagra värden inuti en variabel med kommandot setq:
(setq mitt namn "John")Funktioner kan definieras med avskräckt nyckelord. Till exempel skrivs en funktion som beräknar kvadraten för ett tal enligt följande:
(defun kvadrat (x)(* x x))
(kvadrat 2)
Du kan utvärdera funktioner som definierats med hjälp av knapparna Ctrl + x följd av Ctrl + e. Detta ger en utdata inuti mini-bufferten. Till exempel kommer kvadratfunktionen att ha följande utdata:
Obs! Du måste utvärdera både det nedlagda segmentet och det fyrkantiga segmentet.
Det täcker grunderna. Följande avsnitt visar hur du konfigurerar Emacs med Lisp.
Initieringsfil
När Emacs startar är den första bearbetade filen initialiseringsfilen, eller init-filen, som innehåller kommandon skrivna i Lisp som tillåter användare att konfigurera Emacs. För att öppna initialiseringsfilen, tryck på Ctrl + x, följd av Ctrl + f, och ange sedan ~ /.emacs. Inuti detta uttryck kan du infoga ytterligare kod för att anpassa Emacs.
1) Lägga till support för paket
Lisp kan användas för att lägga till stöd i Emacs för paket med olika källor. Melpa är en av källorna från vilka användare kan installera dessa tillägg. För att lägga till Melpa till Emacs, lägg till följande rader i init-filen:
(kräver paket)(add-to-list 'package-archives
'("melpa" . "http: // melpa.org / paket / ") t)
(initiera paket)
(paket-uppdateringsinnehåll)
Den här koden lägger till Melpa-arkivet i listan över paketförvar, ger Emacs tillstånd att använda dessa paket, initialiserar dessa paket och uppdaterar innehållet för att ändringarna ska kunna ske. Om du öppnar din paketlista genom att trycka på Alt + x och gå in paketlista-paket, du kan se de installerade paketen i Melpa-arkivet.
-
2) Ändra tema för Emacs
Inledningsvis, när du laddar Emacs, får du en skärm som välkomnar dig till Emacs och ger dig olika alternativ, till exempel Emacs Tutorial.
Den här sidan ser dock inte så bra ut. Med Lisp kan du ändra temat för Emacs och startsidan enligt dina preferenser. Användare kan ladda olika typer av teman, ändra teckenstorlekar och till och med lägga till radkulor.
Anta till exempel att du vill ersätta startsidan till skrapbufferten, ladda materialtemat och lägga till radkulor. Detta kan göras genom att lägga till följande rader i init-filen:
(setq inhibit-startup-meddelande t)(lasttema 'material t)
(global-linum-mode t)
Som definierats ovan gör setq-syntaxen hämma-start-meddelandet sant, vilket tar bort den första startsidan. Lasttemat laddar materialtemat. Global-linum-mode-syntaxen är helt enkelt en funktion som är inställd på att vara sant och körs för att producera radnummer. Så här ska Emacs se ut efter att ha skrivit in kommandona ovan:
3) Binda genvägar till tangentbindningar
Lisp kan också användas för att binda kommandon eller genvägar till tangenter. Detta gör det möjligt för användare att anpassa Emacs enligt deras preferenser, samt köra anpassade funktioner som användaren har gjort med bara ett klick.
Antag att du har definierat en funktion som helt enkelt skapar ett bakåtvänd snedstreck och att du vill tilldela detta till tangenterna Ctrl + x följd av Ctrl + o. Detta kan göras genom att lägga till följande rader i initialiseringsfilen:
(avstänga insert_backslash ()(interaktiv)
(Föra in "\"))
(global set-key (kbd ""C-x C-o"")
'insert_backslash)
Här definieras funktionen insert_backslash, görs interaktiv (detta gör att funktionen kan kallas interaktivt menande med tangentbindningen), och utgången är en backslash. Sedan kan du binda funktionen med tangenterna ovan med hjälp av nyckelordet global set-key.
Varför använda Lisp?
Lisp är en integrerad del av Emacs, eftersom det gör att Emacs kan ha mer kraft och funktionalitet. Lisp ger användare möjlighet att anpassa Emacs och göra det till något som matchar deras intressen och behov. Lisp är det som gör Emacs riktigt kraftfullt och unikt jämfört med andra textredigerare.
"