Emacs е един такъв пример за текстов редактор, който поради своята гъвкавост и персонализируем характер е спечелил съвсем името за себе си сред общността на разработчиците. Като един от най-старите текстови редактори там, Emacs е известен със своята стабилност и последователност.
Това, което прави Emacs специален е, че той не е просто текстов редактор, а по-скоро пълноценна машина. Emacs може да бъде настроен като черупка, имейл клиент, органайзер и много други. Сложността на Emacs произтича от интерпретатора на Lisp в основата му, което от своя страна позволява на потребителите да го персонализират с още повече функционалности, използвайки езика Lisp.
Тази статия обхваща как да използвате Lisp чрез различни методи за конфигуриране и персонализиране на Emacs.
Основи на Лисп
Преди да видите как Lisp може да се използва за конфигуриране на Emacs, първо е важно да разгледаме някои от основите на езика Lisp, за да разберем по-добре тази функция.
В Lisp програмите са съставени от символни изрази, съкратени до s-exps. Тези изрази могат да се състоят или от променливи, или да включват и други функции.
Функция се отбелязва чрез увиване на текста в скоби. Например за извикване на функцията за добавяне се използва следният синтаксис:
(+ 2 2)Горното твърдение казва „добавете 2 към 2.”Вложените s-exps ще изглеждат по следния начин:
(+ 2 (+ 1 1))Можете също да съхранявате стойности вътре в променлива, като използвате командата setq:
(setq моето име "Джон")Функциите могат да бъдат дефинирани с помощта на defun ключова дума. Например функция, която изчислява квадрата на число, се записва по следния начин:
(defun квадрат (x)(* x x))
(квадрат 2)
Можете да оцените функциите, дефинирани с помощта на клавишите Ctrl + x следван от Ctrl + e. Това ще даде изход в мини-буфера. Например квадратната функция ще има следния изход:
Забележка: трябва да оцените както разчленения сегмент, така и квадратния сегмент.
Това обхваща основите. Следващите раздели ще покажат как да конфигурирате Emacs с помощта на Lisp.
Файл за инициализация
Когато Emacs стартира, първият обработен файл е файлът за инициализация или инициалният файл, който съдържа команди, написани на Lisp, които позволяват на потребителите да конфигурират Emacs. За да отворите файла за инициализация, натиснете Ctrl + x, следван от Ctrl + f, и след това въведете ~ /.emacs. Вътре в този израз можете да вмъкнете допълнителен код за персонализиране на Emacs.
1) Добавяне на поддръжка за пакети
Lisp може да се използва за добавяне на поддръжка в Emacs за пакети от различни източници. Melpa е един от източниците, от който потребителите могат да инсталират тези разширения. За да добавите Melpa към Emacs, добавете следните редове към инициалния файл:
(изисква 'пакет')(добавяне към списъка "архиви на пакети
'("мелпа" . "http: // melpa.org / пакети / ") т)
(инициализиране на пакета)
(пакет-опресняване-съдържание)
Този код добавя архива Melpa към списъка с хранилища на пакети, дава разрешение на Emacs да използва тези пакети, инициализира тези пакети и опреснява съдържанието, за да се извършат промените. Ако отворите списъка си с пакети, като натиснете Alt + x и въведете пакет-списък-пакети, можете да видите инсталираните пакети в архива на Melpa.
-
2) Промяна на темата на Emacs
Първоначално, когато заредите Emacs, ще получите екран, който ви приветства в Emacs и ви дава различни опции, като урок за Emacs.
Тази страница обаче не изглежда толкова добре. Lisp ви позволява да промените темата на Emacs и стартовата страница според вашите предпочитания. Потребителите могат да зареждат различни типове теми, да променят размера на шрифта и дори да добавят символи за реда.
Например, да речем, че искате да замените стартовата страница в скреч буфера, да заредите темата Материал и да добавите водещи символи. Това може да се направи, като се добавят следните редове към инициалния файл:
(setq inhibit-startup-message t)(load-theme 'material t)
(глобален режим на линум t)
Както е дефинирано по-горе, синтаксисът setq прави съобщението inhibit-startup true, което премахва началната начална страница. Темата за зареждане зарежда темата на материала. Синтаксисът в глобален режим на линум е просто функция, която е настроена да бъде истина и се изпълнява, за да генерира номера на редове. Ето как трябва да изглежда Emacs след въвеждане на горните команди:
3) Обвързване на преки пътища към ключови обвързвания
Lisp може да се използва и за обвързване на команди или преки пътища към клавишите. Това позволява на потребителите да персонализират Emacs според техните предпочитания, както и да изпълняват персонализирани функции, направени от потребителя само с едно щракване.
Да предположим, че сте дефинирали функция, която просто генерира обратна наклонена черта и искате да присвоите това на клавишите Ctrl + x следван от Ctrl + o. Това може да стане чрез добавяне на следните редове към файла за инициализация:
(defun insert_backslash ()(интерактивен)
(вмъкнете "\"))
(глобален ключ-ключ (kbd ""C-x C-o"")
'insert_backslash)
Тук функцията insert_backslash е дефинирана, направена интерактивна (това позволява функцията да се нарича интерактивно, което означава с връзката на клавишите), а изходът е обратна наклонена черта. След това можете да свържете функцията с ключовете, дадени по-горе, като използвате ключовата дума global-set-key.
Защо да използвам Lisp?
Lisp е неразделна част от Emacs, тъй като позволява на Emacs да има повече мощност и функционалност. Lisp предоставя възможност на потребителите да персонализират Emacs и да го превърнат в нещо, което отговаря на техните интереси и нужди. Lisp е това, което прави Emacs наистина мощен и уникален в сравнение с други текстови редактори.
"