0.00
0 читателей, 2 топика

Emacs - учебник на русском языке

Просто тут его удобнее читать :)

 Учебник Emacs. Условия распространения приведены в конце файла.
 
Для управления Emacs обычно используются сочетания клавиш (key — сочетание
клавиш клавиатуры и/или кнопок мыши), включающие в себя клавишу CONTROL
(иногда отмечаемая как CTRL или CTL) или клавишу META (иногда помеченную как
ALT или EDIT). Вместо того, чтобы каждый раз писать META или CONTROL, мы
будем использовать следующие сокращения:
 
 C-<chr> — следует удерживать клавишу CONTROL, пока набирается символ
<chr>. Так, C-f должно означать: одновременно нажать клавиши CONTROL и f.
 M-<chr> — следует удерживать клавишу META, пока набирается символ
         <chr>. Если нет клавиши META, ALT или EDIT, то нажмите <ESC>,
         отпустите ее, а потом наберите символ <chr>.
 
Важное замечание: для завершения работы Emacs, наберите C-x C-c (два сочетания
клавиш).  Чтобы прервать частично набранную команду, нажмите C-g.
Символы ">>" с левой стороны указывают, что вам нужно делать, чтобы
попробовать применить команду. Например:
 
 
 
 
 
[Середина страницы оставлена пустой в учебных целях. Текст продолжается ниже]
 
 
 
 
 
>> Теперь нажмите 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 и PageDn для перемещения между
экранами (если они есть на вашем терминале), но вы сможете работать более
эффективно, если будете использовать сочетания C-v и M-v.
 
 
* БАЗОВЫЕ КОМАНДЫ УПРАВЛЕНИЯ КУРСОРОМ
-------------------------------------
 
Движение от экрана к экрану удобно, но как переместиться в определенную
точку в тексте на экране?
 
Есть несколько способов сделать это. Вы можете использовать клавиши
управления курсором (стрелки), но более эффективным будет сохранение рук в
их стандартной позиции и использовать команды C-p, C-b, C-f и C-n. Эти
команды эквивалентны четырем клавишам перемещения курсора, как это показано
на схеме:
 
 Предыдущая строка, C-p
 :
 :
         Назад, C-b… Текущая позиция курсора… Вперед, C-f
 :
 :
  Следующая строка, C-n
 
>> Переместите курсор на строку с центром диаграммы, используя сочетания
   клавиш C-n или C-p. Затем нажмите C-l и посмотрите как диаграмма
   переместится в центр экрана.
 
Вам будет несложно запомнить эти команды по первым буквам соответствующих
слов: P — предыдущий (previous), N — следующий (next), B — назад
(backward) и F — вперед (forward). Вы постоянно будете использовать эти
основные команды позиционирования курсора.
 
>> Нажмите несколько раз C-n, чтобы опустить курсор вниз к этой строке.
 
>> Переместитесь по строке, используя C-f, и потом поднимитесь вверх с
   помощью C-p. Посмотрите, как изменилось положение курсора при нажатии
   С-р, если он находился в середине строки.
 
Каждая строка текста завершается символом перевода строки (Newline
character), который отделяет ее от следующей строки. (Обычно, последняя
строка файла завершается символом перевода строки, но Emacs не требует
этого).
 
>> Попробуйте использовать C-b в начале строки. Курсор должен переместиться
   на конец предыдущей строки. Это происходит потому, что он движется назад
   через символ перевода строки.
 
C-f может перемещать курсор через символ перевода строки так же, как и C-b.
 
>> Попробуйте несколько раз применить C-b так, чтобы вы увидели, как
   движется курсор. Далее используйте сочетание клавиш C-f чтобы вернуться
   на конец строки. Нажмите C-f еще раз, чтобы перейти к началу следующей
   строки.
 
Когда вы перемещаетесь за верхний или нижний край экрана, текст, находящийся
за экраном, сдвигается внутрь экрана. Это называется «прокрутка»
(scrolling). Прокрутка позволяет 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 продолжает
движение курсора к следующему предложению. Это не совсем аналогично, но
выглядит естественно.
 
Положение курсора в тексте также называют «точкой вставки» (point). Скажем
иначе: курсор показывает место на экране в котором будет расположен вводимый
текст.
 
Вот список всех основных команд перемещения курсора, включая движение по
словам и предложениям:
 
C-fНа символ вперед
C-bНа символ назад
 
M-fНа слово вперед
M-bНа слово назад
 
C-nНа следующую строку
C-pНа предыдущую строку
 
C-aВ начало строки
C-eВ конец строки
 
M-aНазад, в начало предложения
M-eВперед, в конец предложения
 
>> Попробуйте сейчас несколько раз использовать все эти команды.
   Это наиболее часто используемые команды.
 
Две другие важные команды перемещения курсора: M-< (META Less-then
{Меньше-Чем}), которая перемещает курсор в начало текста, и M-> (META
Greater-than {Больше-Чем}), которая перемещает курсор в конец текста.
 
На большинстве терминалов знак "<" находится над знаком точки, и чтобы
набрать его, вы должны использовать клавишу 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, то должна
быть видна прямоугольная область, именуемая полосой прокрутки, расположенная
с одной из сторон окна Emacs. Вы можете прокручивать текст, щелкая кнопкой
мыши на полосе прокрутки.
 
Если ваша мышь имеет колесо прокрутки, вы можете использовать его.
 
* ЕСЛИ EMACS ЗАВИС
------------------
 
Если Emacs перестал реагировать на ваши команды, то вы можете вывести его из
этого состояния нажав C-g. Вы можете использовать C-g, чтобы остановить
выполнение команд, которые слишком долго выполняются.
 
Вы также можете использовать C-g для отмены набранного цифрового аргумента
или команды, которая начала выполняться, но которую вы не хотите завершить.
 
>> Наберите C-u 100 для задания аргумента 100, потом нажмите C-g. Теперь
   нажмите C-f. Курсор должен переместиться всего на один символ, потому что
   вы отменили аргумент нажатием C-g.
 
Если вы нажали <ESC> по ошибке, то вы так же можете использовать C-g чтобы
избежать воздействия данной команды.
 
 
* ЗАПРЕЩЕННЫЕ КОМАНДЫ (DISABLED COMMANDS)
-----------------------------------------
 
Некоторые команды Emacs «запрещены», так что начинающие пользователи не
смогут случайно использовать их.
 
Если вы набрали одну из запрещенных команд, то Emacs покажет сообщение,
говорящее о том, какая команда вызывается, и запросит у вас, хотите ли вы
продолжать работу и выполнить данную команду.
 
Если вы действительно хотите выполнить эту команду, то нажмите клавишу
<SPC> (пробел) в ответ на заданный вопрос. А если вы не хотите выполнить
запрещенную команду, то ответьте на вопрос нажатием клавиши «n».
 
>> Нажмите «C-x C-l» («запрещенная» команда), а потом ответьте «n» на
   заданный вопрос.
 
 
* ОКНА (WINDOWS)
------
 
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 и посмотрите, как окно с документацией исчезнет.
 
Эта команда отличается от других изученных команд, что она состоит из двух
сочетаний клавиш. Она начинается с сочетания CONTROL-x. Есть целый набор
команд, которые начинаются с CONTROL-x — многие из них работают с окнами,
буферами, файлами и т.п. вещами. Эти команды состоят из двух, трех или
четырех сочетаний клавиш.
 
 
* ВСТАВКА И УДАЛЕНИЕ
--------------------
 
Если вы хотите вставить текст, то просто набирайте его. Обычные символы,
такие как A, 7, *, и пр.  вставляются сразу как вы нажимаете на них. Чтобы
вставить символ новой строки нажмите <Return> (клавиша перевода каретки,
часто помечена как «Enter»).
 
Чтобы удалить символ перед курсором, нажмите клавишу <DEL>.  Обычно это
клавиша помеченная как «Backspace» — та самая клавиша, которую вы обычно
используете вне Emacs для удаления последнего набранного символа.
 
На клавиатуре может присутствовать и другая клавиша, помеченная как
«Delete», но она имеет другую функцию, отличную от <DEL>.
 
>> Попробуйте сделать это — наберите несколько символов, а затем удалите их
   нажимая <DEL>. Не волнуйтесь что этот файл изменяется — вы не изменяете
   учебник.  Это ваша личная копия учебника.
 
Когда строка текста становится слишком большой для строки экрана, то она
«продолжается» на следующей строке.  Если вы используете графический
дисплей, то небольшие изогнутые стрелки появятся на обоих сторонах экрана
(«fringes») чтобы показать, что строка продолжается с предыдущей
строки. Если вы используете текстовый терминал, то «продолжаемая» строка
обозначается символом «обратный слэш» («\») в правой части экрана.
 
>> Вводите текст, пока он не достигнет правой границы, и продолжайте вставку
   символов. Вы увидите что появится «продолжаемая» строка.
 
>> Используйте <DEL> для удаления текста до тех пор, пока строка снова не
   поместится в экран. Символ продолжения строки исчезнет с экрана.
 
Символ новой строки можно удалять точно так же, как и любой другой символ.
Удаление символа новой строки между двумя строками приведет к их склейке в
одну. Если полученная строка будет слишком длинной, чтобы вместиться в
экран, то она будет отображена как строка «с продолжением».
 
>> Переместите курсор в начало строки и нажмите <DEL>. Это соединит
   текущую строку с предыдущей.
 
>> Нажмите <Return> для вставки символа новой строки, вместо удаленного
   вами.
 
Помните, что многие команды Emacs могут получать счетчик повторения --
обычные символы не являются исключением. Вы можете вставлять по несколько
символов, используя счетчики повторений.
 
>> Попробуйте — наберите C-u 8 * для вставки ********.
 
Вы уже научились основам набора текста в Emacs и исправления ошибок. Вы
также можете удалять слова и строки. Вот основные операции удаления:
 
<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> — клавиша
пробела). Переместите курсор к другому концу текста, который вы собираетесь
«убить».  По мере того, как вы будете это делать, Emacs будет подсвечивать
текст между курсором и точкой, где вы нажали C-<SPC>. Затем нажмите C-w. Эта
операция убьет весь текст между двумя указанными позициями.
 
>> Переместите курсор к букве В в начале предыдущего параграфа.
>> Наберите C-<SPC>. Emacs должен отобразить в нижней части экрана сообщение
   «Mark set» (метка установлена).
>> Переместите курсор к букве о в слове «концов», на второй строке параграфа.
>> Нажмите C-w. Это удалит текст начиная с буквы В, и оканчивающийся перед
   буквой о.
 
Отличие между «убить» (killing) и «удалить» (deleting) заключается в том,
что «убитый» текст может быть заново вставлен (в любой точке), в то время
как «удаленные» части не могут быть вставлены (вы однако можете отменить
удаление — см. ниже). Вставка «убитого» текста называется «восстановление»
(yanking). В общем, команды, которые могут удалять большие части текста,
убивают этот текст (они настраиваются так, что вы можете восстановить
текст), в то время как команды, которые убирают только один символ, или
убирают только пустые строки и пробельные символы, выполняют операцию
удаления (так что вы не можете восстановить текст).  В простейшем случае,
без дополнительного аргумента, команды <DEL> и C-d выполняют удаление.
Однако, если им передан аргумент, то они «убивают» текст.
 
>> Переместите курсор на начало не пустой строки. Теперь нажмите C-k, чтобы
   убить текст в этой строке.
 
>> Нажмите C-k еще раз. Вы видите, что это действие убьет символ новой
   строки, который следует за этой строкой.
 
Заметьте, что первое выполнение C-k убивает содержимое строки, а второй
вызов C-k убивает саму строку и поднимает вверх другие строки. C-k
обрабатывает числовой аргумент специальным образом — убивает заданное
количество строк _И_ их содержимое. Это не просто повторение команды. C-u 2
C-k удалит две строки, а также завершающие их символы новой строки;
выполнение C-k два раза подряд этого не сделает.
 
Возврат убитого ранее текста называется «восстановление» (yanking). (Думайте
об этом, как о восстановлении или помещении назад некоторого взятого
текста). Вы можете восстановить убитый текст в месте удаления или в любой
другой точке редактируемого текста или даже в другом файле. Вы можете
восстановить текст несколько раз и получить несколько копий данного текста.
Некоторые редакторы называют операции «убить» и «восстановить» иначе:
«вырезать» (cutting) и «вставить» (pasting) (ознакомьтесь с глоссарием
(Glossary) в руководстве по Emacs).
 
Для восстановления убитого текста используется сочетание клавиш 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.
 
 
* ОТМЕНА (UNDO)
---------------
 
Если вы сделали изменения в тексте, и решили, что это была ошибка, то вы
можете отменить изменения с помощью команды «отмена» (undo), которая
привязана к сочетанию клавиш С-/.
 
Обычно, C-/ отменяет изменения, сделанные одной командой; если повторить
C-/ несколько раз подряд, то каждый раз будет отменяться еще одна команда.
 
Но есть два исключения: не учитываются команды не изменяющие текст (сюда
включаются команды перемещения курсора и прокрутки текста), а команды
вставки символов собираются в группы до 20 символов. (Это уменьшает число
нажатий C-/, которые вам нужно будет набрать для отмены ввода текста).
 
>> Убейте эту строку с помощью C-k, а затем наберите C-/, и строка должна
   вернуться назад.
 
C-_ — это еще команда отмены; она работает точно так же, как и C-/. На
некоторых текстовых терминалах, набор C-/ в действительности приводит к
отправке C-_.  Кроме того, вы можете использовать C-x u для выполнения этой
же операции, но эту команду менее удобно набирать
 
Числовой аргумент для C-/, C-_ или C-x u используется как счетчик повторений.
 
Вы можете отменить удаление текста точно так же, как и отмену «убития»
текста.  Отличие между убийством и удалением чего-либо заключается в том,
что вы можете восстановить убитый текст с помощью команды C-y; но для
команды отмены нет никакой разницы между этими операциями.
 
* ФАЙЛЫ
-------
 
Для того, чтобы сохранить отредактированный текст вы должны поместить его в
файл. Иначе он исчезнет, когда вы закончите работу Emacs. Чтобы поместить
ваш текст в файл, вы должны «найти (открыть)» (find) файл до ввода
текста. (Эту операцию также называют «посетить» (visiting) файл).
 
Открыть файл означает что вы видите его содержимое в Emacs.  Это практически
также как редактирование самого файла. Однако, ваши изменения, сделанные с
помощью Emacs, не будут сохранены, пока вы не сохраните файл.  Так что вы
можете не оставлять частично измененный файл в системе, если вы не хотите
его сохранять. Даже когда вы сохраняете файл, то Emacs оставляет
оригинальный файл, но с другим именем, на случай, если вы решите что ваши
изменения были ошибкой.
 
Если вы посмотрите в нижнюю часть экрана, то вы увидите строку, которая
начинается с тире, и начало которой выглядит примерно так " -:---  TUTORIAL.ru".
Эта часть экрана всегда показывает имя открытого вами файла. Итак, сейчас у
вас открыт файл с именем «TUTORIAL.ru», который является вашей персональной
копией учебника 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-s   Сохранить файл
 
Эта команда скопирует текст из Emacs в файл. В первый раз, когда вы это
сделаете, Emacs переименует оригинальный файл в файл с новым именем, так что
он не будет потерян. Имя файла с предыдущим содержимым получается
добавлением символа "~" к оригинальному имени файла.
 
Когда сохранение завершится, Emacs отобразит имя сохраненного файла. Вы
должны сохранять изменения достаточно часто, чтобы не потерять внесенные
изменения, если система вдруг «рухнет» (см. раздел «Автоматическое
сохранение» ниже).
 
>> Наберите C-x C-s TUTORIAL.ru <Return>.
   Эта команда должна сохранить вашу копию учебника в файле TUTORIAL.ru. В
   нижней строке экрана должна появиться надпись «Wrote ...TUTORIAL.ru».
 
Вы можете открыть существующий файл для просмотра или редактирования. Вы
также можете открыть файл, который еще не существует. Таким образом вы
можете создать файл с помощью Emacs: откройте несуществующий файл (Emacs
покажет его пустым) и вводите в него текст. Когда вы выполните команду
сохранения файла в первый раз, Emacs создаст настоящий файл с набранным
вами текстом. Далее, как вы поняли, вы будете редактировать уже существующий
файл.
 
 
* БУФЕРА (BUFFERS)
-----------------
 
Если вы откроете еще один файл с помощью C-x C-f, то предыдущий файл
остается внутри Emacs. Вы можете переключиться назад к предыдущему файлу,
открыв его снова с помощью C-x C-f. Таким образом вы можете загрузить
большое количество файлов в Emacs.
 
Emacs хранит текст каждого файла в объекте, называемом «буфер» (buffer).
Открытие файла создает новый буфер внутри 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». Затем
   наберите C-x b TUTORIAL.ru <Return> для возвращения в буфер с учебником.
 
Чаще всего имя буфера совпадает с именем файла (только без имени каталога).
Но иногда это не так. Список буферов, который вы создаете с помощью команды
C-x C-b, показывает вам имя буфера и имя файла для каждого буфера.
 
Некоторые буфера не относятся к файлам. Например, буфер с именем "*Buffer
List*", который создан с помощью C-x C-b и содержит список всех буферов, не
связан ни с каким файлом. Буфер с данным учебником также сначала не был
связан с файлом, но сейчас уже связан, поскольку в предыдущем разделе мы
использовали C-x C-s для сохранения его в файле.
 
Буфер с именем "*Messages*" также не связан ни с каким файлом; он содержит
сообщения, которые отображаются в самой нижней строке окна Emacs в течение
текущего сеанса работы с Emacs.
 
>> Наберите C-x b *Messages* <Return> для просмотра содержимого буфера
   сообщений. Затем наберите C-x b TUTORIAL.ru <Return> для возврата к
   учебнику.
 
Если вы изменили текст одного файла, а затем открываете другой, то текст в
первом буфере остается не сохраненным. Изменения останутся внутри Emacs, в
буфере, связанном с файлом. Создание или редактирование следующего буфера не
влияет на первый буфер. Это очень удобно, но имейте в виду, что вам нужно
иметь удобный способ сохранить буфер первого файла. Было бы неприятно каждый
раз возвращаться назад используя C-x C-f и потом использовать C-x C-s для
сохранения данных. Поэтому существует команда
 
C-x s     Сохранить некоторые буфера. (Save some buffers)
 
C-x s запрашивает у вас подтверждение о сохранении для каждого буфера,
который содержит не сохраненные изменения. Для каждого такого буфера у вас
запросят: сохранять или не сохранять изменения.
 
>> Вставьте строку текста, потом наберите C-x s.
   Должен появиться запрос: сохранять ли буфер с именем TUTORIAL.ru.
   Ответьте на запрос утвердительно нажатием клавиши «y».
 
 
* РАСШИРЕНИЕ НАБОРА КОМАНД
--------------------------
 
У Emacs очень много команд, и они все не могут быть назначены на control- и
meta- сочетания. Emacs решает эту проблему, используя X-команду (eXtend,
расширять). Есть два варианта:
 
C-xРасширение с помощью ввода префикса. За ним следует один символ.
M-xРасширение набора команд с помощью их именования. За ним
следует имя команды.
 
Это полезные команды, но они используются менее часто, чем те команды,
которые мы уже изучили. Вы уже видели некоторые из этих команд. Например,
команды работы с файлами: C-x C-f — открыть файл, и C-x C-s — сохранить
файл. Другой пример — команда завершения работы Emacs: C-x C-c.  (Не
волнуйтесь о том, что вы потеряете сделанные изменения, C-x C-c предлагает
сохранить изменения перед выходом из Emacs).
 
Если вы работаете на графическом дисплее, то вам не нужно выполнять
специальных команд чтобы переключится от Emacs к другой программе. Вы можете
сделать это используя мышь или соответствующее команды операционной системы.
Но когда вы используете текстовый терминал, который способен показывать
только одну программу в конкретный момент времени, то для переключения к
другой программе вам понадобится «приостановить» (suspend) Emacs.
 
C-z — это команда *временного* выхода из Emacs. Вы можете позже вернуться в
ту же сессию Emacs.  Когда Emacs запускается на текстовом терминале, команда
C-z «приостанавливает» (suspend) Emacs, т.е. она возвращает вас в командный
процессор (shell), но не завершает Emacs. В большинстве командных
процессоров вы можете вернуться в Emacs с помощью команды «fg» или "%emacs".
 
Чтобы покинуть Emacs используйте C-x C-c.  Это сочетание также используется,
чтобы выйти из 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Завершить Emacs
C-x 1Удалить все окна, кроме текущего
C-x uОтмена изменений
 
Именованные расширенные команды — это команды, которые используются гораздо
реже, или используются только в определенных режимах. В качестве примера
можно привести команду replace-string, которая заменяет одну строку на
другую во всем тексте. Когда вы наберете M-x, Emacs предложит вам ввести имя
команды; в нашем случае это команда «replace-string». Наберите лишь
«repl-s<TAB>», и Emacs дополнит имя. (<TAB> — это клавиша табуляции, обычно
находящаяся над клавишами CapsLock или Shift в левой части клавиатуры.)
Подтвердите имя нажатием <Return>.
 
Команда replace-string требует два аргумента — строку, которая будет
заменена, и строку, на которую нужно заменить. Вы должны завершать каждый
аргумент вводом <Return>.
 
>> Переместите курсор к пустой строке на две строчки ниже этой.
   Наберите M-x repl-s<Return>файл<Return>файлы<Return>.
 
   Заметьте, как эта строчка изменится: вы замените слово файл
   словом «файлы» везде, где оно встретится, ниже позиции курсора.
 
 
* АВТОМАТИЧЕСКОЕ СОХРАНЕНИЕ
---------------------------
 
Если вы измените файл, но не сохраните его, то в случае «падения» системы вы
можете потерять информацию. Чтобы защитить вас от этого, Emacs периодически
сохраняет каждый файл, который вы редактируете. Автоматически сохраняемый
файл имеет имя с символами "#" в начале и в конце.  Например, если ваш файл
называется «hello.c», то автоматически сохраненный файл будет называться
"#hello.c#". Когда вы сохраните файл обычным способом, Emacs удаляет
автоматически сохраненный файл.
 
Если система зависла, то вы можете восстановить ваши изменения, которые были
сохранены автоматически, путем открытия нужного файла (файла, который вы
редактировали, а не того, что бы сохранен автоматически) и затем набрав M-x
recover-file<Return>.  Когда у вас запросят подтверждение, наберите
yes<Return>, чтобы восстановить автоматически сохраненные данные.
 
 
* ОБЛАСТЬ ЭХА (ECHO AREA)
-------------------------
 
Если Emacs видит, что вы медленно набираете команды из нескольких сочетаний
клавиш, то он покажет их вам в нижней части экрана, в области называемой
«область эха» (echo area).  Область эха — это самая нижняя строка окна
Emacs.
 
 
* СТРОКА СОСТОЯНИЯ (MODE LINE)
-----------------------------
 
Строка сразу над областью эха называется «строкой состояния» (mode
line). Выглядит эта строка примерно так:
 
--:**  TUTORIAL.ru       63% L749    (Fundamental)-----------------------
 
Эта строка сообщает полезную информацию о состоянии Emacs и текста, который
вы редактируете.
 
Вы уже знаете, что означает имя файла — это файл, который вы открыли. NN%
показывает вашу текущую позицию в тексте.  Это означает что NN процентов
текста находятся выше начала окна. Если отображается начало текста, вы
увидите «Top» вместо «0%». Если отображается конец текста, то будет
отображено «Bot».  Если текст настолько мал, что вмещается в один экран, то
строка состояния сообщит «All».
 
Буква L и цифры показывают позицию другим способом — они показывают номер
строки в которой находится курсор.
 
Звездочки в начале строки означают, что вы изменяли текст. Сразу после
открытия или сохранения файла эта часть строки будет содержать не звездочки,
а тире.
 
Часть строки состояния внутри скобок сообщает вам о режиме редактирования,
который вы сейчас используете. Стандартный, или базовый, режим — Fundamental,
он используется и в данном учебнике. Это пример «основного режима» («major
mode»).
 
Emacs имеет много различных основных режимов. Некоторые из режимов
используются для редактирования текста на различных языках и/или различных
видов текста, такие как Lisp-режим, Text-режим и пр. В каждый момент
времени действует только один основной режим, и его название вы можете найти
в скобках — там, где сейчас находится слово «Fundamental» (базовый).
 
Каждый основной режим заставляет некоторые команды вести себя по разному.
Например, имеются команды создания комментариев в программе, и поскольку в
каждом языке программирования комментарии записываются по своему, то и
каждый основной режим вставляет их по разному. Каждый основной режим имеет
именованную команду, которая включает его. Например, M-x fundamental-mode --
это команда, которая включает базовый (Fundamental) режим.
 
Если вы редактируете текст на естественном языке, например, как этот файл,
то вы, вероятно должны переключ
Читать дальше →

Хороший верстальщик - это...

Начну-ка я цикл статей о хороших верстальщиках, только публиковать я в них буду не абстрактные и никому не нужные размышления, а полезные советы, которые могут пригодиться в верстке.

1. Экономия времени на добавление иконок к спискам документов:

Зачем добавлять несколько классов под каждую иконку, когда можно сделать вот так:

a[href$=".pdf"] {
    padding-left: 30px;
    background: url(ссылка/на/иконку.png) no-repeat;
}

Поддержка браузерами:
Chrome — есть
Firefox -1.0
IE — 7
Opera — 9
Safari — 3