mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-21 10:24:55 +00:00
1198 lines
50 KiB
Plaintext
1198 lines
50 KiB
Plaintext
Въведение в Emacs. Условията за копиране са в края на текста.
|
||
|
||
Командите на Emacs най-често включват клавишите CONTROL (понякога
|
||
отбелязван с CTRL или CTL) и META (понякога отбелязван с EDIT или
|
||
ALT). Вместо да се изписват с пълно име всеки път, ние ще използваме
|
||
следните съкращения:
|
||
|
||
C-<знак> означава задържане на клавиша CONTROL, докато се
|
||
натиска знака <знак>. Така C-f ще означава: докато
|
||
се задържа натиснат клавиша CONTROL, се натиска f.
|
||
M-<знак> означава задържане натиснат на клавиша META (или EDIT,
|
||
или ALT), докато се натиска <знак>. Ако няма клавиш
|
||
META, EDIT или ALT, вместо него натиснете и отпуснете
|
||
клавиша ESC и след това въведете <знак>. Ние
|
||
записваме <ESC>, за да отбележим клавиша ESC.
|
||
|
||
Важна бележка: в края на Emacs сесията въведете двата знака C-x C-c.
|
||
Знаците ">>" отляво ви дават указание да изпълните команда. Например:
|
||
<<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.
|
||
Намерете пак курсора и вижте, че същият текст е пак около курсора.
|
||
|
||
Може също да използвате клавишите 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, когато курсорът е в средата на реда.
|
||
|
||
Всеки ред от текст завършва със знак за нов ред, който служи за
|
||
отделянето на реда от следващия ред. Последният ред във вашия файл
|
||
трябва да има знак за нов ред в края (но Emacs не изисква такъв,
|
||
когато прочита файла).
|
||
|
||
>> Опитайте C-b в началото на ред. Това трябва да ви придвижи в края
|
||
на предишния ред. Това е така, защото курсорът се придвижва към
|
||
знака за нов ред на предишния ред.
|
||
|
||
C-f може да придвижва през знак за нов ред точно както C-b.
|
||
|
||
>> Направете няколко C-b придвижвания, така че да добиете усещане къде
|
||
се намира курсорът. След това няколко C-f, за да се върнете в края
|
||
на реда. След това още няколко C-f, за да се придвижите до
|
||
следващия ред.
|
||
|
||
Когато се придвижвате след горния или долния край на екрана, текстът
|
||
отвъд края се измества към екрана. Това се нарича "скролиране". То
|
||
позволява на Emacs да придвижва курсора към зададеното място в текста,
|
||
без да го изкарва извън екрана.
|
||
|
||
>> Опитайте се да придвижите курсора след долния край на екрана с 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
|
||
по три причини. Първо, те работят на всички видове терминали. Второ,
|
||
веднъж след като добиете практика в използването на Emacs, ще
|
||
откриете, че въвеждането на тези Control-знаци е по-бързо от
|
||
въвеждането на клавишите стрелки, защото не трябва да премествате
|
||
ръката си далеч от областта на клавишите с букви. Трето, веднъж след
|
||
като си оформите навик да използвате тези команди с Control знаци, вие
|
||
можете също така лесно да научите по-напредналите команди за движение
|
||
на курсора.
|
||
|
||
Повечето Emacs команди приемат числов аргумент; за повечето от тях той
|
||
служи като брояч на повторения. Начинът, по който давате числов
|
||
брояч, е с въвеждане на 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), в лявата страна на прозореца на Emacs. Вие можете да скролирате
|
||
текста, щракайки с мишката в плъзгача.
|
||
|
||
>> Опитайте да натиснете средния бутон на върха на осветената област
|
||
вътре в плъзгача. Това би трябвало да скролира текста към
|
||
положение, определено от това колко високо или ниско сте щракнали.
|
||
|
||
>> Опитайте се да движите мишката нагоре и надолу, докато сте
|
||
задържали десния бутон натиснат. Ще видите, че текстът се скролира
|
||
нагоре и надолу, като движите мишката.
|
||
|
||
|
||
* КОГАТО EMACS Е БЛОКИРАЛ
|
||
-------------------------
|
||
|
||
Ако Emacs спре да отговаря на вашите команди, вие можете да го спрете
|
||
безопасно, като въведете C-g. Може да използвате C-g, за да спрете
|
||
команда, която се изпълнява твърде дълго.
|
||
|
||
Също можете да използвате C-g, за да отмените числов аргумент или
|
||
началото на команда, която не искате да завършите.
|
||
|
||
>> Въведете C-u 100, за да направите числов аргумент 100, и въведете
|
||
C-g. Сега въведете C-f. Трябва да се придвижите с точно един
|
||
знак, защото вие прекратихте аргументът с C-g.
|
||
|
||
Ако сте въвели <ESC> по погрешка, можете да се измъкнете с C-g.
|
||
|
||
|
||
* ЗАБРАНЕНИ КОМАНДИ
|
||
-------------------
|
||
|
||
Някои команди на Emacs са "забранени", така че начинаещите потребители
|
||
да не могат да ги употребят по погрешка.
|
||
|
||
Ако въведете някоя от забранените команди, Emacs извежда съобщение,
|
||
казвайки каква е била командата и питайки ви дали искате да продължите
|
||
напред и да изпълните командата.
|
||
|
||
Ако наистина искате да изпробвате командата, въведете <SPC> (клавиша
|
||
интервал) в отговор на въпроса. Обикновено ако не искате да изпълните
|
||
забранената команда, отговаряте на въпроса с "n".
|
||
|
||
>> Въведете C-x C-l (която е забранена команда), и след това въведете
|
||
"n" в отговор на въпроса.
|
||
|
||
|
||
* ПРОЗОРЦИ
|
||
----------
|
||
|
||
Emacs може да управлява няколко прозореца, всеки извеждайки свой
|
||
собствен текст. Ние ще обясним по-късно как да използвате няколко
|
||
прозореца. Точно сега ние искаме да обясним как да се отървете от
|
||
допълнителни прозорци и да се върнете към основното редактиране с един
|
||
прозорец. Просто е:
|
||
|
||
C-x 1 Един прозорец (т.е. премахни всички други прозорци).
|
||
|
||
Това е CONTROL-x, последван от цифрата 1. C-x 1 разширява прозореца,
|
||
съдържащ курсора, за да може да запълни целия екран. Тя премахва
|
||
всички други прозорци.
|
||
|
||
>> Придвижете курсора до този ред и въведете C-u 0 C-l.
|
||
>> Въведете C-h k C-f.
|
||
Вижте как този прозорец се свива, докато друг се появява, за да
|
||
изведе документацията на командата C-f.
|
||
|
||
>> Въведете C-x 1 и вижте как прозорецът с документацията изчезва.
|
||
|
||
Тази команда не е като другите команди, които сте научили, в това
|
||
отношение, че се състои от два знака. Започва със знака C-x. Има
|
||
цяла редица от команди, които започват с C-x; много от тях имат нещо
|
||
общо с прозорци, файлове, буфери и свързаните с тях неща. Тези
|
||
команди са от два, три или четири знака.
|
||
|
||
|
||
* ВМЪКВАНЕ И ИЗТРИВАНЕ
|
||
----------------------
|
||
|
||
Ако искате да вмъкнете текст, просто го въведете. Знаците, които
|
||
могат да се виждат, като А, 7, * и т.н., се възприемат от Emacs като
|
||
текст и се вмъкват веднага. Въведете <Return> (клавишът за връщане в
|
||
началото на реда), за да вмъкнете знак за нов ред.
|
||
|
||
Може да изтриете последния знак, който сте въвели, с въвеждане на
|
||
<Delback>. <Delback> е клавиш от клавиатурата -- същият, който
|
||
обикновено използвате извън Emacs, за да изтриете последния въведен от
|
||
вас знак. Обикновено е голям клавиш, на няколко реда разстояние от
|
||
клавиша <Return>, и обикновено е отбелязан с "Delete", "Del" или
|
||
"Backspace".
|
||
|
||
Ако големият клавиш там е с етикет "Backspace", тогава той е този,
|
||
който ще използвате за <Delback>. Може да има още един клавиш с
|
||
етикет "Delete" някъде другаде, но той не е <Delback>.
|
||
|
||
По-общо казано, <Delback> изтрива знака точно преди текущото място на
|
||
курсора.
|
||
|
||
>> Направете това сега -- напишете няколко знака, после ги изтрийте с
|
||
въвеждане на <Delback> няколко пъти. Не се безпокойте, че този
|
||
файл ще бъде променен; вие няма да промените първоначалното
|
||
въведение. Това е ваше лично копие.
|
||
|
||
Когато ред от текста стане твърде дълъг, за да се събере в ред от
|
||
екрана, редът от текста се "продължава" на следващия ред. Обратна
|
||
наклонена черта ("\") (или, ако използвате графичен интерфейс, малка
|
||
изкривена стрелка) в дясната граница отбелязва ред, който е бил
|
||
продължен.
|
||
|
||
>> Въведете текст, докато стигнете дясната граница, и продължете с
|
||
вмъкването. Ще видите продължението на реда да се показва.
|
||
|
||
>> Използвайте няколко <Delback>, за да изтриете текста, докато редът
|
||
се вмести в един екранен ред. Продължението на реда изчезва.
|
||
|
||
Може да изтриете знака за нов ред точно както всеки друг знак.
|
||
Изтриването на знака за нов ред между два реда ги слива в един ред.
|
||
Ако полученият комбиниран ред е твърде дълъг, за да се вмести в
|
||
ширината на екрана, той ще бъде показан като продължен ред.
|
||
|
||
>> Придвижете курсора в началото на ред и въведете <Delback>. Това ще
|
||
слее този ред с предишния.
|
||
|
||
>> Въведете <Return>, за да вмъкнете наново знака за нов ред, който
|
||
изтрихте.
|
||
|
||
Запомнете, че на повечето команди на Emacs може да бъде зададен брояч
|
||
на повторенията; това включва вмъкването на текстови знаци.
|
||
Повтарянето на текстов знак го вмъква няколко пъти.
|
||
|
||
>> Опитайте това сега -- въведете C-u 8 *, за да вмъкнете ********.
|
||
|
||
Сега вие сте научили най-основните начини за въвеждане на нещо в Emacs
|
||
и поправяне на грешки. Можете също така да изтривате думи или редове.
|
||
Ето обобщение на изтриващите действия:
|
||
|
||
<Delback> Изтриване на знака точно преди курсора
|
||
C-d Изтриване на знака точно след курсора
|
||
|
||
M-<Delback> Изтриване на думата непосредствено преди курсора
|
||
M-d Изтриване на думата след курсора
|
||
|
||
C-k Изтриване от мястото на курсора до края на реда
|
||
M-k Изтриване до края на текущото изречение
|
||
|
||
Забележете, че <Delback> и C-d, сравнени с M-<Delback> и M-d,
|
||
разширяват подобието, започнато от C-f и M-f (добре, <Delback> не е
|
||
наистина контролиращ знак, но нека не се безпокоим за това). C-k и
|
||
M-k са подобни на C-e и M-e в смисъл, че едните са за редове, а
|
||
другите -- за изречения.
|
||
|
||
Можете също да премахнете всяка част от буфера с един универсален
|
||
начин. Придвижете се до единия край на частта и въведете C-@ или
|
||
C-<SPC> (което и да е от двете). (<SPC> е клавишът интервал.)
|
||
Придвижете се до другия край на частта и въведете C-w. Това ще изреже
|
||
целия текст между тези два края.
|
||
|
||
>> Придвижете курсора до знака "М" в началото на предишния абзац.
|
||
>> Въведете C-<SPC>. Emacs трябва да изведе съобщение "Mark set" в
|
||
долния край на екрана.
|
||
>> Придвижете курсора до буквата "р" в "край" на втория ред от абзаца.
|
||
>> Въведете C-w. Това ще изреже текста, започващ от "М" и завършващ
|
||
точно преди "р".
|
||
|
||
Разликата между "изрязване" (kill, cut) и "изтриване" (delete) е, че
|
||
"изрязаният" текст може да бъде вмъкнат наново, докато "изтритите"
|
||
неща не могат да се вмъкнат наново. Поставянето наново на изрязан
|
||
текст се нарича "вмъкване" (yank, paste). Общо казано, командите,
|
||
които отстраняват много текст, го изрязват (така че той да може да
|
||
бъде вмъкнат), докато командите, които отстраняват само един знак или
|
||
изтриват само празни редове и знаци, извършват изтриване (така че не
|
||
можете да вмъкнете наново този текст).
|
||
|
||
>> Придвижете курсора до началото на ред, който не е празен. Тогава
|
||
въведете C-k, за да изрежете текста на този ред.
|
||
>> Въведете C-k втори път. Ще видите, че това изрязва знака за нов
|
||
ред, който следва реда.
|
||
|
||
Забележете, че единично C-k изрязва съдържанието на реда, а следващото
|
||
C-k изрязва целия ред и прави другите редове да се придвижат нагоре.
|
||
C-k обработва числовите аргументи по специален начин: премахват се
|
||
толкова на брой редове И тяхното съдържание. Това не е просто
|
||
повторение. C-u 2 C-k изрязва два реда и техните знаци за нов ред;
|
||
въвеждането на C-k два пъти не прави това.
|
||
|
||
Връщането обратно на текст се нарича "вмъкване". (Мислете за него
|
||
като за изваждане обратно, или дръпване обратно, на текст, който е бил
|
||
изрязан.) Можете да вмъквате изрязания текст или на същото място,
|
||
откъдето е бил премахнат, или на друго място в редактирания текст,
|
||
даже и в различен файл. Можете да вмъквате един и същ текст няколко
|
||
пъти; това прави няколко копия от него.
|
||
|
||
Командата за вмъкване е 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-x
|
||
u.
|
||
|
||
Обикновено C-x u отменя промените, направени от една команда; ако
|
||
повтаряте C-x u няколко пъти последователно, всяко повторение отменя
|
||
още една команда.
|
||
|
||
Но има две изключения: командите, които не променят текста, не се
|
||
броят (това включва придвижването на курсора и скролиращите команди),
|
||
и самовмъкващите се знаци обикновено се обработват на групи, всяка до
|
||
20 знака. (Това намалява броя на C-x u, които трябва да въведете, за
|
||
да отмените въведен текст.)
|
||
|
||
>> Изрежете този ред с C-k, след това въведете C-x u и той трябва да
|
||
се появи отново.
|
||
|
||
C-_ е алтернативна отменяща команда; тя работи точно като C-x u, но е
|
||
по-лесна за въвеждане няколко пъти последователно. Недостатъкът на
|
||
C_- е, че на някои клавиатури не е очевидно как трябва да се въведе.
|
||
Затова осигуряваме и C-x u. На някои терминали може да въведете C-_ с
|
||
въвеждане на /, докато задържате CONTROL.
|
||
|
||
Числов аргумент към C-_ или C-x u действа като брояч на повторенията.
|
||
|
||
Може да отменята изтриване на текст точно както отменяте изрязване на
|
||
текст. Различието между изрязването на нещо и изтриването му
|
||
въздейства дали ще може да го извадите с C-y; за отменянето няма
|
||
разлика между двата вида.
|
||
|
||
|
||
* ФАЙЛОВЕ
|
||
---------
|
||
|
||
За да направите текста, който редактирате, постоянен, трябва да го
|
||
сложите във файл. В противен случай той ще изчезне, когато Emacs
|
||
приключи. За да сложите вашия текст във файл, трябва да "намерите"
|
||
файла преди да въвеждате текст. (Това също се нарича "посещаване" на
|
||
файла.)
|
||
|
||
Намиране на файл означава, че виждате съдържанието му в Emacs. В
|
||
много случаи това е като да редактирате самия файл. Обаче промените,
|
||
които правите, използвайки Emacs, не остават постоянни, докато не
|
||
"запишете" файла. Това е така, за да се предотврати оставянето на
|
||
полупроменен файл в системата, когато не искате това. Дори когато
|
||
записвате, Emacs оставя началния файл под променено име, в случай, че
|
||
по-късно решите, че вашите промени са били грешка.
|
||
|
||
Ако погледнете в дъното на екрана, ще видите ред, който започва и
|
||
завършва с тирета и започва с "-R:-- TUTORIAL.bg" или нещо подобно.
|
||
Тази част от екрана показва името на файла, който сте посетили. Точно
|
||
сега вие сте посетили файл, наречен "TUTORIAL.bg", който е вашето
|
||
лично копие-чернова на Emacs въведението. Когато намерите файл в
|
||
Emacs, името на този файл ще се появи на същото място.
|
||
|
||
Особеност на командата за намиране на файл е, че трябва да кажете
|
||
името на файла, който искате. Ние го наричаме "четене на аргумент от
|
||
терминала" (в този случай аргументът е името на файла). След като
|
||
въведете командата
|
||
|
||
C-x C-f Намиране на файл
|
||
|
||
Emacs ви подканя да въведете името на файла. Името на файла, което
|
||
напишете, се появява в дъното на екрана. Редът в дъното на екрана се
|
||
нарича минибуфер, когато се използва за този вид вход. Можете да
|
||
използвате обикновените команди за редактиране на Emacs, за да
|
||
редактирате името на файла.
|
||
|
||
Когато въвеждате името на файла (или какъвто и да е вход в
|
||
минибуфера), можете да прекратите командата с C-g.
|
||
|
||
>> Въведете C-x C-f и след това C-g. Това прекратява минибуфера, а
|
||
също и командата C-x C-f, която се е изпълнявала в минибуфера.
|
||
Така че не намирате файл.
|
||
|
||
Когато приключите с въвеждането на името на файла, въведете <Return>,
|
||
за да покажете това. Тогава C-x C-f тръгва да работи и намира файла,
|
||
който сте избрали. Минибуферът изчезва, когато командата C-x C-f
|
||
свърши.
|
||
|
||
След малко съдържанието на файла се появява на екрана и вие можете да
|
||
редактирате съдържанието му. Когато пожелаете да запазите вашите
|
||
промени за постоянно, въведете командата
|
||
|
||
C-x C-s Запазване на файла
|
||
|
||
Това копира текста от Emacs във файла. Първия път, когато това се
|
||
направи, Emacs преименува началния файл с ново име, така че той да не
|
||
се изгуби. Новото име се построява с добавяне на "~" в края на името
|
||
на началния файл.
|
||
|
||
Когато запазването е свършило, Emacs извежда името на файла, който е
|
||
бил записан. Трябва да записвате достатъчно често, така че да не
|
||
изгубите много работа, ако системата се срине по някаква причина.
|
||
|
||
>> Въведете C-x C-s, запазвайки вашето копие от въведението.
|
||
Това трябва да изведе "Wrote ...TUTORIAL.bg" в дъното на екрана.
|
||
|
||
ЗАБЕЛЕЖКА: На някои системи въвеждането на C-x C-s ще замръзи екрана и
|
||
вие няма да виждате повече изход от Emacs. Това показва, че една
|
||
"способност" на операционната система, наричана "управление на потока"
|
||
(flow control), е прихванала C-s и не го пропуска към Emacs. За да
|
||
размразите екрана, въведете C-q. Тогава вижте секцията "Спонтанно
|
||
включване на постъпково търсене" (Spontaneous Entry to Incremental
|
||
Search) в ръководството на Emacs за съвет как да се справите с тази
|
||
"способност".
|
||
|
||
Може да намерите съществуващ файл, да го разгледате и да го
|
||
редактирате. Можете също да намерите файл, който не съществува. Това
|
||
е начинът за създаване на нови файлове в Emacs: намирате файла, който
|
||
ще бъде в началото празен, и тогава започвате вмъкването на текста за
|
||
файла. Когато говорите за "записване" на файл, Emacs всъщност ще
|
||
създаде файла с текста, който сте въвели. Оттам нататък може да
|
||
считате, че редактирате вече съществуващ файл.
|
||
|
||
|
||
* БУФЕРИ
|
||
--------
|
||
|
||
Ако намерите втори файл с C-x C-f, първият файл остава в Emacs.
|
||
Можете да превключите обратно към него, като го намерите пак с C-x
|
||
C-f. По този начин може да получите доста на брой файлове в Emacs.
|
||
|
||
>> Създайте файл с име "foo", въвеждайки C-x C-f foo <Return>.
|
||
Вмъкнете малко текст, редактирайте го и запазете "foo" с въвеждане
|
||
на C-x C-s.
|
||
Накрая въведете C-x C-f TUTORIAL.bg <Return>, за да се върнете
|
||
обратно във въведението.
|
||
|
||
Emacs запазва текста на всеки файл в обект, наричан "буфер".
|
||
Намирането на файл прави нов буфер в Emacs. За да видите списък на
|
||
буферите, които в момента съществуват във вашия Emacs, въведете
|
||
|
||
C-x C-b Показване на буферите
|
||
|
||
>> Опитайте C-x C-b сега.
|
||
|
||
Вижте как всеки буфер има име, а понякога и име на файл за файла,
|
||
чието съдържание държи. ВСЕКИ текст, който виждате в Emacs прозорец,
|
||
е винаги част от някакъв буфер.
|
||
|
||
>> Въведете C-x 1, за да махнете списъка с буферите.
|
||
|
||
Когато имате няколко буфера, само един от тях е "текущ" в даден момент
|
||
от време. Това е буферът, който редактирате. Ако искате да
|
||
редактирате друг буфер, се нуждаете от "превключване" към него. Ако
|
||
искате да се превключите към буфер, който съответства на файл, можете
|
||
да го направите, като просто посетите файла отново с C-x C-f. Но има
|
||
и по-лесен начин: използването на командата C-x b. В тази команда
|
||
трябва да въведете името на буфера.
|
||
|
||
>> Въведете C-x b foo <Return>, за да се върнете към буфера "foo",
|
||
който държи текста на файла "foo". Тогава въведете C-x b TUTORIAL
|
||
<Return>, за да се върнете в това въведение.
|
||
|
||
В повечето случаи името на буфера е същото като името на файла (без
|
||
частта в коя директория се намира). Обаче това не винаги е вярно.
|
||
Списъкът с буферите, който правите с C-x C-b, винаги ви показва името
|
||
на всеки буфер.
|
||
|
||
ВСЕКИ текст, който виждате в Emacs прозорец, е винаги част от някакъв
|
||
буфер. Някои буфери не съответстват на файлове. Например буферът,
|
||
именуван "*Buffer List*", не съответства на файл. Това е буферът,
|
||
който съдържа списъка с буферите, които сте направили с C-x C-b.
|
||
Буферът, именуван "*Messages*", също не съответства на файл; той
|
||
съдържа съобщенията, които се появяват в дъното на екрана по време на
|
||
Emacs сесията.
|
||
|
||
>> Въведете C-x b *Messages* <Return>, за да видите буфера със
|
||
съобщенията. След това въведете C-x C-b TUTORIAL <Return>, за да
|
||
се върнете към това въведение.
|
||
|
||
Ако направите промени в текста на един файл и тогава намерите друг
|
||
файл, това няма да запише първия файл. Неговите промени остават вътре
|
||
в Emacs, в буфера на файла. Създаването или редактирането на буфера
|
||
на втория файл няма ефект върху буфера на първия файл. Това е много
|
||
полезно, но също означава, че се нуждаете от удобен начин да запазите
|
||
буфера на първия файл. Ще е неудобно да превключите обратно с C-x
|
||
C-f, за да го запазите с C-x C-s. Така че имаме
|
||
|
||
C-x s Запазва някои буфери
|
||
|
||
C-x s пита за всеки буфер, който съдържа промени, които не сте
|
||
запазили. Въпросът за всеки такъв буфер е дали да бъде запазен.
|
||
|
||
>> Вмъкнете ред в текста, след това въведете C-x s.
|
||
Трябва да бъдете попитан дали да запазите буфера, именуван "TUTORIAL".
|
||
Отговорете с "да" на въпроса, като въведете "y".
|
||
|
||
|
||
* РАЗШИРЯВАНЕ НА НАБОРА КОМАНДИ
|
||
-------------------------------
|
||
|
||
Има много, много повече команди на Emacs, отколкото могат да се сложат
|
||
на всички контролни и мета знаци. Emacs заобикаля това с X (eXtended)
|
||
командата. Това става по два начина:
|
||
|
||
C-x Знаково разширяване. Последвано от един знак.
|
||
M-x Разширяване с именувана команда. Последвано от дълго
|
||
име.
|
||
|
||
Тези команди са общо взето полезни, но по-малко, отколкото командите,
|
||
които досега сте научили. Вече видяхте няколко от тях: например
|
||
командите върху файлове C-x C-f за намиране (Find) и C-x C-s за
|
||
запазване (Save). Друг пример е командата за край на Emacs сесията --
|
||
това е командата C-x C-c. (Не се безпокойте, че може да изгубите
|
||
всички промени, които сте направили; C-x C-c предлага да запази всеки
|
||
променен файл, преди да премахне Emacs.)
|
||
|
||
C-z е командата за излизане от Emacs *временно* -- така че да можете
|
||
да се върнете към същата Emacs сесия по-късно.
|
||
|
||
На системи, които позволяват това, C-z "изоставя" (suspend) Emacs,
|
||
т.е. връща към обвивката, но не разрушава Emacs. В повечето обвивки
|
||
можете да продължите Emacs сесията с командата "fg" или с "%emacs".
|
||
|
||
На системи, които не позволяват изоставяне, C-z създава нова
|
||
подобвивка, която върви под Emacs, за да ви даде шанс да стартирате
|
||
други програми и да се върнете към Emacs след това; това не е истинско
|
||
"излизане" от Emacs. В този случай командата на обвивката "exit" е
|
||
обикновеният начин да се върнете обратно към Emacs от подобвивката.
|
||
|
||
Моментът да използвате C-x C-c е, когато искате да излезете от
|
||
системата. Това е и правилната команда за излизане, когато Emacs е
|
||
извикан от пощенска програма или други странични програми, тъй като те
|
||
може и да не знаят как да се справят с изоставянето на Emacs. При
|
||
обикновени обстоятелства, обаче, ако не сте тръгнали да излизате от
|
||
системата, по-добре е да изоставите Emacs с C-z, вместо да излизате от
|
||
Emacs.
|
||
|
||
Има много команди C-x. Ето списък на тези, които сте научили:
|
||
|
||
C-x C-f Намиране на файл
|
||
C-x C-s Запазване на файл
|
||
C-x C-b Списък на буферите
|
||
C-x C-c Излизане от Emacs
|
||
C-x 1 Изтриване на всички прозорци, освен един
|
||
C-x u Отмяна
|
||
|
||
Именуваните разширени команди са команди, които се използват даже още
|
||
по-рядко, или команди, които се използват само в определени режими.
|
||
Пример е командата replace-string, която заменя глобално един низ с
|
||
друг. Когато въведете M-x, Emacs ви подсказва в дъното на екрана с
|
||
M-x и вие трябва да въведете името на командата, в този случай
|
||
"replace-string". Просто въведете "repl s<TAB>" и Emacs ще завърши
|
||
името. (<TAB> е клавишът Tab, обикновено намиращ се над клавиша
|
||
CapsLock или клавиша Shift близо до левия край на клавиатурата.)
|
||
Завършете името на командата с <Return>.
|
||
|
||
Командата replace-string изисква два аргумента -- низът, който ще бъде
|
||
заменян, и низът, който ще го замени. Трябва да завършите въвеждането
|
||
на всеки аргумент с <Return>.
|
||
|
||
>> Придвижете курсора до празния ред, два реда надолу под този.
|
||
Тогава въведете M-x repl s<Return>променя<Return>изменя<Return>
|
||
|
||
Забележете как този ред се променя: вие заменихте думата
|
||
п-р-о-м-е-н-я с "изменя", където и да се намира след началното
|
||
място на курсора.
|
||
|
||
ЗАБЕЛЕЖКА: Превключването към въвеждане на кирилски буква става с C-\.
|
||
|
||
|
||
* АВТОМАТИЧНО ЗАПАЗВАНЕ
|
||
-----------------------
|
||
|
||
Когато сте направили промени във файл, но още не сте го запазили, те
|
||
могат да бъдат загубени, ако компютърът внезапно се изключи. За да ви
|
||
предпази от такива ситуации, Emacs периодично запазва "автоматично
|
||
запазван" файл за всеки файл, който редактирате. Името на автоматично
|
||
запазвания файл има # в началото и в края; например, ако вашият файл е
|
||
с име "hello.c", името на неговия автоматично запазван файл ще бъде
|
||
"#hello.c#". Когато запазвате файл по обикновения начин, Emacs
|
||
изтрива неговия автоматично записван файл.
|
||
|
||
Ако компютърът зависне, може да възстановите вашата автоматично
|
||
запазвана редакция, като намерите файла както обикновено (файлът,
|
||
който сте редактирали, не автоматично запазвания) и след това въведете
|
||
M-x recover file<Return>. Когато командата изиска потвърждение,
|
||
въведете yes<Return>, за да продължите и да възстановите автоматично
|
||
запазваните данни.
|
||
|
||
|
||
* ЕХО ОБЛАСТТА
|
||
--------------
|
||
|
||
Ако Emacs види, че въвеждате многознакови команди бавно, ще ви ги
|
||
покаже в дъното на екрана, в област, наричана "ехо област". Ехо
|
||
областта обхваща последния ред от екрана.
|
||
|
||
|
||
* РЕД НА РЕЖИМА
|
||
----------------
|
||
|
||
Редът точно над ехо областта се нарича "ред на режима" (mode line).
|
||
Той показва нещо като:
|
||
|
||
-D:** TUTORIAL.bg 63% L749 (Fundamental)---------------------
|
||
|
||
Този ред дава полезна информация за състоянието на Emacs и текста,
|
||
който редактирате.
|
||
|
||
Вече знаете какво означава името на файла -- това е файлът, който сте
|
||
намерили. NN% показва вашата текуща позиция в текста; това означава,
|
||
че NN процента от текста е над върха на екрана. Ако началото на файла
|
||
е на екрана, ще се показва --Top-- (връх) вместо --00%--. Ако краят
|
||
на файла е на екрана, ще се показва --Bot-- (дъно). Ако гледате
|
||
текст, който е толкова малък, че се показва изцяло на екрана, редът на
|
||
режима ще изведе --All--.
|
||
|
||
Знакът L и цифрите показват мястото по друг начин: това е номерът на
|
||
текущия ред на точката.
|
||
|
||
Звездите близо до началото означават, че сте направили промени в
|
||
текста. Веднага след като посетите или запазите файл, тази част от
|
||
реда на режима вече не показва звезди, а само тирета.
|
||
|
||
Частта от реда на режима вътре в скобите е, за да ви покаже в какъв
|
||
режим на редактиране се намирате. Подразбиращият се режим е
|
||
Fundamental (Основен), който използвате в момента. Това е пример за
|
||
"главен режим" (major mode).
|
||
|
||
Emacs има много главни режими. Някои от тях са предвидени за
|
||
редактиране на различни езици и/или видове текст, като например режим
|
||
Лисп, режим Текст и други. Във всеки един момент от време точно един
|
||
главен режим е активен и неговото име може винаги да бъде намерено в
|
||
реда на режима, точно както "Fundamental" сега.
|
||
|
||
Всеки главен режим прави някои команди да се държат по различен начин.
|
||
Например, има команди за редактиране на коментари в програми, и тъй
|
||
като всеки програмен език има различна идея за това как трябва да
|
||
изглеждат коментарите, всеки главен режим трябва да вмъква коментари
|
||
по различен начин. Всеки главен режим е име на разширена команда, с
|
||
която превключвате към този режим. Например, M-x fundamental-mode е
|
||
команда за превключване към режим Fundamental.
|
||
|
||
Когато редактирате текст на естествен език, като този файл,
|
||
най-вероятно трябва да използвате режим Текст (text).
|
||
|
||
>> Въведете M-x text mode<Return>.
|
||
|
||
Не се безпокойте, никоя от Emacs командите, които сте научили, няма да
|
||
се промени по някакъв съществен начин. Но може да забележите, че M-f
|
||
и M-b сега възприемат апострофите (') като част от думите. Преди
|
||
това, в основния режим (Fundamental), M-f и M-b се възприемаха като
|
||
разделители на думи.
|
||
|
||
Главните режими обикновено правят малки промени като тази: повечето
|
||
команди вършат "същата работа" във всеки главен режим, но работят по
|
||
малко по-различен начин.
|
||
|
||
За да видите документацията на вашия текущ главен режим, въведете C-h
|
||
m.
|
||
|
||
>> Употребете C-u C-v веднъж или повече пъти, за да докарате този ред
|
||
близо до върха на екрана.
|
||
>> Въведете C-h m, за да видите как текстовият режим се различава от
|
||
основния режим.
|
||
>> Въведете C-x 1, за да премахнете документацията от екрана.
|
||
|
||
Главните режими се наричат главни, защото има и малки (второстепенни)
|
||
режими (minor modes). Малките режими не са алтернативи на главните, а
|
||
просто малки промени към тях. Всеки малък режим може да бъде включен
|
||
или изключен сам за себе си, независимо от всички други малки режими
|
||
и независимо от вашия главен режим. Така че може да не използвате
|
||
малки режими, да използвате един малък режим, или да използвате
|
||
някаква комбинация от няколко малки режима.
|
||
|
||
Един главен режим, който е много полезен, особено за редактиране на
|
||
текст на естествен език, е режимът на автоматично запълване (Auto Fill
|
||
mode). Когато този режим е включен, Emacs автоматично разделя реда
|
||
при мястото между думите, когато вмъквате текст и направите ред, който
|
||
е твърде дълъг.
|
||
|
||
Може да включите режима на автоматично запълване, като изпълните M-x
|
||
auto fill mode<Return>. Когато режимът е включен, може да го
|
||
изключите с M-x auto fill mode<Return>. Ако режимът е изключен, тази
|
||
команда го включва, а ако е включен, го изключва. Казваме, че
|
||
командата "обръща режима".
|
||
|
||
>> Въведете M-x auto fill mode<Return> сега. След това вмъкнете ред
|
||
от "asdf " отново и отново, докато не видите, че текстът се разделя
|
||
на два реда. Трябва да слагате интервали между думите, защото
|
||
автоматичното запълване разделя редовете само при интервалите.
|
||
|
||
Границата обикновено е зададена на 70 знака, но можете да я промените
|
||
с командата C-x f. Трябва да задавате тази граница като числов
|
||
аргумент на командата.
|
||
|
||
>> Въведете C-x f с аргумент 20. (C-u 2 0 C-x f).
|
||
Сега въведете някакъв текст и вижте как Emacs запълва редовете с по
|
||
не повече от 20 знака. После върнете обратно границата на 70,
|
||
използвайки C-x f отново.
|
||
|
||
Ако направите промени в средата на абзац, режимът на автоматично
|
||
запълване няма да го запълни наново за вас.
|
||
За да запълните наново абзац, въвеждайте M-q (META-q), докато курсорът
|
||
е вътре в абзаца.
|
||
|
||
>> Придвижете курсора вътре в предишния абзац и въведете M-q.
|
||
|
||
|
||
* ТЪРСЕНЕ
|
||
---------
|
||
|
||
Emacs може да извършва търсения на низове (това са последователности
|
||
от знаци или думи) или напред в текста, или назад в него. Търсенето
|
||
на низ е придвижваща курсора команда; тя премества курсора на
|
||
следващото място, където се среща низът.
|
||
|
||
Командата за търсене на Emacs се различава от командата за търсене на
|
||
повечето редактори по това, че тя е "постъпкова". Това означава, че
|
||
търсенето се извършва още докато въвеждате текста, който търсите.
|
||
|
||
Командата за започване на търсене е C-s за търсене напред, и C-r за
|
||
търсене назад. НО ПОЧАКАЙТЕ! Не ги пробвайте сега.
|
||
|
||
Когато въведете C-s, ще забележите, че низът "I-search" се появява
|
||
като подсказка в ехо областта. Това ви казва, че Emacs е в това,
|
||
което се нарича постъпково търсене, чакайки ви да въвеждате текста,
|
||
който искате да търсите. <Return> приключва търсенето.
|
||
|
||
>> Сега въведете C-s, за да започнете търсенето. БАВНО, буква по
|
||
буква, въведете думата "търсене", изчаквайки след въвеждането на
|
||
всеки знак, за да може да забележите какво става с курсора. Сега
|
||
извършихте търсене на "търсене" веднъж.
|
||
>> Въведете отново C-s, за да търсите друго съвпадение с "търсене".
|
||
>> Сега въведете <Delback> три пъти и вижте как се придвижва курсора.
|
||
>> Въведете <Return>, за да прекратите търсенето.
|
||
|
||
Забелязахте ли какво стана? Emacs, когато търси постъпково, се опитва
|
||
да намери следващото съвпадение на низа, който се въвежда. За да
|
||
отидете на следващото съвпадение на "търсне", просто отново въведете
|
||
C-s. Ако няма такова съвпадение, Emacs бибипва и ви казва, че
|
||
търсенето е "провалено" (failing). C-g също прекратява търсенето.
|
||
|
||
ЗАБЕЛЕЖКА: На някои системи въвеждането на C-s ще замрази екрана и вие
|
||
няма да може да видите повече реакция от Emacs. Това показва, че
|
||
"способност" на операционната система, наречена "управление на потока"
|
||
(flow control), е прихванала C-s и не го пропуска до Emacs. За да
|
||
размразите екрана, въведете C-q. Тогава вижте секцията "Спонтанно
|
||
включване на постъпковото търсене" (Spontaneous Entry to Incremental
|
||
Search) в ръководството на Emacs за съвет как да се справите с тази
|
||
"способност".
|
||
|
||
Ако сте в средата на постъпково търсене и въведете <Delback>, ще
|
||
забележите, че последният знак в търсения низ се изтрива и търсенето
|
||
се връща към последното място на търсене. Например, предположете, че
|
||
сте въвели "т", за да намерите първото съвпадение с "т". Сега, ако
|
||
въведете "ъ", курсорът ще се придвижи към първото съвпадение на "тъ".
|
||
Сега въведете <Delback>. Това изтрива знака "ъ" от низа за търсене и
|
||
курсорът се премества назад, до първото съвпадение с "т".
|
||
|
||
Ако сте в средата на търсене и въведете контролен или мета знак (с
|
||
няколко изключения -- знаците, които са специални по време на търсене,
|
||
като C-s и C-r), търсенето се прекратява.
|
||
|
||
C-s започва търсене, което гледа за съвпадение с низа, даден за
|
||
търсене СЛЕД текущото място на курсора. Ако искате да търсите нещо
|
||
по-ранно от текста, вместо това въведете C-r. Всичко, което казахме
|
||
за C-s, важи и за C-r, освен че посоката на търсене е обърната.
|
||
|
||
|
||
* МНОЖЕСТВО ПРОЗОРЦИ
|
||
--------------------
|
||
|
||
Една от привлекателните способности на Emacs е тази, че може да
|
||
гледате повече от един прозорец на екрана в даден момент от време.
|
||
|
||
>> Придвижете курсора до този ред и въведете C-u 0 C-l (това е
|
||
CONTROL-L, не CONTROL-1).
|
||
|
||
>> Сега въведете 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,
|
||
може да въвеждате 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, за да
|
||
изтриете долния.
|
||
|
||
|
||
* ВЛОЖЕНИ НИВА НА РЕДАКТИРАНЕ
|
||
-----------------------------
|
||
|
||
Понякога ще се озовете в това, което се нарича "вложено ниво на
|
||
редактиране" (recursive editing level). Това се отбелязва от
|
||
квадратни скоби в реда на режима, които ограждат скобите около името
|
||
на главния режим. Например, може да видите [(Fundamental)] вместо
|
||
(Fundamental).
|
||
|
||
За да се махнете от вложеното ниво на редактиране, въведете <ESC>
|
||
<ESC> <ESC>. Това е обща команда за "излизане". Може и да я
|
||
използвате за махане (скриване) на допълнителни прозорци, както и за
|
||
да се махнете от минибуфера.
|
||
|
||
>> Въведете M-x, за да влезете в минибуфер; тогава въведете <ESC> <ESC>
|
||
<ESC>, за да излезете.
|
||
|
||
Не можете да използвате C-g, за да излезете от вложено ниво на
|
||
редактиране. Това е така, защото C-g се използва за прекратяване на
|
||
команди и аргументи ВЪТРЕ във вложено ниво на редактиране.
|
||
|
||
|
||
* ПОЛУЧАВАНЕ НА ДОПЪЛНИТЕЛНА ПОМОЩ
|
||
----------------------------------
|
||
|
||
В това въведение се опитахме да осигурим достатъчно информация, за да
|
||
започнете да използвате Emacs. Има толкова много още в Emacs, че не е
|
||
възможно то да бъде обяснено всичкото тук. Обаче може да поискате да
|
||
научите повече за Emacs, тъй като той притежава още много полезни
|
||
способности. Emacs има команди за четене на документацията на Emacs
|
||
командите. Тези "помощни" команди всички започват със знака
|
||
CONTROL-h, който се нарича "знакът за помощ".
|
||
|
||
За да използвате възможностите на тази помощ, въведете знака C-h и
|
||
след това знака, казващ какъв вид помощ искате. Ако НАИСТИНА сте се
|
||
изгубили, въведете C-h ? и Emacs ще ви каже с какво може да ви
|
||
помогне. Ако сте въвели C-h и решите, че не се нуждаете от помощ,
|
||
просто въведете C-g, за да я прекратите.
|
||
|
||
(Някои компютри променят значението на знака C-h. Те наистина не
|
||
трябва да правят това като сляпа мярка за всички потребители, така че
|
||
имате основание да се оплачете на системния администратор. Между
|
||
другото, ако C-h не извежда съобщение за помощ в дъното на екрана,
|
||
опитайте клавиша F1 или M-x help <Return> вместо това.)
|
||
|
||
Най-основното помощно средство е C-h c. Въведете C-h, знака c и
|
||
команден знак или последователност от знаци, образуващи команда;
|
||
тогава Emacs ще изведе много кратко описание на командата.
|
||
|
||
>> Type C-h c C-p.
|
||
|
||
Изведеното описание трябва да бъде нещо като
|
||
|
||
C-p runs the command previous-line
|
||
(C-p изпълнява командата предишен-ред)
|
||
|
||
Това ви казва "името на функцията". Имената на функциите се използват
|
||
най-вече за настройване и разширяване на Emacs. Но тъй като имената
|
||
на функциите са избрани така, че да показват какво прави командата, те
|
||
могат да служат и за много кратка документация -- достатъчна, за да ви
|
||
припомни команди, които вече сте учили.
|
||
|
||
Многознакови команди, като C-x C-s и (ако нямате клавиш META или EDIT
|
||
или ALT) <ESC>v, също са позволени след C-h c.
|
||
|
||
За да получите още информация за команда, използвайте C-h k вместо C-h
|
||
c.
|
||
|
||
>> Въведете C-h k C-p.
|
||
|
||
Това извежда документацията на функцията, както и нейното име, в
|
||
отделен Emacs прозорец. Когато я прочетете, въведете C-x 1, за да
|
||
махнете помощния текст. Не е нужно да правите това точно сега. Може
|
||
да редактирате, докато се обръщате към помощния текст за справка, и
|
||
след това да въведете C-x 1.
|
||
|
||
Ето още няколко полезни C-h възможности:
|
||
|
||
C-h f Описва функция. Трябва да въведете името на
|
||
функцията.
|
||
|
||
>> Опитайте с въвеждане на C-h f previous-line<Return>.
|
||
Това извежда цялата информация, която Emacs знае за функцията,
|
||
която осъществява командата C-p.
|
||
|
||
Подобна команда, C-h v, извежда документацията на променливите, които
|
||
може да променяте, за да настройвате поведението на Emacs. Трябва да
|
||
въведете името на променливата, когато Emacs ви подскаже това.
|
||
|
||
C-h a Команда Апропос. Въведете ключова дума и Emacs ще
|
||
покаже списък на всички команди, чието име съдържа
|
||
тази ключова дума. Тези команди могат всички да бъдат
|
||
извикани чрез 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>, за да
|
||
четете ръководството на Emacs. Ако никога преди това
|
||
не сте използвали Info, въведете ? и Emacs ще включи
|
||
въведение във възможностите на режима Инфо. Веднъж
|
||
след като сте преминали това въведение, трябва да се
|
||
консултирате с Emacs Инфо ръководството като ваша
|
||
основна документация.
|
||
|
||
|
||
* ОЩЕ ВЪЗМОЖНОСТИ
|
||
-----------------
|
||
|
||
Може да научите повече за Emacs с четене на неговото ръководство, или
|
||
като книга, или в Инфо (използвайте менюто помощ (Help) или въведете
|
||
F10 h r). Две възможности, които може да желаете в началото, са
|
||
довършване (completion), което спестява писане, и dired, който
|
||
опростява боравенето с файлове.
|
||
|
||
Довършването е начин да избягвате ненужно писане. Например, ако
|
||
искате да превключите към буфера *Messages*, може да въведете C-x b
|
||
*M<Tab> и Emacs ще запълни останалата част от името на буфера,
|
||
доколкото може да се определи от това, което сте въвели. Довършването
|
||
е описано в Инфо-ръководството на Emacs в страницата "Довършване"
|
||
("Completion").
|
||
|
||
Dired ви позволява да гледате списъка от файлове в директория (и като
|
||
възможност: нейните поддиректории), да се придвижвате в този списък,
|
||
да посещавате, преименувате, изтривате и изобщо действате върху
|
||
файловете. Dired е описан в Инфо-ръководството на Emacs в страницата
|
||
"Dired".
|
||
|
||
Ръководството на Emacs описва още много други възможности на
|
||
редактора.
|
||
|
||
|
||
* ЗАКЛЮЧЕНИЕ
|
||
------------
|
||
|
||
Запомнете: за да излезете безвъзвратно от Emacs, използвайте C-x C-c.
|
||
За да излезете временно в обвивка, така че да се върнете в Emacs
|
||
по-късно, използвайте C-z.
|
||
|
||
Това въведение е предвидено да бъде разбираемо за всички нови
|
||
потребители, така че ако намирате нещо неясно, не се самообвинявайте
|
||
-- оплачете се!
|
||
|
||
|
||
* КОПИРАНЕ
|
||
----------
|
||
|
||
Това въведение произлиза от дълга поредица въведения в Emacs,
|
||
започвайки от едно, написано от Стюърт Кракрафт за началния Emacs.
|
||
|
||
Тази версия на въведението, както и GNU Emacs, е защитена с авторски
|
||
права и идва с разрешение да разпространявате копия при следните
|
||
условия:
|
||
|
||
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, 2002, 2003, 2004,
|
||
2005 Free Software Foundation, Inc.
|
||
|
||
Permission is granted to anyone to make or distribute verbatim copies
|
||
of this document as received, in any medium, provided that the
|
||
copyright notice and permission notice are preserved,
|
||
and that the distributor grants the recipient permission
|
||
for further redistribution as permitted by this notice.
|
||
|
||
Permission is granted to distribute modified versions
|
||
of this document, or of portions of it,
|
||
under the above conditions, provided also that they
|
||
carry prominent notices stating who last altered them.
|
||
|
||
Условията за копиране на самия Emacs са по-сложни, но в същия дух.
|
||
Моля, прочетете файла COPYING и тогава давайте копия на GNU Emacs на
|
||
свои приятели. Помогнете да спрем затвореността на програмите
|
||
("притежанието"), като използваме, пишем и споделяме свободен софтуер!
|
||
|
||
Преводът на български е извършен от Огнян Кулев
|
||
<ogi@fmi.uni-sofia.bg>.
|
||
|
||
;;; Local Variables:
|
||
;;; coding: windows-1251
|
||
;;; End:
|
||
;;; arch-tag: 70cf6ad7-c2e4-41fe-8199-74aa52683b0e
|