Emacs je jedan takav primjer uređivača teksta koji je, zahvaljujući svojoj svestranosti i prilagodljivosti, stekao prilično ime za sebe među zajednicom programera. Kao jedan od najstarijih uređivača teksta vani, Emacs je poznat po svojoj stabilnosti i dosljednosti.
Ono što Emacs čini posebnim je to što nije samo uređivač teksta, već punopravni stroj. Emacs se može postaviti kao ljuska, klijent e-pošte, organizator i još mnogo toga. Složenost Emacsa proizlazi iz interpretatora Lisp u njegovoj osnovi, što zauzvrat omogućava korisnicima da ga prilagode s još više funkcionalnosti pomoću jezika Lisp.
Ovaj članak pokriva kako koristiti Lisp putem različitih metoda za konfiguriranje i prilagodbu Emacs-a.
Osnove Lispa
Prije nego što vidite kako se Lisp može koristiti za konfiguriranje Emacsa, prvo je važno pogledati neke od osnova jezika Lisp kako biste bolje razumjeli ovu značajku.
U Lispu se programi sastoje od simboličkih izraza, skraćenih na s-exps. Ti se izrazi mogu sastojati samo od varijabli ili mogu sadržavati i druge funkcije.
Funkcija se bilježi umotavanjem teksta u zagradu. Na primjer, za pozivanje funkcije zbrajanja koristi se sljedeća sintaksa:
(+ 2 2)Gornja izjava kaže „dodajte 2 na 2.”Ugnježđeni s-exps izgledat će otprilike ovako:
(+ 2 (+ 1 1))Također možete pohraniti vrijednosti unutar varijable pomoću naredbe setq:
(postavi moje ime "Ivan")Funkcije se mogu definirati pomoću defun ključna riječ. Na primjer, funkcija koja izračunava kvadrat broja zapisuje se na sljedeći način:
(defun kvadrat (x)(* x x))
(kvadrat 2)
Funkcije definirane pomoću tipki možete procijeniti Ctrl + x nakon čega slijedi Ctrl + e. To će proizvesti izlaz unutar mini-međuspremnika. Na primjer, kvadratna funkcija imat će sljedeći izlaz:
Napomena: morate procijeniti i defun segment i kvadratni segment.
To pokriva osnove. Sljedeći odjeljci pokazat će kako konfigurirati Emacs pomoću Lispa.
Datoteka za inicijalizaciju
Kada se Emacs pokrene, prva obrađena datoteka je datoteka inicijalizacije ili init datoteka koja sadrži naredbe napisane na Lispu koje korisnicima omogućuju konfiguriranje Emacs-a. Da biste otvorili inicijalizacijsku datoteku, pritisnite Ctrl + x, nakon čega slijedi Ctrl + f, a zatim uđite ~ /.emacs. Unutar ovog izraza možete umetnuti dodatni kôd za prilagodbu Emacsa.
1) Dodavanje podrške za pakete
Lisp se može koristiti za dodavanje podrške u Emacs-u za pakete različitih izvora. Melpa je jedan od izvora iz kojeg korisnici mogu instalirati ova proširenja. Da biste Melpu dodali u Emacs, dodajte sljedeće retke u init datoteku:
(zahtijeva 'paket)(dodavanje na popis 'arhiva paketa
'("melpa" . "http: // melpa.org / paketi / ") t)
(inicijalizacija paketa)
(paket-osvježi-sadržaj)
Ovaj kôd dodaje Melpa arhivu na popis spremišta paketa, daje dozvolu Emacs-u da koristi te pakete, inicijalizira te pakete i osvježava sadržaj radi promjena. Ako otvorite popis paketa pritiskom na Alt + x i uđite paket-popis-paketi, instalirane pakete možete vidjeti u arhivi Melpa.
-
2) Promjena teme Emacsa
U početku, kada učitate Emacs, dobit ćete zaslon koji vas pozdravlja u Emacs i pruža vam razne mogućnosti, poput Emacs vodiča.
Međutim, ova stranica ne izgleda tako sjajno. Lisp vam omogućuje promjenu teme Emacs-a i početne stranice prema vašim željama. Korisnici mogu učitati razne vrste tema, promijeniti veličinu fonta, pa čak i dodati oznake redaka.
Na primjer, recimo da želite zamijeniti početnu stranicu u međuspremnik ogrebotina, učitati temu Materijal i dodati linijske znakove. To se može učiniti dodavanjem sljedećih redaka u datoteku init:
(setq inhibit-startup-poruka t)(load-theme 'materijal t)
(globalni-linum-način t)
Kao što je gore definirano, sintaksa setq čini poruku inhibit-startup istinitom, što uklanja početnu početnu stranicu. Tema učitavanja učitava temu materijala. Sintaksa modusa globalnog linum-a jednostavno je funkcija koja je postavljena na istinito i izvršava se za stvaranje brojeva redaka. Evo kako bi Emacs trebao izgledati nakon unosa gornjih naredbi:
3) Povežite prečace s ključnim vezima
Lisp se također može koristiti za povezivanje naredbi ili prečaca s tipkama. To omogućava korisnicima da prilagode Emacs prema svojim željama, kao i pokretanje prilagođenih funkcija koje je korisnik izradio samo jednim klikom.
Pretpostavimo da ste definirali funkciju koja jednostavno stvara znak obrnute kose crte i želite to dodijeliti tipkama Ctrl + x nakon čega slijedi Ctrl + o. To se može učiniti dodavanjem sljedećih redaka u datoteku za inicijalizaciju:
(defun insert_backslash ()(interaktivno)
(umetnite "\"))
(global-set-key (kbd ""C-x C-o"")
'insert_backslash)
Ovdje je funkcija insert_backslash definirana, učinjena interaktivnom (to omogućuje funkciju da se interaktivno naziva u značenju s vezanjem ključa), a izlaz je kosa crta. Zatim funkciju možete povezati gore navedenim tipkama pomoću ključne riječi global-set-key.
Zašto koristiti Lisp?
Lisp je sastavni dio Emacsa, jer Emacu omogućuje veću snagu i funkcionalnost. Lisp pruža priliku korisnicima da prilagode Emacs i pretvore ga u nešto što odgovara njihovim interesima i potrebama. Lisp je ono što Emacs čini doista moćnim i jedinstvenim u usporedbi s drugim uređivačima teksta.
"