mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-16 09:50:25 +00:00
ba05d005e5
Run "TZ=UTC0 admin/update-copyright".
1192 lines
84 KiB
Plaintext
1192 lines
84 KiB
Plaintext
Въведение в Емакс. Условията за копиране са в края на текста.
|
||
|
||
Командите на Емакс най-често включват клавишите CONTROL (понякога
|
||
отбелязван с CTRL или CTL) и META (понякога отбелязван с EDIT или
|
||
ALT). Вместо да се изписват с пълно име всеки път, ние ще използваме
|
||
следните съкращения:
|
||
|
||
C-<знак> означава задържане на клавиша CONTROL, докато се
|
||
натиска знака <знак>. Така C-f ще означава: докато
|
||
се задържа натиснат клавиша CONTROL, се натиска f.
|
||
M-<знак> означава задържане натиснат на клавиша META (или EDIT,
|
||
или ALT), докато се натиска <знак>. Ако няма клавиш
|
||
META, EDIT или ALT, вместо него натиснете и отпуснете
|
||
клавиша ESC и след това въведете <знак>. Ние
|
||
записваме <ESC>, за да отбележим клавиша ESC.
|
||
|
||
Важна бележка: в края на Емакс сесията въведете C-x C-c. (Два знака.)
|
||
За да прекъснете частично въведена команда, използвайте C-g.
|
||
Знаците „>>“ отляво ви дават указание да изпълните команда. Например:
|
||
<<Blank lines inserted here by startup of help-with-tutorial>>
|
||
>> Сега въведете C-v (Показване на следващия екран), за да се придвижите
|
||
към следващия екран. (Направете го сега, задръжте CONTROL,
|
||
докато натискате „v“). Отсега нататък вие ще правите това винаги,
|
||
когато прочетете екрана.
|
||
|
||
Забележете, че има припокриване на два реда, когато се придвижвате от
|
||
екран в екран; това осигурява някаква приемственост, така че да можете
|
||
по-лесно да продължите с четенето на текста.
|
||
|
||
Първото нещо, което трябва да знаете, е как да се придвижвате от едно
|
||
място на текста към друго. Вие вече знаете как да се придвижвате
|
||
екран напред, с C-v. За да се придвижите екран назад, въведете M-v
|
||
(задръжте клавиша META и натиснете „v“, или въведете <ESC> и после „v“,
|
||
ако нямате клавиш META, EDIT или ALT).
|
||
|
||
>> Опитайте се да въведете M-v и след това C-v няколко пъти.
|
||
|
||
|
||
* ОБОБЩЕНИЕ
|
||
-----------
|
||
|
||
Следващите команди са полезни при пълноекранно разглеждане:
|
||
|
||
C-v Придвижване напред с един екран
|
||
M-v Придвижване назад с един екран
|
||
C-l Изчистване на екрана и пречертаване на целия текст,
|
||
премествайки текста около курсора в средата на екрана.
|
||
(Това е CONTROL-L, не CONTROL-1.)
|
||
|
||
>> Намерете курсора и си запомнете какъв е текстът около него.
|
||
След това въведете C-l.
|
||
Намерете пак курсора и вижте, че същият текст е пак около курсора,
|
||
но сега вече в средата на екрана.
|
||
Ако пак натиснете C-l, тази част от текста ще се придвижи в горния
|
||
край на екрана. Натиснете отново C-l и този текст ще отиде в долния
|
||
край на екрана.
|
||
|
||
Може също да използвате клавишите PageUp и PageDown за придвижване по
|
||
екрани, ако вашият терминал ги притежава, но вие можете да редактирате
|
||
по-ефективно, ако използвате C-v и M-v.
|
||
|
||
|
||
* ОСНОВИ НА УПРАВЛЕНИЕТО НА КУРСОРА
|
||
-----------------------------------
|
||
|
||
Придвижването от екран на екран е полезно, но как да се придвижите до
|
||
определено място вътре в текста на екрана?
|
||
|
||
Има няколко начина да го направите. Може да използвате клавишите
|
||
стрелки, но е по-ефективно да държите ръцете си в стандартно положение
|
||
и да използвате командите C-p, C-b, C-f и C-n. Тези знаци са
|
||
еквивалентни на четирите клавиши стрелки по следния начин:
|
||
|
||
Предишен ред (Previous), C-p
|
||
:
|
||
:
|
||
Назад, C-b .... Текуща позиция на курсора .... Напред, C-f
|
||
(Backward) : (Forward)
|
||
:
|
||
Следващ ред (Next), C-n
|
||
|
||
>> Придвижете курсора до реда в средата на тази диаграма, използвайки
|
||
C-n и C-p. След това натиснете C-l и ще видите цялата диаграма,
|
||
центрирана на екрана.
|
||
|
||
Ще намерите, че запомнянето на тези букви по думите на английски на
|
||
действията, които извършват, е лесно: „P“ за Previous (предишен), „N“
|
||
за Next (следващ), „B“ за Backward (назад) и „F“ за Forward (напред).
|
||
Вие ще използвате тези основни команди за придвижване на курсора през
|
||
цялото време.
|
||
|
||
>> Въведете няколко пъти C-n, за да доведете курсора до този ред.
|
||
|
||
>> Придвижете се вътре в реда с няколко C-f и след това с няколко C-p.
|
||
Вижте какво прави C-p, когато курсорът е в средата на реда.
|
||
|
||
Всеки ред от текст завършва със знак за нов ред, който служи за
|
||
отделянето на реда от следващия ред. (Последният ред във вашия файл
|
||
трябва да има знак за нов ред в края, но Емакс не изисква такъв.)
|
||
|
||
>> Опитайте C-b в началото на ред. Това трябва да ви придвижи в края
|
||
на предишния ред. Това е така, защото курсорът се придвижва към
|
||
знака за нов ред на предишния ред.
|
||
|
||
C-f може да придвижва през знак за нов ред, точно както C-b.
|
||
|
||
>> Направете няколко придвижвания с C-b, така че да добиете усещане
|
||
къде се намира курсорът. След това няколко C-f, докато се върнете
|
||
в края на реда. След това още няколко C-f, за да се придвижите до
|
||
следващия ред.
|
||
|
||
Когато се придвижвате след горния или долния край на екрана, текстът
|
||
отвъд края се измества към екрана. Това се нарича „скролиране“. То
|
||
позволява на Емакс да придвижва курсора към зададеното място в текста,
|
||
без да го изкарва извън екрана.
|
||
|
||
>> Опитайте се да придвижите курсора след долния край на екрана с C-n
|
||
и вижте какво се случва.
|
||
|
||
Ако придвижването по знаци е твърде бавно, може да пробвате
|
||
придвижване по думи. M-f (META-f) придвижва курсора дума напред, а
|
||
M-b придвижва дума назад.
|
||
|
||
>> Въведете няколко M-f и M-b.
|
||
|
||
Когато сте в средата на дума, M-f придвижва в края на думата. Когато
|
||
сте в празно място между думи, M-f придвижва в края на следващата
|
||
дума. M-b работи по подобен начин в противоположната посока.
|
||
|
||
>> Въведете M-f и M-b няколко пъти, размесени с C-f и C-b, така че да
|
||
можете да наблюдавате действието на M-f и M-b в различни места
|
||
вътре и между думите.
|
||
|
||
Забележете приликата между C-f и C-b, от една страна, и M-f и M-b, от
|
||
друга. Много често Meta-знаците са използвани за действия върху
|
||
единици, дефинирани от езика (думи, изречения, абзаци), докато
|
||
Control-знаците действат върху основни единици, които са независими от
|
||
това, какво редактирате (знаци, редове и други).
|
||
|
||
Тази прилика се прилага върху редове и изречения: C-a и C-e придвижват
|
||
до началото или края на ред, а M-a и M-e придвижват до началото и края
|
||
на изречение.
|
||
|
||
>> Опитайте няколко C-a, а след това няколко C-e.
|
||
Опитайте няколко M-a, а след това няколко M-e.
|
||
|
||
Вижте как повтарянето на C-a не прави нищо, докато повтарянето на M-a
|
||
продължава придвижването с още едно изречение. Въпреки че тези
|
||
клавишни комбинации не са точно аналогични, всяка една от тях изглежда
|
||
естествена.
|
||
|
||
Положението на курсора в текста се нарича „точка“. Перефразирано,
|
||
курсорът показва на екрана къде е разположена точката в текста.
|
||
|
||
Ето обобщение на простите действия, движещи курсора, включително
|
||
придвижващите по дума и изречение:
|
||
|
||
C-f Придвижва напред с един знак
|
||
C-b Придвижва назад с един знак
|
||
|
||
M-f Придвижва напред с една дума
|
||
M-b придвижва назад с една дума
|
||
|
||
C-n Придвижва до следващия ред
|
||
C-p Придвижва до предишния ред
|
||
|
||
C-a Придвижва до началото на ред
|
||
C-e Придвижва до края на ред
|
||
|
||
M-a Придвижва до началото на изречение
|
||
M-e Придвижва до края на изречение
|
||
|
||
>> Сега опитайте всички тези команди няколко пъти за практика. Тези
|
||
са най-често използваните команди.
|
||
|
||
Две други важни команди за движение на курсора са M-< (Meta по-малко),
|
||
която придвижва до началото на целия текст, и M-> (Meta по-голямо),
|
||
която премества до края на целия текст.
|
||
|
||
При повечето терминали знакът „<“ е отбелязан над запетаята, така че
|
||
трябва да използвате клавиша Shift, за да го напишете. На тези
|
||
терминали трябва да използвате Shift, за да въведете и M-<; без клавиша
|
||
Shift бихте въвели M-запетая.
|
||
|
||
>> Опитайте M-< сега, за да се придвижите до началото на въведението.
|
||
След това използвайте C-v колкото е нужно пъти, за да се придвижите
|
||
до тук.
|
||
|
||
>> Опитайте M-> сега, за да се придвижите до края на въведението.
|
||
След това използвайте M-v колкото е нужно пъти, за да се придвижите
|
||
до тук.
|
||
|
||
Вие можете също да се придвижвате с клавишите-стрелки, ако вашият
|
||
терминал има такива. Ние препоръчваме да научите C-b, C-f, C-n и C-p
|
||
по три причини. Първо, те работят на всички видове терминали. Второ,
|
||
веднъж след като добиете практика в използването на Емакс, ще
|
||
откриете, че въвеждането на тези Control-знаци е по-бързо от
|
||
въвеждането на клавишите стрелки, защото не трябва да премествате
|
||
ръката си далеч от областта на клавишите с букви. Трето, веднъж след
|
||
като си оформите навик да използвате тези команди с Control знаци, вие
|
||
можете също така лесно да научите по-напредналите команди за движение
|
||
на курсора.
|
||
|
||
Повечето Емакс команди приемат числов аргумент; за повечето от тях той
|
||
служи като брояч на повторения. Начинът, по който давате числов
|
||
брояч, е с въвеждане на C-u, последвано от въвеждане на цифрите, и
|
||
всичко това преди въвеждане на самата команда. Ако имате клавиш META
|
||
(или EDIT или ALT), има друг, алтернативен начин да въведете числов
|
||
аргумент: въведете цифрите, докато задържате клавиша META. Ние
|
||
препоръчваме да научите начина с C-u, защото той работи на който и да
|
||
е терминал. Числовият аргумент се нарича също „префиксен аргумент“,
|
||
защото го въвеждате преди командата, за която е предназначен.
|
||
|
||
Например C-u 8 C-f придвижва осем знака напред.
|
||
|
||
>> Опитайте използването на C-n или C-p с числов аргумент, за да
|
||
придвижите курсора до ред, близък до този, само с една команда.
|
||
|
||
Повечето команди използват числовия аргумент като брояч на
|
||
повторенията, но някои го използват за други цели. Няколко команди
|
||
(но никоя от тези, които сте научили досега) го използват като флаг –
|
||
присъствието на числов аргумент, независимо от стойноста му, кара
|
||
командата да върши нещо различно.
|
||
|
||
C-v и M-v са друг вид изключение. Когато им е даден аргумент, те
|
||
скролират екрана нагоре или надолу със зададения брой редове, вместо с
|
||
екрани. Например, C-u 8 C-v скролира екрана с 8 реда.
|
||
|
||
>> Сега опитайте C-u 8 C-v.
|
||
|
||
Това би трябвало да скролира екрана с 8 реда. Ако искате да
|
||
скролирате отново надолу, може да дадете аргумент на M-v.
|
||
|
||
Ако използвате графичен интерфейс, като X11 или MS-Windows, би
|
||
трябвало да има тънка правоъгълна област, наречена плъзгач (scroll
|
||
bar), в лявата страна на прозореца на Емакс. Вие можете да скролирате
|
||
текста, щракайки с мишката в плъзгача.
|
||
|
||
Ако вашата мишка има търкалце, можете и него да използвате за
|
||
скролиране.
|
||
|
||
|
||
* КОГАТО ЕМАКС Е БЛОКИРАЛ
|
||
-------------------------
|
||
|
||
Ако Емакс спре да отговаря на вашите команди, вие можете да го спрете
|
||
безопасно, като въведете C-g. Може да използвате C-g, за да спрете
|
||
команда, която се изпълнява твърде дълго.
|
||
|
||
Също можете да използвате C-g, за да отмените числов аргумент или
|
||
началото на команда, която не искате да завършите.
|
||
|
||
>> Въведете C-u 100, за да направите числов аргумент 100, и въведете
|
||
C-g. Сега въведете C-f. Трябва да се придвижите с точно един
|
||
знак, защото вие прекратихте аргументът с C-g.
|
||
|
||
Ако сте въвели <ESC> по погрешка, можете да се измъкнете с C-g.
|
||
|
||
|
||
* ЗАБРАНЕНИ КОМАНДИ
|
||
-------------------
|
||
|
||
Някои команди на Емакс са „забранени“, така че начинаещите потребители
|
||
да не могат да ги употребят по погрешка.
|
||
|
||
Ако въведете някоя от забранените команди, Емакс извежда съобщение,
|
||
казвайки каква е била командата и питайки ви дали искате да продължите
|
||
напред и да изпълните командата.
|
||
|
||
Ако наистина искате да изпробвате командата, въведете клавиша интервал
|
||
в отговор на въпроса. Обикновено ако не искате да изпълните
|
||
забранената команда, отговаряте на въпроса с „n“.
|
||
|
||
>> Въведете C-x C-l (която е забранена команда), и след това въведете
|
||
„n“ в отговор на въпроса.
|
||
|
||
|
||
* ПРОЗОРЦИ
|
||
----------
|
||
|
||
Емакс може да управлява няколко „прозореца“, всеки извеждайки свой
|
||
собствен текст. Ние ще обясним по-късно как да използвате няколко
|
||
прозореца. Точно сега ние искаме да обясним как да се отървете от
|
||
допълнителни прозорци и да се върнете към основното редактиране с един
|
||
прозорец. Просто е:
|
||
|
||
C-x 1 Един прозорец (т.е. премахни всички други прозорци).
|
||
|
||
Това е CONTROL-x, последван от цифрата 1. C-x 1 разширява прозореца,
|
||
съдържащ курсора, за да може да запълни целия екран. Тя премахва
|
||
всички други прозорци.
|
||
|
||
>> Придвижете курсора до този ред и въведете C-u 0 C-l.
|
||
>> Въведете C-h k C-f.
|
||
Вижте как този прозорец се свива, докато друг се появява, за да
|
||
изведе документацията на командата C-f.
|
||
|
||
>> Въведете C-x 1 и вижте как прозорецът с документацията изчезва.
|
||
|
||
Тази команда не е като другите команди, които сте научили, в това
|
||
отношение, че се състои от два знака. Започва със знака CONTROL-x.
|
||
Има цяла редица от команди, които започват с CONTROL-x; много от тях
|
||
имат нещо общо с прозорци, файлове, буфери и свързаните с тях неща.
|
||
Тези команди са от два, три или четири знака.
|
||
|
||
|
||
* ВМЪКВАНЕ И ИЗТРИВАНЕ
|
||
----------------------
|
||
|
||
Ако искате да вмъкнете текст, просто го въведете. Знаците, които
|
||
могат да се виждат, като А, 7, * и т.н., се вмъкват веднага. За да
|
||
вмъкнете знак за нов ред, натиснете <Return> (това е клавишът, който
|
||
понякога е отбелязван като „Enter“).
|
||
|
||
За да изтриете знака непосредствено преди текущото положение на
|
||
курсора, въведете <DEL>. Обикновено това е клавишът, отбелязван като
|
||
„Backspace“ – нормалният за това действие и извън Емакс.
|
||
|
||
Може да има още един клавиш с етикет <Delete> някъде другаде, но той
|
||
не е <DEL>, за който става въпрос тук.
|
||
|
||
>> Направете това сега – напишете няколко знака, после ги изтрийте с
|
||
въвеждане на <DEL> няколко пъти. Не се безпокойте, че този файл ще
|
||
бъде променен; вие няма да промените първоначалното въведение.
|
||
Това е ваше лично копие.
|
||
|
||
Когато ред от текста стане твърде дълъг, за да се събере в ред от
|
||
екрана, редът от текста се „продължава“ на следващия ред. Ако
|
||
използвате графичен дисплей, в малкото пространство отстрани на текста
|
||
(левият и десният „ръб“) ще се появят малки извити стрелки за
|
||
отбелязване къде редът продължава. Ако използвате текстов терминал,
|
||
продължените редове се отбелязват с обратна наклонена черта („\“) в
|
||
най-дясната колона на прозореца.
|
||
|
||
>> Въведете текст, докато стигнете дясната граница, и продължете с
|
||
вмъкването. Ще видите продължението на реда да се показва.
|
||
|
||
>> Използвайте няколко <DEL>, за да изтриете текста, докато редът се
|
||
вмести в един екранен ред. Продължението на реда изчезва.
|
||
|
||
Може да изтриете знака за нов ред точно както всеки друг знак.
|
||
Изтриването на знака за нов ред между два реда ги слива в един ред.
|
||
Ако полученият комбиниран ред е твърде дълъг, за да се вмести в
|
||
ширината на екрана, той ще бъде показан като продължен ред.
|
||
|
||
>> Придвижете курсора в началото на ред и въведете <DEL>. Това ще
|
||
слее този ред с предишния.
|
||
|
||
>> Въведете <Return>, за да вмъкнете наново знака за нов ред, който
|
||
изтрихте.
|
||
|
||
Запомнете, че на повечето команди на Емакс може да бъде зададен брояч
|
||
на повторенията; това включва вмъкването на текстови знаци.
|
||
Повтарянето на текстов знак го вмъква няколко пъти.
|
||
|
||
>> Опитайте това сега – въведете C-u 8 *, за да вмъкнете ********.
|
||
|
||
Сега вие сте научили най-основните начини за въвеждане на нещо в Емакс
|
||
и поправяне на грешки. Можете също така да изтривате думи или редове.
|
||
Ето обобщение на изтриващите действия:
|
||
|
||
<DEL> Изтриване на знака точно преди курсора
|
||
C-d Изтриване на знака точно след курсора
|
||
|
||
M-<DEL> Изтриване на думата непосредствено преди курсора
|
||
M-d Изтриване на думата след курсора
|
||
|
||
C-k Изтриване от мястото на курсора до края на реда
|
||
M-k Изтриване до края на текущото изречение
|
||
|
||
Забележете, че <DEL> и C-d, сравнени с M-<DEL> и M-d, разширяват
|
||
подобието, започнато от C-f и M-f (добре, <DEL> не е наистина
|
||
контролиращ знак, но нека не се безпокоим за това). C-k и M-k са
|
||
подобни на C-e и M-e в смисъл, че едните са за редове, а другите – за
|
||
изречения.
|
||
|
||
Можете също да премахнете всяка част от текста по един универсален
|
||
начин. Придвижете се до единия край и въведете C-<SPC> (<SPC> е
|
||
интервалът).. Придвижете се до другия край на текста, който искате да
|
||
изтриете. Докато го правите, Емакс осветява текстът между курсора и
|
||
мястото, където се въвели C-<SPC>. Накрая въведете C-w. Това ще
|
||
изреже целия текст между тези два края.
|
||
|
||
>> Придвижете курсора до знака „М“ в началото на предишния абзац.
|
||
>> Въведете C-<SPC>. Емакс трябва да изведе съобщение „Mark set“ в
|
||
долния край на екрана.
|
||
>> Придвижете курсора до буквата „р“ в „край“ на втория ред от абзаца.
|
||
>> Въведете C-w. Това ще изреже текста, започващ от „М“ и завършващ
|
||
точно преди „р“.
|
||
|
||
Разликата между „изрязване“ (kill, cut) и „изтриване“ (delete) е, че
|
||
„изрязаният“ текст може да бъде вмъкнат наново, докато „изтритите“
|
||
неща не могат да се вмъкнат наново (обаче можете да отмените
|
||
изтриването – вж. по-долу). Поставянето наново на изрязан текст се
|
||
нарича „вмъкване“ (yank, paste). Общо казано, командите, които
|
||
отстраняват много текст, го изрязват (така че той да може да бъде
|
||
вмъкнат), докато командите, които отстраняват само един знак или
|
||
изтриват само празни редове и знаци, извършват изтриване (така че не
|
||
можете да вмъкнете наново този текст). <DEL> и C-d изтриват в
|
||
обикновения случай, когато няма префиксен аргумент. При наличие на
|
||
аргумент те отрязват.
|
||
|
||
>> Придвижете курсора до началото на ред, който не е празен. Тогава
|
||
въведете C-k, за да изрежете текста на този ред.
|
||
>> Въведете C-k втори път. Ще видите, че това изрязва знака за нов
|
||
ред, който следва реда.
|
||
|
||
Забележете, че единично C-k изрязва съдържанието на реда, а следващото
|
||
C-k изрязва целия ред и прави другите редове да се придвижат нагоре.
|
||
C-k обработва числовите аргументи по специален начин: премахват се
|
||
толкова на брой редове И тяхното съдържание. Това не е просто
|
||
повторение. C-u 2 C-k изрязва два реда и техните знаци за нов ред;
|
||
въвеждането два пъти на C-k не прави това.
|
||
|
||
Връщането обратно на текст се нарича „вмъкване“. (Мислете за него
|
||
като за изваждане обратно, или дръпване обратно, на текст, който е бил
|
||
изрязан.) Можете да вмъквате изрязания текст или на същото място,
|
||
откъдето е бил премахнат, или на друго място в буфера, или даже в
|
||
различен файл. Можете да вмъквате един и същ текст няколко пъти; това
|
||
прави няколко копия от него. Някои други редактори наричат
|
||
изрязването (kill) и вмъкването (yank) съответно изрязване (cut) и
|
||
поставяне (paste) (вж. Речника на Ръководството на Емакс).
|
||
|
||
Командата за вмъкване е C-y. Тя вмъква наново последния изрязан текст
|
||
в текущото място на курсора.
|
||
|
||
>> Опитайте го: въведете C-y, за да изведете текста обратно.
|
||
|
||
Ако направите няколко C-k в ред, всичко от изрязания текст се запазва
|
||
заедно, така че едно C-y ще извади всички редове наведнъж.
|
||
|
||
>> Направете това сега, въведете C-k няколко пъти.
|
||
|
||
Сега, за да изкарате изрязания текст:
|
||
|
||
>> Въведете C-y. След това придвижете курсора надолу няколко реда и
|
||
въведете C-y отново. Сега виждате как да копирате някакъв текст.
|
||
|
||
Какво да правите, ако имате някакъв текст, който искате да вмъкнете
|
||
обратно, и след това изрежете нещо друго? C-y ще извади последното
|
||
изрязване. Но предишният текст не е загубен. Можете да го върнете
|
||
обратно, използвайки командата M-y. След като изпълните C-y, за да
|
||
вземете последното изрязване, въвеждането на M-y заменя този изваден
|
||
текст с предишното изрязване. Въвеждането на M-y отново и отново
|
||
връща по-ранни и по-ранни изрязвания. Когато стигнете текста, който
|
||
търсите, не е нужно да правите нищо повече, за да го задържите.
|
||
Просто продължете с редактирането, оставяйки извадения текст, където
|
||
си е.
|
||
|
||
Ако въведете M-y достатъчен брой пъти, ще се върнете в началното
|
||
положение (последното изрязване).
|
||
|
||
>> Изрежете ред, придвижете се някъде, изрежете друг ред.
|
||
Изпълнете C-y, за да върнете обратно втория изрязан ред.
|
||
Изпълнете M-y и този върнат текст ще бъде заменен с първия
|
||
изрязан ред.
|
||
Изпълнете няколко M-y и вижте какво се получава. Изпълнявайте това,
|
||
докато вторият изрязан ред се върне, и след това още няколко пъти.
|
||
Ако искате, може да пробвате да дадете на M-y положителни и
|
||
отрицателни числови аргументи.
|
||
|
||
|
||
* ОТМЯНА
|
||
--------
|
||
|
||
Ако направите промяна в текста и след това решите, че това е било
|
||
грешка, вие можете да отмените промяната с командата за отменяне, C-/.
|
||
|
||
Обикновено C-/ отменя промените, направени от една команда; ако
|
||
повтаряте C-/ няколко пъти последователно, всяко повторение отменя още
|
||
една команда.
|
||
|
||
Но има две изключения: командите, които не променят текста, не се
|
||
броят (това включва придвижването на курсора и скролиращите команди),
|
||
и самовмъкващите се знаци обикновено се обработват на групи, всяка до
|
||
20 знака. (Това намалява броя на C-/, които трябва да въведете, за да
|
||
отмените въведен текст.)
|
||
|
||
>> Изрежете този ред с C-k, след това въведете C-/ и той трябва да се
|
||
появи отново.
|
||
|
||
C-_ е алтернативна отменяща команда; тя работи точно като C-/. На
|
||
някои терминали въвеждането на C-/ всъщност изпраща C-_ на Емакс.
|
||
Като алтернатива, C-x u работи точно като C-/, но е по-неудобна за
|
||
въвеждане.
|
||
|
||
Числов аргумент към C-/, C-_ или C-x u действа като брояч на
|
||
повторения.
|
||
|
||
Може да отменяте изтриване на текст точно както отменяте изрязване на
|
||
текст. Различието между изрязването на нещо и изтриването му
|
||
въздейства дали ще може да го извадите с C-y; за отменянето няма
|
||
разлика между двата вида.
|
||
|
||
|
||
* ФАЙЛОВЕ
|
||
---------
|
||
|
||
За да направите текста, който редактирате, постоянен, трябва да го
|
||
сложите във файл. В противен случай той ще изчезне, когато Емакс
|
||
приключи. За да сложите вашия текст във файл, трябва да „намерите“
|
||
(find) файла преди да въвеждате текст. (Това също се нарича
|
||
„посещаване“ (visit) на файл.)
|
||
|
||
Намиране на файл означава, че виждате съдържанието му в Емакс. В
|
||
много случаи това е като да редактирате самия файл. Обаче промените,
|
||
които правите, използвайки Емакс, не остават постоянни, докато не
|
||
„запишете“ (save) файла. Това е така, за да се предотврати оставянето
|
||
на полупроменен файл в системата, когато не искате това. Дори когато
|
||
записвате, Емакс оставя началния файл под променено име, в случай, че
|
||
по-късно решите, че вашите промени са били грешка.
|
||
|
||
Ако погледнете в дъното на екрана, ще видите ред, който започва с
|
||
тирета – „ b:--- TUTORIAL.bg“ или нещо подобно. Тази част от екрана
|
||
показва името на файла, който сте посетили. Точно сега вие сте
|
||
посетили файл, наречен „TUTORIAL.bg“, който е вашето лично
|
||
копие-чернова на Емакс въведението. Когато намерите файл в Емакс,
|
||
името на този файл ще се появи на това място.
|
||
|
||
Особеност на командата за намиране на файл е, че трябва да кажете
|
||
името на файла, който искате. Казваме, че командата „чете на
|
||
аргумент“ (в този случай аргументът е името на файла). След като
|
||
въведете командата
|
||
|
||
C-x C-f Намиране на файл
|
||
|
||
Емакс ви подканя да въведете името на файла. Името на файла, което
|
||
напишете, се появява в дъното на екрана. Редът в дъното на екрана се
|
||
нарича минибуфер, когато се използва за този вид въвеждане. Можете да
|
||
използвате обикновените команди за редактиране на Емакс, за да
|
||
редактирате името на файла.
|
||
|
||
Когато въвеждате името на файла (или какъвто и да е вход в
|
||
минибуфера), можете да прекратите командата с C-g.
|
||
|
||
>> Въведете C-x C-f и след това C-g. Това прекратява минибуфера, а
|
||
също и командата C-x C-f, която се е изпълнявала в минибуфера.
|
||
Така че не намирате файл.
|
||
|
||
Когато приключите с въвеждането на името на файла, въведете <Return>,
|
||
за да завършите. Минибуферът изчезва и командата C-x C-f тръгва да
|
||
работи и намира файла, който сте избрали.
|
||
|
||
След малко съдържанието на файла се появява на екрана и вие можете да
|
||
редактирате съдържанието му. Когато пожелаете да запазите вашите
|
||
промени за постоянно, въведете командата
|
||
|
||
C-x C-s Запис (save) на файла
|
||
|
||
Това копира текста от Емакс във файла. Първия път, когато това се
|
||
направи, Емакс преименува началния файл с ново име, така че той да не
|
||
се изгуби. Новото име се построява с добавяне на „~“ в края на името
|
||
на началния файл.
|
||
|
||
Когато запазването е свършило, Емакс извежда името на файла, който е
|
||
бил записан. Трябва да записвате достатъчно често, така че да не
|
||
изгубите много работа, ако системата се срине по някаква причина
|
||
(вж. раздела „Автоматичен запис“ по-долу).
|
||
|
||
>> Въведете C-x C-s TUTORIAL.bg <Return>.
|
||
Това ще запише въведението във файл с име TUTORIAL.bg и ще покаже
|
||
„Wrote ...TUTORIAL.bg“ в дъното на екрана.
|
||
|
||
Може да намерите съществуващ файл, да го разгледате и да го
|
||
редактирате. Можете също да намерите файл, който не съществува. Това
|
||
е начинът за създаване на нови файлове в Емакс: намирате файла, който
|
||
ще бъде в началото празен, и тогава започвате вмъкването на текста за
|
||
файла. Когато искате „запис“ на файл, Емакс всъщност ще създаде файла
|
||
с текста, който сте въвели. Оттам нататък може да считате, че
|
||
редактирате вече съществуващ файл.
|
||
|
||
|
||
* БУФЕРИ
|
||
--------
|
||
|
||
Ако намерите втори файл с C-x C-f, първият файл остава в Емакс.
|
||
Можете да превключите обратно към него, като го намерите пак с C-x
|
||
C-f. По този начин може да получите доста на брой файлове в Емакс.
|
||
|
||
Емакс съхранява текста на всеки файла в обект, наричан „буфер“.
|
||
Намирането на файл създава нов буфер вътре в Емакс. За да видите
|
||
списък с всички съществуващи буфери, въведете
|
||
|
||
C-x C-b Списък на буферите
|
||
|
||
>> Опитайте C-x C-b още сега.
|
||
|
||
Забележете, че всеки буфер има име, а също може да има и име на файл,
|
||
чието съдържание се пази в буфера. ВСЕКИ текст, който виждате в
|
||
прозорец на Емакс, винаги е част от някой буфер.
|
||
|
||
>> Въведете C-x 1, за да махнете списъка на буфери.
|
||
|
||
Когато имате няколко буфера, само един от тях е „текущ“ в даден момент
|
||
от време. Това е буферът, който редактирате. Ако искате да
|
||
редактирате друг буфер, се нуждаете от „превключване“ към него. Ако
|
||
искате да се превключите към буфер, който съответства на файл, можете
|
||
да го направите, като просто посетите файла отново с C-x C-f. Но има
|
||
и по-лесен начин: използването на командата C-x b. В тази команда
|
||
трябва да въведете името на буфера.
|
||
|
||
>> Суздайте файл с име „foo“ чрез въвеждане на C-x C-f foo <Return>.
|
||
Тогава въведете C-x b TUTORIAL.bg <Return>, за да се върнете в това
|
||
въведение.
|
||
|
||
В повечето случаи името на буфера е същото като името на файла (без
|
||
частта в коя директория се намира). Обаче това не винаги е вярно.
|
||
Списъкът с буферите, който правите с C-x C-b, винаги ви показва и
|
||
името на буфера, и името на файла.
|
||
|
||
ВСЕКИ текст, който виждате в Емакс прозорец, е винаги част от някакъв
|
||
буфер. Някои буфери не съответстват на файлове. Буферът, именуван
|
||
„*Buffer List*“, които сте направили с C-x C-b, не съответства на
|
||
файл. Това е буферът, който съдържа списъка с буферите. Този буфер
|
||
TUTORIAL.bg отначало не е бил към файл, но вече е, защото в предишния
|
||
раздел въведохте C-x C-s и го записахте във файл.
|
||
|
||
Буферът, именуван „*Messages*“, също не съответства на файл; той
|
||
съдържа съобщенията, които се появяват в дъното на екрана по време на
|
||
Емакс сесията.
|
||
|
||
>> Въведете C-x b *Messages* <Return>, за да видите буфера със
|
||
съобщенията. След това въведете C-x b TUTORIAL.bg <Return>, за да
|
||
се върнете към това въведение.
|
||
|
||
Ако направите промени в текста на един файл и тогава намерите друг
|
||
файл, това няма да запише първия файл. Неговите промени остават вътре
|
||
в Емакс, в буфера на файла. Създаването или редактирането на буфера
|
||
на втория файл няма ефект върху буфера на първия файл. Това е много
|
||
полезно, но също означава, че се нуждаете от удобен начин да запазите
|
||
буфера на първия файл. Ще е неудобно да превключите обратно с C-x
|
||
C-f, за да го запазите с C-x C-s. Така че имаме
|
||
|
||
C-x s Запис на някои (some) буфери
|
||
|
||
C-x s пита за всеки буфер, който съдържа промени, които не сте
|
||
запазили. Командата задава въпрос за всеки такъв буфер дали да бъде
|
||
запазен.
|
||
|
||
>> Вмъкнете ред с текст, след това въведете C-x s.
|
||
Трябва да бъдете попитан дали да запазите буфера, именуван „TUTORIAL.bg“.
|
||
Отговорете с „да“ на въпроса, като въведете „y“ (yes).
|
||
|
||
|
||
* РАЗШИРЯВАНЕ НА НАБОРА КОМАНДИ
|
||
-------------------------------
|
||
|
||
Има много, много повече команди на Емакс, отколкото могат да се сложат
|
||
на всички контролни и мета знаци. Емакс заобикаля това с X (eXtended)
|
||
командата. Това става по два начина:
|
||
|
||
C-x Знаково разширяване. Последвано от един знак.
|
||
M-x Разширяване с именувана команда. Последвано от дълго
|
||
име.
|
||
|
||
Тези команди са общо взето полезни, но по-малко, отколкото командите,
|
||
които досега сте научили. Вече видяхте две от тях: командите върху
|
||
файлове C-x C-f за намиране (Find) и C-x C-s за запис (Save). Друг
|
||
пример е командата за край на Емакс сесията -- това е командата C-x
|
||
C-c. (Не се безпокойте, че може да изгубите всички промени, които сте
|
||
направили; C-x C-c предлага да запази всеки променен файл, преди да
|
||
премахне Емакс.)
|
||
|
||
Ако сте на графичен дисплей, не е нужна специална команда за
|
||
придвижване от Емакс към друго работещо приложение. Можете да
|
||
извършите това с мишката или с команди към управлението на прозорци.
|
||
Но ако сте на текстов терминал, който може да показва само едно
|
||
приложение в даден момент, се нуждаете от начин за „изоставяне“
|
||
(suspend) на Емакс и придвижване към други програми.
|
||
|
||
C-z е командата за излизане от Емакс *временно* – така че да можете да
|
||
се върнете към същата Емакс сесия по-късно. Когато Емакс върви на
|
||
текстов терминал, C-z „изоставя“ Емакс, т.е. връща се към обвивката,
|
||
но не унищожава задачата (job) на Емакс. В повечето популярни обвивки
|
||
можете да продължите Емакс с командата „fg“ или с „%emacs“.
|
||
|
||
Има много команди C-x. Ето списък на тези, които сте научили:
|
||
|
||
C-x C-f Намиране на файл
|
||
C-x C-s Запис на файл
|
||
C-x s Запис на някои буфери
|
||
C-x C-b Списък на буферите
|
||
C-x b Превключване към буфер
|
||
C-x C-c Излизане от Емакс
|
||
C-x 1 Изтриване на всички прозорци освен един
|
||
C-x u Отмяна
|
||
|
||
Именуваните разширени (X) команди са команди, които се използват даже
|
||
още по-рядко, или команди, които се използват само в определени
|
||
режими. Пример е командата replace-string, която заменя глобално един
|
||
низ с друг. Когато въведете M-x, Емакс ви подсказва в дъното на
|
||
екрана с M-x и вие трябва да въведете името на командата, в този
|
||
случай „replace-string“. Просто въведете „repl s<TAB>“ и Емакс ще
|
||
завърши името. (<TAB> е клавишът Tab, обикновено намиращ се над
|
||
клавиша CapsLock или клавиша Shift близо до левия край на
|
||
клавиатурата.) Завършете името на командата с <Return>.
|
||
|
||
Командата replace-string изисква два аргумента – низът, който ще бъде
|
||
заменян, и низът, който ще го замени. Трябва да завършите въвеждането
|
||
на всеки аргумент с <Return>.
|
||
|
||
>> Придвижете курсора до празния ред, два реда надолу под този.
|
||
Тогава въведете M-x repl s<Return>променя<Return>изменя<Return>
|
||
|
||
Забележете как този ред се променя: вие заменихте думата
|
||
п-р-о-м-е-н-я с „изменя“, където и да се намира след началното
|
||
място на курсора.
|
||
|
||
|
||
* АВТОМАТИЧНО ЗАПАЗВАНЕ
|
||
-----------------------
|
||
|
||
Когато сте направили промени във файл, но още не сте го запазили, те
|
||
могат да бъдат загубени, ако компютърът внезапно се изключи. За да ви
|
||
предпази от такива ситуации, Емакс периодично запазва „автоматично
|
||
запазван“ файл за всеки файл, който редактирате. Името на автоматично
|
||
запазвания файл има # в началото и в края; например, ако вашият файл е
|
||
с име „hello.c“, името на неговия автоматично запазван файл ще бъде
|
||
"#hello.c#". Когато запазвате файл по обикновения начин, Емакс
|
||
изтрива неговия автоматично записван файл.
|
||
|
||
Ако компютърът зависне, може да възстановите вашата автоматично
|
||
запазвана редакция, като намерите файла както обикновено (файлът,
|
||
който сте редактирали, не автоматично запазвания) и след това въведете
|
||
M-x recover-file <Return>. Когато командата изиска потвърждение,
|
||
въведете yes<Return>, за да продължите и да възстановите автоматично
|
||
запазваните данни.
|
||
|
||
|
||
* ЕХО ОБЛАСТТА
|
||
--------------
|
||
|
||
Ако Емакс види, че въвеждате многознакови команди бавно, ще ви ги
|
||
покаже в дъното на екрана, в област, наричана „ехо област“. Ехо
|
||
областта обхваща последния ред от екрана.
|
||
|
||
|
||
* РЕД НА РЕЖИМА
|
||
----------------
|
||
|
||
Редът точно над ехо областта се нарича „ред на режима“ (mode line).
|
||
Той показва нещо като:
|
||
|
||
b:**- TUTORIAL.bg 63% L744 (Fundamental)
|
||
|
||
Този ред дава полезна информация за състоянието на Емакс и текста,
|
||
който редактирате.
|
||
|
||
Вече знаете какво означава името на файла – това е файлът, който сте
|
||
намерили. NN% показва вашата текуща позиция в текста; това означава,
|
||
че NN процента от текста е над върха на екрана. Ако началото на файла
|
||
е на екрана, ще се показва „Top“ (връх) вместо „ 0%“. Ако края на
|
||
файла е на екрана, ще се показва „Bot“ (bottom – дъно). Ако гледате
|
||
текст, който е толкова малък, че се показва изцяло на екрана, редът на
|
||
режима ще изведе „All“ (всичко).
|
||
|
||
Знакът L и цифрите показват мястото по друг начин: това е номерът на
|
||
текущия ред на точката.
|
||
|
||
Звездите близо до началото означават, че сте направили промени в
|
||
текста. Веднага след като посетите или запазите файл, тази част от
|
||
реда на режима вече не показва звезди, а само тирета.
|
||
|
||
Частта от реда на режима вътре в скобите е, за да ви покаже в какъв
|
||
режим на редактиране се намирате. Подразбиращият се режим е
|
||
Fundamental (Основен), който използвате в момента. Това е пример за
|
||
„главен режим“ (major mode).
|
||
|
||
Емакс има много главни режими. Някои от тях са предвидени за
|
||
редактиране на различни езици и/или видове текст, като например режим
|
||
Lisp (Лисп), режим Text (текст) и други. Във всеки един момент от
|
||
време точно един главен режим е активен и неговото име може винаги да
|
||
бъде намерено в реда на режима, точно както „Fundamental“ сега.
|
||
|
||
Всеки главен режим прави някои команди да се държат по различен начин.
|
||
Например, има команди за редактиране на коментари в програми, и тъй
|
||
като всеки програмен език има различна идея за това как трябва да
|
||
изглеждат коментарите, всеки главен режим трябва да вмъква коментари
|
||
по различен начин. Всеки главен режим е име на разширена команда, с
|
||
която превключвате към този режим. Например, M-x fundamental-mode е
|
||
команда за превключване към режим Fundamental.
|
||
|
||
Когато редактирате текст на естествен език, като този файл,
|
||
най-вероятно трябва да използвате режим Text (текст).
|
||
|
||
>> Въведете M-x text-mode <Return>.
|
||
|
||
Не се безпокойте, никоя от Емакс командите, които сте научили, няма да
|
||
се промени по някакъв съществен начин. Но може да забележите, че M-f
|
||
и M-b сега възприемат апострофите (') като част от думите. Преди
|
||
това, в основния режим (Fundamental), M-f и M-b се възприемаха като
|
||
разделители на думи.
|
||
|
||
Главните режими обикновено правят малки промени като тази: повечето
|
||
команди вършат „същата работа“ във всеки главен режим, но работят по
|
||
малко по-различен начин.
|
||
|
||
За да видите документацията на вашия текущ главен режим, въведете C-h
|
||
m.
|
||
|
||
>> Употребете C-l C-l веднъж или повече пъти, за да докарате този ред
|
||
близо до върха на екрана.
|
||
>> Въведете C-h m, за да видите как текстовият режим се различава от
|
||
основния режим.
|
||
>> Въведете C-x 1, за да премахнете документацията от екрана.
|
||
|
||
Главните режими се наричат главни, защото има и малки (второстепенни)
|
||
режими (minor modes). Малките режими не са алтернативи на главните, а
|
||
просто малки промени към тях. Всеки малък режим може да бъде включен
|
||
или изключен сам за себе си, независимо от всички други малки режими
|
||
и независимо от вашия главен режим. Така че може да не използвате
|
||
малки режими, да използвате един малък режим, или да използвате
|
||
някаква комбинация от няколко малки режима.
|
||
|
||
Един малък режим, който е много полезен, особено за редактиране на
|
||
текст на естествен език, е режимът на автоматично запълване (Auto Fill
|
||
mode). Когато този режим е включен, Емакс автоматично разделя реда
|
||
при мястото между думите, когато вмъквате текст и направите ред, който
|
||
е твърде дълъг.
|
||
|
||
Може да включите режима на автоматично запълване, като изпълните M-x
|
||
auto-fill-mode <Return>. Когато режимът е включен, може да го
|
||
изключите с M-x auto-fill-mode<Return>. Ако режимът е изключен, тази
|
||
команда го включва, а ако е включен, го изключва. Казваме, че
|
||
командата „превключва (toggle) режима“.
|
||
|
||
>> Въведете M-x auto-fill-mode <Return> сега. След това вмъкнете ред
|
||
от „asdf “ отново и отново, докато не видите, че текстът се разделя
|
||
на два реда. Трябва да слагате интервали между думите, защото
|
||
автоматичното запълване разделя редовете само при интервалите.
|
||
|
||
Границата обикновено е зададена на 70 знака, но можете да я промените
|
||
с командата C-x f. Трябва да задавате тази граница като числов
|
||
аргумент на командата.
|
||
|
||
>> Въведете C-x f с аргумент 20. (C-u 2 0 C-x f).
|
||
Сега въведете някакъв текст и вижте как Емакс запълва редовете с по
|
||
не повече от 20 знака. После върнете обратно границата на 70,
|
||
използвайки C-x f отново.
|
||
|
||
Ако направите промени в средата на абзац, режимът на автоматично
|
||
запълване няма да го запълни наново за вас.
|
||
За да запълните наново абзац, въвеждайте M-q (META-q), докато курсорът
|
||
е вътре в абзаца.
|
||
|
||
>> Придвижете курсора вътре в предишния абзац и въведете M-q.
|
||
|
||
|
||
* ТЪРСЕНЕ
|
||
---------
|
||
|
||
Емакс може да извършва търсения на низове (това са последователности
|
||
от знаци или думи) или напред в текста, или назад в него. Търсенето
|
||
на низ е придвижваща курсора команда; тя премества курсора на
|
||
следващото място, където се среща низът.
|
||
|
||
Командата за търсене на Емакс е „постъпкова“. Това означава, че
|
||
търсенето се извършва още докато въвеждате текста, който търсите.
|
||
|
||
Командата за започване на търсене е C-s за търсене напред, и C-r за
|
||
търсене назад. НО ПОЧАКАЙТЕ! Не ги пробвайте сега.
|
||
|
||
Когато въведете C-s, ще забележите, че низът „I-search“ се появява
|
||
като подсказка в ехо областта. Това ви казва, че Емакс е в това,
|
||
което се нарича постъпково търсене, чакайки ви да въвеждате текста,
|
||
който искате да търсите. <Return> приключва търсенето.
|
||
|
||
>> Сега въведете C-s, за да започнете търсенето. БАВНО, буква по
|
||
буква, въведете думата „курсор“, изчаквайки след въвеждането на
|
||
всеки знак, за да може да забележите какво става с курсора. Сега
|
||
извършихте търсене на „курсор“ веднъж.
|
||
>> Въведете отново C-s, за да търсите друго съвпадение с „курсор“.
|
||
>> Сега въведете <DEL> четири пъти и вижте как се придвижва курсора.
|
||
>> Въведете <Return>, за да прекратите търсенето.
|
||
|
||
Забелязахте ли какво стана? Емакс, когато търси постъпково, се опитва
|
||
да намери следващото съвпадение на низа, който се въвежда. За да
|
||
отидете на следващото съвпадение на „курсор“, просто отново въведете
|
||
C-s. Ако няма такова съвпадение, Емакс бибипва и ви казва, че
|
||
търсенето е „провалено“ (failing). C-g също така прекратява
|
||
търсенето.
|
||
|
||
Ако сте в средата на постъпково търсене и въведете <DEL>, ще
|
||
забележите, че последният знак в търсения низ се изтрива и търсенето
|
||
се връща към последното място на търсене. Например, предположете, че
|
||
сте въвели „к“, за да намерите първото съвпадение с „к“. Сега, ако
|
||
въведете „у“, курсорът ще се придвижи към първото съвпадение на „ку“.
|
||
Сега въведете <DEL>. Това изтрива знака „у“ от низа за търсене и
|
||
курсорът се премества назад, до първото съвпадение с „к“.
|
||
|
||
Ако сте в средата на търсене и въведете контролен или мета знак (с
|
||
няколко изключения – знаците, които са специални по време на търсене,
|
||
като C-s и C-r), търсенето се прекратява.
|
||
|
||
C-s започва търсене, което гледа за съвпадение с низа, даден за
|
||
търсене СЛЕД текущото място на курсора. Ако искате да търсите нещо
|
||
по-ранно от текста, вместо това въведете C-r. Всичко, което казахме
|
||
за C-s, важи и за C-r, освен че посоката на търсене е обърната.
|
||
|
||
|
||
* МНОЖЕСТВО ПРОЗОРЦИ
|
||
----------------
|
||
|
||
Една от привлекателните способности на Емакс е тази, че може да
|
||
гледате повече от един прозорец на екрана в даден момент от време.
|
||
(Обърнете внимание, че Емакс използва думата „рамки“, описана в
|
||
следващия раздел, за това, което други приложения наричат „прозорец“.
|
||
Ръководството на Емак съдържа речника на термините на Емакс.)
|
||
|
||
>> Придвижете курсора до този ред и въведете C-l C-l.
|
||
|
||
>> Сега въведете C-x 2, което ще раздели екрана на два отделни
|
||
прозореца. Двата прозореца показват това въведение. Курсорът
|
||
остава на по-горния прозорец.
|
||
|
||
>> Въведете C-M-v, за да скролирате долния прозорец. (Ако нямате
|
||
истински клавиш META, въведете ESC C-v.)
|
||
|
||
>> Въведете C-x o („o“ от „other“ – „друг“), за да придвижите
|
||
курсора в долния прозорец.
|
||
>> Използвайте C-v и M-v в долния прозорец, за да го скролирате.
|
||
Продължете четенето на тези насоки от въведението в горния
|
||
прозорец.
|
||
|
||
>> Въведете C-x o отново, за да придвижите курсора отново в горния
|
||
прозорец. Курсорът в горния прозорец е точно там, където е бил
|
||
преди.
|
||
|
||
Може да продължите да използвате C-x o, за да превключвате между
|
||
прозорците. „Текущият прозорец“, където се извършва редактирането, е
|
||
този с явен курсор, който мига, когато не въвеждате. Другите прозорци
|
||
имат собствени положения на курсора. Ако Емакс е на графичен дисплей,
|
||
тези курсори ще са изчертани като немигащи празни кутии.
|
||
|
||
Командата C-M-v е много полезна, когато редактирате текст в един
|
||
прозорец и използвате другия прозорец просто за справка. Може да
|
||
държите курсора винаги в прозореца, където редактирате, и да
|
||
напредвате последователно в другия прозорец чрез C-M-v.
|
||
|
||
C-M-v е пример за знак CONTROL-META. Ако имате истински клавиш META
|
||
(или Alt), може да въвеждате C-M-v, задържайки едновременно CONTROL и
|
||
META, докато въвеждате „v“. Няма значение дали CONTROL или META „е
|
||
натиснат първи“, защото и двата клавиша действат, модифицирайки знака,
|
||
който натискате.
|
||
|
||
Ако нямате истински клавиш META и използвате <ESC> вместо това, редът
|
||
вече има значение: трябва да въвеждате <ESC>, последван от CONTROL-v,
|
||
защото CONTROL-<ESC> v няма да работи. Това е така, защото <ESC> е
|
||
собствен знак, а не модификатор.
|
||
|
||
>> Въведете C-x 1 (в горния прозорец), за да махнете долния прозорец.
|
||
|
||
(Ако сте въвели C-x 1 в долния прозорец, това ще махне горния.
|
||
Мислете за тази команда като „Задръж точно един прозорец – този, в
|
||
който съм сега“.)
|
||
|
||
Няма нужда да извеждате един и същи буфер в двата прозореца. Ако
|
||
използвате C-x C-f, за да намерите файл в единия прозорец, другият
|
||
прозорец не се променя. Може да намирате файл във всеки прозорец,
|
||
независимо от това какво има в другите прозорци.
|
||
|
||
Ето още един начин да използвате два прозореца, за да покажете две
|
||
различни неща:
|
||
|
||
>> Въведете C-x 4 C-f, последвано от името на един от вашите файлове.
|
||
Завършете с <Return>. Вижте как този файл се появява в долния
|
||
прозорец. Курсорът също отива там.
|
||
|
||
>> Въведете C-x o, за да се върнете в горния прозорец, и C-x 1, за да
|
||
изтриете долния.
|
||
|
||
|
||
* МНОЖЕСТВО РАМКИ
|
||
-----------------
|
||
|
||
Емакс може да създава и „рамки“. Рамката (frame) е това, което
|
||
наричаме един набор от прозорци, заедно с техните менюта, плъзгачи,
|
||
ехо области и т.н. В графичен дисплей Емакс нарича „рамка“ това,
|
||
което повечето други приложения наричат „прозорец“. На екрана могат
|
||
да бъдат показвани няколко графични рамки едновременно. В текстов
|
||
терминал може да се показва само една рамка в даден момент от време.
|
||
|
||
>> Въведете M-x make-frame <Return>.
|
||
Вижте как се появява нова рамка на екрана.
|
||
|
||
В новата рамка можете да правите всичко, което правите и в
|
||
оригиналната рамка. Няма нищо специално в първата рамка.
|
||
|
||
>> Въведете M-x delete-frame <Return>
|
||
Избраната рамка се премахва.
|
||
|
||
Можете да премахвате рамки и по нормалния за това начин в графичната
|
||
система, най-често с натискане на бутона, отбелязан като „X“ в горен
|
||
ъгъл на рамката. Ако премахнете и последната рамка на работещ Емакс,
|
||
това ще излезе от Емакс.
|
||
|
||
|
||
* ВЛОЖЕНИ НИВА НА РЕДАКТИРАНЕ
|
||
-----------------------------
|
||
|
||
Понякога ще се озовете в това, което се нарича „вложено ниво на
|
||
редактиране“ (recursive editing level). Това се отбелязва от
|
||
квадратни скоби в реда на режима, които ограждат скобите около името
|
||
на главния режим. Например, може да видите [(Fundamental)] вместо
|
||
(Fundamental).
|
||
|
||
За да се махнете от вложеното ниво на редактиране, въведете <ESC>
|
||
<ESC> <ESC>. Това е обща команда за „излизане“. Може и да я
|
||
използвате за махане (скриване) на допълнителни прозорци, както и за
|
||
да се махнете от минибуфера.
|
||
|
||
>> Въведете M-x, за да влезете в минибуфер; тогава въведете <ESC>
|
||
<ESC> <ESC>, за да излезете.
|
||
|
||
Не можете да използвате C-g, за да излезете от вложено ниво на
|
||
редактиране. Това е така, защото C-g се използва за прекратяване на
|
||
команди и аргументи ВЪТРЕ във вложено ниво на редактиране.
|
||
|
||
|
||
* ПОЛУЧАВАНЕ НА ДОПЪЛНИТЕЛНА ПОМОЩ
|
||
----------------------------------
|
||
|
||
В това въведение се опитахме да осигурим достатъчно информация, за да
|
||
започнете да използвате Емакс. Има толкова много още в Емакс, че не е
|
||
възможно то да бъде обяснено всичкото тук. Обаче може да поискате да
|
||
научите повече за Емакс, тъй като той притежава още много полезни
|
||
способности. Емакс има команди за четене на документацията на Емакс
|
||
командите. Тези "помощни" команди всички започват със знака
|
||
CONTROL-h, който се нарича "знакът за помощ".
|
||
|
||
За да използвате възможностите на тази помощ, въведете знака C-h и
|
||
след това знака, казващ какъв вид помощ искате. Ако НАИСТИНА сте се
|
||
изгубили, въведете C-h ? и Емакс ще ви каже с какво може да ви
|
||
помогне. Ако сте въвели C-h и решите, че не се нуждаете от помощ,
|
||
просто въведете C-g, за да я прекратите.
|
||
|
||
(Ако C-h не извежда съобщение за помощ в дъното на екрана, опитайте
|
||
клавиша F1 или M-x help <Return> вместо това.)
|
||
|
||
Най-основното помощно средство е C-h c. Въведете C-h, знака „c“ и
|
||
команден знак или последователност от знаци, образуващи команда;
|
||
тогава Емакс ще изведе много кратко описание на командата.
|
||
|
||
>> Type C-h c C-p.
|
||
|
||
Изведеното описание трябва да бъде нещо като
|
||
|
||
C-p runs the command previous-line
|
||
(C-p изпълнява командата предишен-ред)
|
||
|
||
Това ви казва „името на функцията“. Имената на функциите се използват
|
||
най-вече за настройване и разширяване на Емакс. Но тъй като имената
|
||
на функциите са избрани така, че да показват какво прави командата, те
|
||
могат да служат и за много кратка документация – достатъчна, за да ви
|
||
припомни команди, които вече сте учили.
|
||
|
||
Многознакови команди, като C-x C-s и (ако нямате клавиш META или EDIT
|
||
или ALT) <ESC>v, също са позволени след C-h c.
|
||
|
||
За да получите още информация за команда, използвайте C-h k вместо C-h
|
||
c.
|
||
|
||
>> Въведете C-h k C-p.
|
||
|
||
Това извежда документацията на функцията, както и нейното име, в
|
||
отделен Емакс прозорец. Когато я прочетете, въведете C-x 1, за да
|
||
махнете помощния текст. Не е нужно да правите това точно сега. Може
|
||
да редактирате, докато се обръщате към помощния текст за справка, и
|
||
след това да въведете C-x 1.
|
||
|
||
Ето още няколко полезни C-h възможности:
|
||
|
||
C-h f Описва функция. Трябва да въведете името на
|
||
функцията.
|
||
|
||
>> Опитайте с въвеждане на C-h f previous-line <Return>.
|
||
Това извежда цялата информация, която Емакс знае за функцията,
|
||
която осъществява командата C-p.
|
||
|
||
Подобна команда, C-h v, извежда документацията на променливите, които
|
||
може да променяте, за да настройвате поведението на Емакс. Трябва да
|
||
въведете името на променливата, когато Емакс ви подскаже това.
|
||
|
||
C-h a Команда Апропос. Въведете ключова дума и Емакс ще
|
||
покаже списък на всички команди, чието име съдържа
|
||
тази ключова дума. Тези команди могат всички да бъдат
|
||
извикани чрез META-x. За някои команди командата
|
||
Апропос ще изведе допълнително еднознакова или
|
||
двузнакова последователност от клавиши, която пуска
|
||
същата команда.
|
||
|
||
>> Въведете C-h a file <Return>.
|
||
|
||
Това извежда в друг прозорец списък на всички M-x команди, които
|
||
съдържат „file“ (файл) в тяхното име. Ще видите знакови команди като
|
||
C-x C-f, изброени измежду съответните имена на команди, като
|
||
find-file.
|
||
|
||
>> Въведете C-M-v, за да скролирате помощния прозорец. Направете го
|
||
няколко пъти.
|
||
|
||
>> Въведете C-x 1, за да изтриете помощния прозорец.
|
||
|
||
C-h i Четене на ръководства (Info). Тази команда ви праща в
|
||
специален буфер, наричан „*info*“, където може да
|
||
четете ръководствата на инсталираните във вашата
|
||
система пакети. Въведете m emacs <Return>, за да
|
||
четете ръководството на Емакс. Ако никога преди това
|
||
не сте използвали Info, въведете ? и Емакс ще включи
|
||
въведение във възможностите на режима Инфо. Веднъж
|
||
след като сте преминали това въведение, трябва да се
|
||
консултирате с Емакс Инфо ръководството като ваша
|
||
основна документация.
|
||
|
||
|
||
* ОЩЕ ВЪЗМОЖНОСТИ
|
||
-----------------
|
||
|
||
Може да научите повече за Емакс с четене на неговото ръководство, или
|
||
като книга, или в Инфо (използвайте менюто Помощ (Help) или въведете
|
||
C-h r). Две възможности, които може да желаете в началото, са
|
||
довършване (completion), което спестява писане, и dired, който
|
||
опростява боравенето с файлове.
|
||
|
||
Довършването е начин да избягвате ненужно писане. Например, ако
|
||
искате да превключите към буфера *Messages*, може да въведете C-x b
|
||
*M<Tab> и Емакс ще запълни останалата част от името на буфера,
|
||
доколкото може да се определи от това, което сте въвели. Довършването
|
||
е описано в Инфо-ръководството на Емакс в страницата „Довършване“
|
||
(„Completion“).
|
||
|
||
Dired ви позволява да гледате списъка от файлове в директория (и като
|
||
възможност: нейните поддиректории), да се придвижвате в този списък,
|
||
да посещавате, преименувате, изтривате и изобщо действате върху
|
||
файловете. Dired е описан в Инфо-ръководството на Емакс в страницата
|
||
"Dired".
|
||
|
||
Ръководството на Емакс описва още много други възможности на
|
||
редактора.
|
||
|
||
|
||
* ЗАКЛЮЧЕНИЕ
|
||
------------
|
||
|
||
За да излезете безвъзвратно от Емакс, използвайте C-x C-c.
|
||
|
||
Това въведение е предвидено да бъде разбираемо за всички нови
|
||
потребители, така че ако намирате нещо неясно, не се самообвинявайте –
|
||
оплачете се!
|
||
|
||
|
||
* КОПИРАНЕ
|
||
----------
|
||
|
||
Това въведение произлиза от дълга поредица въведения в Емакс,
|
||
започвайки от едно, написано от Стюърт Кракрафт за началния Емакс.
|
||
|
||
Тази версия на въведението, както и ГНУ Емакс, е защитена с авторски
|
||
права и идва с разрешение да разпространявате копия при следните
|
||
условия:
|
||
|
||
This version of the tutorial, like GNU Emacs, is copyrighted, and
|
||
comes with permission to distribute copies on certain conditions:
|
||
|
||
Copyright (C) 1985, 1996, 1998, 2001-2021 Free Software Foundation,
|
||
Inc.
|
||
|
||
This file is part of GNU Emacs.
|
||
|
||
GNU Emacs is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation, either version 3 of the License, or
|
||
(at your option) any later version.
|
||
|
||
GNU Emacs is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||
|
||
Моля, прочетете файла COPYING и тогава давайте копия на ГНУ Емакс на
|
||
свои приятели. Помогнете да спрем затвореността на програмите
|
||
(„притежанието“), като използваме, пишем и споделяме свободен софтуер!
|
||
|
||
Преводът на български е извършен от Огнян Кулев <ogi@tower.3.bg>.
|
||
|
||
;;; Local Variables:
|
||
;;; coding: utf-8
|
||
;;; End:
|