[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Ово је стара верзија документа!


This page is still work in progress
Страница је у изради

Emacs

Шта је Emacs?

vi и његови клонови су веома функционални и моћни уређивачи текста. Међутим, често су сматрани не нарочито проширивим. vim је успешна и моћна варијанта vi уређивача која прекида овај тренд, постајући веома проширива и лагана. Али, многи корисници преферирају знатно „тежи“ и проширивији уређивач. Ово је разлог зашто многи корисници преферирају Emacs.

Емакс је максимално проширив. Изван језгра које је написано Ц програмским језиком, остатак Емакса је писан у Лисп варијанти, скоро све што видите, тако да можете да га конфигуришете или проширите по вољи (на интернету се могу наћи веома добра Емакс Лисп упутства). Људи пишу све врсте проширења у Емакс Лиспу, од синтакси са нагласком на нејасне језике, до уграђеног терминала. Заправо, постоји у Емаксу режим емулације за vi (зове се viper), тако да и даље можете имати модално уређивање које долази уз vi, док користите моћно Emacs језгро.

Као што је случај и са vi уређивачем, постоје многе варијанте Емакса (назване emacsen). Међутим, најкоришћенија и једина у Слекверу је GNU Emacs. Када се помене Емакс, готово увек се мисли на ГНУ Емакс.

За разлику од vi уређивача, Емакс подразумевано функционише више као традиционалан уређивач. Ово значи да се већина пречица на тастатури може применити без поновног мењања режима. Можете оворити фајл и почети да пишете без учења о томе шта који режим ради, или присећања у коме се режиму тренутно налазите.

Стартовање

Емакс можете покренути једноставним уношењем emacs команде у ваш терминал. Када га први пут покренете у конзоли без аргумената, видећете нешто налик овоме:

Уколико сте у Иксу (X windows), Emaкс се, уместо у конзолном, може покренути у графичком сучељу. Ако је такав случај, а ви не желите GUI, можете га покренути са -nw заставицом.

Док сте ту, можете се кретати помоћу татера стрелица на тастатури. Подвучени елементи су везе, а можете их активирати прелажењем преко њих и притиском тастера Enter. Документација је веома добра и може вам помоћи ако дођете до проблема. Такође обратите пажњу како описују секвенце као што су Ctrl+H, што значи да притиснете тастер H док држите притиснут тастер CTRL. Исти случај је и са M-`, што значи да док држите притиснут Meta тастер (обично је то Alt) притисните тастер на коме се налази инверзни (обрнути) полунаводник, `. Када се каже (пример) Ctrl+X Ctrl+C, мисли се да притиснете тастер X док држите притиснут тастер CTRL, затим притиснете тастер C док и даље држите приситнут тастер CTRL. Ово је заправо једна од најважнијих команди у Емаксу; за затварање.

Алтернативно, ако позовете emacs са именом фајла као аргументом, отворићете тај фајл у Емаксу, као и са vi уређивачем. Када урадито тако, представиће се вам се садржај датог фајла. Сада можете да се крећете кроз документ традиционално, тастерима са стрелицама, и да куцате информације по жељи без проблема.

Претпоставимо да сте начинили пар измена и да желите да сачувате фајл. Следеће комбинације тастера ће обавити задатак: Ctrl+XCtrl+S. Уколико сте креирали нови фајл, бићете упитани за ово у делу који се зове минибафер, празна линија испод сиве линије у дну екрана. Унесите име по избору и притисните тастер Enter. Уколико не желите да сачувате фајл, притисните Ctrl+G, што ће прекинути операцију која пита за унос. Имајте на уму да је завршавање команди помоћу тастера TAB доступно за све оне које користи минибафер.

У случају да желите да отворите нови фајл у оквиру исте сесије, примените Ctrl+XCtrl+F. Бићете упитани за име фајла у минибаферу. Емакс не води рачуна о томе да ли фајл постоји или не. Уколико не постоји, биће креиран нови бафер за дати фајл (фајл треба и сачувати са Ctrl+XCtrl+S), или ће фајл бити отворен као што се и очекује. Међутим, стари фајл ће и даље бити отворен. Можете се вратити на њега комбинацијама тастера Ctrl+XCtrl+B, приступајући тако имену фајла (или боље речено, иману бафера), након чега још треба притиснути тастер Enter.

Како се кретати

Као и vi, Емакс је такође старији од тастера стрелица на вашој тастатури. Опет, као и код vi уређивача текста, коришћење поменутих тастера је подржано. Док су тастери за кретање кроз vi ергономичнији, код Емакса су више мнемонички. Ипак, и даље је могуће брзо и ефикасно оперирати коришћењем Емаксових основних пречица. Следи табела основних пречица за кретање:

Померање курсора у Емаксу

КомандаРезултат
Ctrl+FПомерање курсора за једно место надесно (напред)
Ctrl+BПомерање курсора за једно место налево (назад)
Ctrl+NПомерање курсора једну линију испод (следеће)
Ctrl+PПомерање курсора једну линију изнад (претходно)

Наравно, као и у vi уређивачу, могуће је поновити ове команде са бројчаним аргументом. Уколико укуцате M-1 M-0 Ctrl+P, или Ctrl+U 10 Ctrl+P, курсор ће се померити 10 линија изнад. Уколико укуцате M-5 Ctrl+F, или Ctrl+U 5 Ctrl+F, курсор ће се померити 5 места налево.

Како до помоћи

Emacs садржи опширну документацију, толику да га називају самодокументовани уређивач текста. То је зато што нуди механизам који кориснику, док га користи, представља документацију. Ево неких корисних функција које приказују документацију (све оне почињу са Ctrl+H):

Приступ Емаксовој документацији

КомандаРезултат
Ctrl+H f ИМЕ_ФУНКЦИЈЕ EnterПриказује документацију за функцију ИМЕ_ФУНКЦИЈЕ
Ctrl+H k Ctrl+X Ctrl+CПриказује документацију за функцију покренуту тастерима Ctrl+X Ctrl+C
Ctrl+H tПриказује Емакс упутство
Ctrl+H ?Приказује све релевантне функције

Ctrl+H t је нарочито корисна ако желите или вам је потребна вежба у Емаксу.

Позивање функција

Као што сте могли да приметите, Емакс нуди велики број функција за интерактивну употребу. Неке од њих, као што су функције за отварање и меморисање фајлова, су везане за тастере. Друге (као што су оне за померање курсора на почетак или крај линије) нису. Да бисте их позвали, прво морате да их призовете (активирате). Рецимо желите да позовете функцију end-of-line. То ћете учинити на следећи начин:

M-x end-of-line Enter

И курсор ће се померити на крају дате линије, као што име функције говори.

Emacs Cheat Sheet

 sr:slackbook:emacs ()