<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guest</id>
		<title>Linuxformat - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guest"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/Guest"/>
		<updated>2026-05-13T11:07:53Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Emacs</id>
		<title>LXF77:Emacs</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Emacs"/>
				<updated>2010-02-08T17:08:49Z</updated>
		
		<summary type="html">&lt;p&gt;Guest: Исправил М-пробел на C-пробел в последнем абзаце(надеюсь не ошибся=) )&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Emacs для пользователя ==&lt;br /&gt;
''часть 1 И вновь продолжается бой! '''Александр Кузьменков''' подливает масла в огонь древнего противостояния Vi и не-Vi.''&lt;br /&gt;
&lt;br /&gt;
Emacs — пожалуй, один из самых известных проектов-долгожителей, разрабатываемых под лицензией GPL. Когда-то&lt;br /&gt;
давно, когда деревья были маленькими, а компьютеры -&lt;br /&gt;
большими, небезызвестный Ричард Столлмен (Richard Stollmen) начал&lt;br /&gt;
разрабатывать свою свободную Unix-подобную операционную систему&lt;br /&gt;
GNU (Gnu’s Not Unix). Ричард относительно легко справился с написанием комплекта компиляторов GCC и множества других программ, среди&lt;br /&gt;
которых был и Emacs, который задумывался им как текстовый редактор&lt;br /&gt;
для программирования. И хотя своей главной цели Столлман пока не достиг (проекту ОС GNU не хватает стабильного ядра: работа над Hurd ведется довольно вяло), его GCC и Emacs приобрели такую популярность,&lt;br /&gt;
что были портированы на большинство распространенных операционных систем и платформ.&lt;br /&gt;
&lt;br /&gt;
Наверняка вы уже наслышаны о «святых войнах юниксоидов» на&lt;br /&gt;
тему «Vim против Emacs», и скорее всего пробовали запускать Emacs.&lt;br /&gt;
А может быть, вы — приверженец Vim и решили посмотреть на вечного&lt;br /&gt;
конкурента своего любимого редактора?. Скорее всего потыкавшись в&lt;br /&gt;
кнопки, расположенные на панели инструментов, вы побыстрее закрыли его, чтобы с чистой совестью вернуться в любимый Kate/Gedit/Evim/Tea, где все просто, логично и знакомо. Да, Emacs никак не подходит&lt;br /&gt;
под определение «дружественной к пользователю программы» и вряд&lt;br /&gt;
ли вам понравится с первого взгляда, но поработав с ним недельку-другую и «заточив» под свои нужды, вы вряд ли будете продолжать использовать Kate/Gedit для правки текста, а KDevelop/Anjuta/Eclipse — в&lt;br /&gt;
качестве IDE. Подлинная мощь Emacs состоит в расширяемости: с помощью дополнительных компонентов он может заменить и почтовый&lt;br /&gt;
клиент, и web-браузер, и ICQ/Jabber/IRC-клиент, и даже MP3-плеер.&lt;br /&gt;
&lt;br /&gt;
Ядро Emacs, написанное на C, по сути, представляет собой интерпретатор языка Elisp (Emacs Lisp), а остальная часть редактора написана на этом языке. К чему такие сложности? На самом деле все довольно просто: Emacs — поистине огромный проект, и такой подход к разработке сделал его портирование на другие платформы и ОС довольно&lt;br /&gt;
несложным делом. То есть оно сводится к портированию ядра программы — интерпретатора Elisp.&lt;br /&gt;
&lt;br /&gt;
Cтоит упомянуть, что существует несколько различных версий&lt;br /&gt;
Emacs: это GNU Emacs, до сих пор поддерживаемый Ричардом&lt;br /&gt;
Столлменом; отпочковавшийся от него XEmacs; microEmacs, по слухам,&lt;br /&gt;
являющийся любимым редактором Линуса Торвальдса, и еще несколько других. Мы будем ориентироваться на GNU Emacs, как на самую рас-&lt;br /&gt;
пространенную версию, поскольку она есть во всех известных дистрибутивах, в отличие от тех же XEmacs и microEmacs.&lt;br /&gt;
&lt;br /&gt;
=== Основы основ ===&lt;br /&gt;
[[Изображение:img 77 83 1.png|thumb|Emacs по умолчанию.]]&lt;br /&gt;
[[Изображение:img 77 83 2.png|thumb|Emacs минималиста.]]&lt;br /&gt;
Давайте разберемся с тем, как работает этот монстр. Запустите Emacs&lt;br /&gt;
и нажмите C-x C-f. В терминологии Emacs С означает клавишу Ctrl, а&lt;br /&gt;
M — клавишу Meta, соответствующую клавишам Alt или Esc. То есть&lt;br /&gt;
«нажмите C-x C-f» означает, что вы должны нажать x при зажатом&lt;br /&gt;
Ctrl, а затем, не отпуская Ctrl, нажать f. Эта комбинация используется&lt;br /&gt;
для открытия и создания файлов, а для сохранения служит C-x C-s. Да,&lt;br /&gt;
вот такие неудобные на первый взгляд «горячие клавиши» выбраны в&lt;br /&gt;
Emacs для таких простых действий. Впрочем, стоит сказать, что каждый&lt;br /&gt;
опытный «емаксер» создает свою собственную раскладку клавиатурных&lt;br /&gt;
комбинаций. При нажатии C-x C-f в нижней части окна, называемой&lt;br /&gt;
минибуфером, появится приглашение к вводу имени файла для редактирования. Вы можете ввести имя как существующего файла (тогда он&lt;br /&gt;
откроется для редактирования), так и не существующего. В последнем&lt;br /&gt;
случае Emacs откроет пустой буфер, который впоследствии будет сохранен в указанный файл.&lt;br /&gt;
&lt;br /&gt;
Буфер — одно из ключевых понятий Emacs, он представляет собой&lt;br /&gt;
просто текст, открытый в данный момент в Emacs. На самом деле, это&lt;br /&gt;
определение довольно неточное, но для начала сойдет: проникнувшись философией Emacs, вы и сами увидите, что буфер может содержать что угодно — и таблицу процессов, и текст, и даже PNG-картинку.&lt;br /&gt;
По умолчанию при открытии Emacs создает два буфера — scratch и&lt;br /&gt;
Messages. О первом вы можете прочесть в соответствующей врезке, а&lt;br /&gt;
второй содержит отладочные сообщения редактора.&lt;br /&gt;
&lt;br /&gt;
Минибуфер поддерживает функцию автодополнения имен файлов/каталогов по клавише Tab, на манер командной оболочки Bash.&lt;br /&gt;
&lt;br /&gt;
Думаю, с открытием файла вы разобрались. Теперь попробуйте&lt;br /&gt;
открыть другой файл, или создать новый. Как видите, он открылся, но&lt;br /&gt;
куда делся предыдущий? Никуда — он просто находится в другом буфере! При открытии или создании файла Emacs создает для него новый&lt;br /&gt;
буфер, который становится активным. Для переключения между буферами используется комбинация C-x C-b, после нажатия которой в минибуфере появится приглашение к вводу имени буфера, на который вы&lt;br /&gt;
хотите переключится. Если вместо ввода имени буфера просто нажать&lt;br /&gt;
Enter, то Emacs переместит вас к предыдущему буферу.&lt;br /&gt;
&lt;br /&gt;
Для выхода из редактора служит комбинация C-x C-c. Если на момент выхода у вас будут измененные буферы, которые вы не сохранили,&lt;br /&gt;
обратите внимания на строку минибуфера — Emacs обязательно спросит, не хотите ли вы сохранить изменения. Для закрытия одного лишь&lt;br /&gt;
активного буфера применяется сочетание клавиш C-x C-k.&lt;br /&gt;
&lt;br /&gt;
Окно редактирования Emacs можно заставить отображать сразу несколько буферов, разделив его на несколько независимых частей. Для&lt;br /&gt;
разделения окна по горизонтали нажмите C-x 2, по вертикали — C-x 3.&lt;br /&gt;
Перемещаться между различными частями окна редактирования можно при помощи сочетания C-x o. Для того, чтобы вернуться в обычный&lt;br /&gt;
режим с отображением одного буфера в окне редактирования, нажмите&lt;br /&gt;
C-x 1. Обратите внимание, что активным станет тот буфер, в которым&lt;br /&gt;
вы находились до нажатия C-x 1.&lt;br /&gt;
&lt;br /&gt;
Конечно же, не все команды Emacs имеют горячие клавиши — функций у редактора слишком много, да и каждое установленное дополнение добавляет свои собственные. Поэтому все команды можно вводить в минибуфере вручную. Если вы просто щелкните мышью на&lt;br /&gt;
строке минибуфера, ничего путного из этого не выйдет. Для выполнения внутренних команд есть комбинация M-x (напомню, это Alt-x или&lt;br /&gt;
последовательное нажатие Esc и x). Давайте потренируемся. Нажмите&lt;br /&gt;
M-x, введите в минибуфер команду save-buffer (для имен команд так-же работает функция автодополнения) и нажмите Enter. В результате&lt;br /&gt;
активный буфер (то есть редактируемый в данный момент) будет сохранен в файл. Как вы уже, наверное, догадались, именно эта команда&lt;br /&gt;
привязана к комбинации C-x C-s.&lt;br /&gt;
&lt;br /&gt;
Если вы случайно нажмете C-x или, например M-x, или просто передумаете вызывать какую-нибудь внутреннюю команду, нажмите C-g.&lt;br /&gt;
После этого информация в минибуфере уничтожится, а сам он станет&lt;br /&gt;
неактивным.&lt;br /&gt;
&lt;br /&gt;
Процесс копирования-вставки в Emacs имеет свои особенности. Для копирования куска текста установите курсор на его начало и&lt;br /&gt;
нажмите С-пробел. В минибуфере в это время должно появиться сообщение Mark Set («метка установлена»). Теперь с помощью клавиш-стрелок, PgUp/PgDown или Home/End доберитесь до конца нужного&lt;br /&gt;
куска и нажмите C-w. Это команда вырезает часть текста и заносит его&lt;br /&gt;
в буфер обмена. Для копирования нажмите вместо C-w M-w, а для&lt;br /&gt;
вставки из буфера обмена — C-y. Конечно, можно вместо C-пробел&lt;br /&gt;
использовать для выделения мышь, но быть может вы такой же мышефоб, как и я? Когда вы выделяете текст мышью, он подсвечивается, а&lt;br /&gt;
при выделении с помощью комбинации C-пробел этого, по умолчанию,&lt;br /&gt;
не происходит. Это можно исправить, активировав в главном меню&lt;br /&gt;
опцию Active Region Highlighting (Transient Mark Mode), которая&lt;br /&gt;
находится в подменю Options.&lt;br /&gt;
&lt;br /&gt;
=== Путь к СУТРМ ===&lt;br /&gt;
Ну что ж, думаю, самые основы работы с Emacs вы постигли, давайте же&lt;br /&gt;
превратим его в СУТРМ , то есть в Самый Удобный Текстовый Редактор&lt;br /&gt;
в Мире. Во-первых, удалите файл .emacs из вашего домашнего каталога, если он там есть и перезапустите редактор — начнем, как говорится,&lt;br /&gt;
с чистого листа.&lt;br /&gt;
&lt;br /&gt;
Во-первых стоит рассказать Emacs’у, что мы по умолчанию хотим&lt;br /&gt;
сохранять наши файлы в кодировке koi8-r. Для этого выберите&lt;br /&gt;
в главном меню Options-&amp;gt;Mule (Multilingual Environment)-&amp;gt;Set&lt;br /&gt;
Language Environment-&amp;gt;Cyrillic-&amp;gt;Cyrillic-KOI8. Теперь, если хотите, включите подсветку активного участка текста: Options-&amp;gt;Active&lt;br /&gt;
Region Highlighting (Transient Mark Mode) и подсветку парных скобок: (Options-&amp;gt;Paren Match Highlighting (Show Paren Mode). Это,&lt;br /&gt;
пожалуй, все, что лично я доверяю «автоматике» Emacs’а. Сохраните&lt;br /&gt;
эти настройки, выбрав в меню Options-&amp;gt;Save Options, дальше мы&lt;br /&gt;
будем редактировать конфигурационный файл вручную.&lt;br /&gt;
&lt;br /&gt;
Главным конфигурационным файлом Emacs, как вы уже поняли,&lt;br /&gt;
является .emacs, находящийся в домашнем каталоге. Он, кстати, представляет собой самый настоящий скрипт на языке Emacs Lisp — именно поэтому его лучше редактировать вручную, тем более что в главном&lt;br /&gt;
меню Emacs доступно меньше 10 % всех настроек Emacs.&lt;br /&gt;
&lt;br /&gt;
Не кажется ли вам панель инструментов Emacs бесполезной? Мне&lt;br /&gt;
вот, например, кажется, тем более, что клавиатурные сочетания всех&lt;br /&gt;
кнопок, находящихся на ней, можно запомнить меньше чем за 10&lt;br /&gt;
минут. Для того, чтобы панель не появлялась при запуске Emacs, в&lt;br /&gt;
.emacs нужно добавить такую строку:&lt;br /&gt;
 (tool-bar-mode nil)&lt;br /&gt;
Истинные минималисты вроде меня могут добавить еще (menu-bar-mode nil) для скрытия главного меню и (scroll-bar-mode nil)&lt;br /&gt;
для удаления полос прокрутки. К меню всегда можно обратиться с помощью щелчка правой кнопки мыши в буфере при зажатом Ctrl. Кстати,&lt;br /&gt;
переключаться между буферами можно таким же образом, только&lt;br /&gt;
вместо правой кнопки используйте левую.&lt;br /&gt;
&lt;br /&gt;
Я знаю, вас раздражают эти C-x C-f и C-x C-s. Давайте же «перевесим» команды открытия и сохранения файла на другие комбинации.&lt;br /&gt;
Добавьте следующие строки в свой .emacs:&lt;br /&gt;
 (global-set-key «\C-s» ‘save-buffer)&lt;br /&gt;
 (global-set-key «\C-o» ‘find-file)&lt;br /&gt;
 (global-set-key «\M-f» ‘isearch-forward)&lt;br /&gt;
Таким образом мы назначили команды сохранения (save-buffer) и&lt;br /&gt;
открытия файла (find-file) на C-s и C-o соответственно. Но зачем мы&lt;br /&gt;
назначили на M-f какой-то isearch-forward? На самом деле это очень&lt;br /&gt;
удобная функция линейного поиска по тексту, которая по умолчанию&lt;br /&gt;
привязана к C-s (таким образом, без этой строки мы могли бы ее использовать лишь набрав вручную имя в минибуфере). Для поклонников&lt;br /&gt;
mcedit можно порекомендовать такую конфигурацию:&lt;br /&gt;
 (global-set-key [f2] ‘save-buffer)&lt;br /&gt;
 (global-set-key [f1] ‘find-file)&lt;br /&gt;
 (global-set-key [f7] ‘isearch-forward)&lt;br /&gt;
Подобным образом можно назначить любую комбинацию для&lt;br /&gt;
любой функции. Главное, не забывайте обрамлять сочетания клавиш&lt;br /&gt;
двойными кавычками (к функциональным клавишам это не относится)&lt;br /&gt;
и ставить перед именами функций апострофы.&lt;br /&gt;
&lt;br /&gt;
=== Наводим марафет ===&lt;br /&gt;
Вряд ли вас устраивает цветовая схема Emacs, которая установлена&lt;br /&gt;
по умолчанию, да и шрифты никуда не годятся: латинские одного размера, кириллические — другого. Нужно исправлять ситуацию. Для изменения цветов редактора предусмотрены функции set-face-background и&lt;br /&gt;
set-face-foreground. Первая отвечает за фон, вторая — за цвет раположенных на нем объектов. Например, в .emacs следующих строк:&lt;br /&gt;
 (set-face-background ‘default «red»)&lt;br /&gt;
 (set-face-foreground ‘default «blue»)&lt;br /&gt;
заставит Emacs выводить текст красными буквами на синем фоне&lt;br /&gt;
(адское сочетание! Не повторяйте этого дома, ну или хотя бы предварительно к окулисту запишитесь). Вместо «red» или «blue» можно использовать цвета вроде «#3743ec», так что откройте палитру в Gimp&lt;br /&gt;
и не ограничивайте себя всякими «green» и «black». Для изменения&lt;br /&gt;
цветов меню нужно заменить ‘default на ‘menu.&lt;br /&gt;
&lt;br /&gt;
Я предпочитаю использовать немного другой способ, который потребует значительно меньше телодвижений. Наверняка в вашем домашнем каталоге есть файл с описанием параметров ресурсов X-Window&lt;br /&gt;
(он обычно называется .Xresources или .Xdefaults). Если его нет — создайте его и внесите в этот файл всего две строки:&lt;br /&gt;
 Emacs*background: #3d3d3d&lt;br /&gt;
 Emacs*foreground: #e1e1e1&lt;br /&gt;
Теперь запустите xrdb ~/.Xresources для обновления параметров ресурсов. После этого и в меню, и в панели инструментов, и в буфере фоном будет «#3d3d3d», а цветом переднего плана (шрифта) -&lt;br /&gt;
«#e1e1e1». Гораздо удобнее, не правда ли?&lt;br /&gt;
&lt;br /&gt;
Так же дело обстоит и со шрифтами: есть функции set-face-font,&lt;br /&gt;
работающие таким же образом, как и set-face-background, но удобнее использовать .Xresources. Мне нравится полужирный шрифт&lt;br /&gt;
terminus:&lt;br /&gt;
 Emacs*font: -xos4-terminus-bold-r-normal--14-140-72-72-c-80-koi8-r&lt;br /&gt;
Для выбора шрифта (а заодно и корректного составления его имени) рекомендую воспользоваться утилитой xfontsel, входящей в комплект X-Window.&lt;br /&gt;
&lt;br /&gt;
Что ж, надеюсь, теперь вам приятнее смотреть на ваш Emacs…&lt;br /&gt;
&lt;br /&gt;
=== Проверка орфографии ===&lt;br /&gt;
[[Изображение:img 77 84 1.png|300px|thumb|Ispell не знает слова «юниксоид». Непростительная ошибка!]]&lt;br /&gt;
Что еще не помешало бы текстовому редактору? Наверное, проверка&lt;br /&gt;
орфографии. В Emacs для проверки орфографии используется внешняя утилита ispell. Плюс ко всему существует специальный режим -&lt;br /&gt;
flyspell-mode (для его работы также необходима ispell), который&lt;br /&gt;
сделан на манер проверки орфографии в текстовых процессорах: вы&lt;br /&gt;
печатаете слово, а flyspell сразу же проверяет его. Если такое слово&lt;br /&gt;
не найдено в словаре, оно выделяется и подчеркивается. Щелкнув&lt;br /&gt;
на подчеркнутом слове средней кнопкой мыши, вы сможете выбрать&lt;br /&gt;
нужный вариант из тех, что подобрал flyspell или занести это слово&lt;br /&gt;
в словарь. Разумеется, для работы flyspell вы должны установить в&lt;br /&gt;
своей системе пакеты ispell и ispell-ru. Если ispell есть практически в любом дистрибутиве, то с ispell-ru (который содержит русский&lt;br /&gt;
словарь для ispell) не все так гладко. Если вы не найдете его в своем дистрибутиве, вам придется скачать один из словарей отсюда:&lt;br /&gt;
http://fmg-www.cs.ucla.edu/geoff/ispell-dictionaries.html.&lt;br /&gt;
&lt;br /&gt;
После этого нужно указать Emacs, чтобы он использовал для проверки орфографии русский словарь. За имя словаря, используемого&lt;br /&gt;
ispell и flyspell, отвечает внутренняя переменная ispell-dictionary.&lt;br /&gt;
Очевидно, необходимо установить для нее значение «russian». Есть&lt;br /&gt;
несколько способов сделать это. Если хотите установить какую-либо&lt;br /&gt;
переменную только для текущего сеанса, то для этого прекрасно подойдет функция customize-variable. Но если вы захотите, например,&lt;br /&gt;
всегда использовать русский словарь, то проще прописать значение&lt;br /&gt;
соответствующей переменной в файл .emacs:&lt;br /&gt;
 (setq flyspell-dictionary «russian»)&lt;br /&gt;
Давайте назначим командам проверки орфографии какие-нибудь&lt;br /&gt;
простые комбинации:&lt;br /&gt;
 (global-set-key [f11] ‘ispell-buffer)&lt;br /&gt;
 (global-set-key [f12] ‘flyspell-mode)&lt;br /&gt;
Теперь по клавише F12 вы сможете включать/выключать режим&lt;br /&gt;
проверки «на лету», а по F11 производить пошаговую проверку.&lt;br /&gt;
Возможно у читателя появится вопрос — а зачем нужно возиться с&lt;br /&gt;
Emacs, если тот же Vim/Gedit/Kate подходит для удобного редактирования текста практически «из коробки»? Да, но ведь к Vim’у тоже нужно&lt;br /&gt;
привыкать, а без документации использование Vim сродни ловле черного кота в темной комнате — можно ориентироваться только по звуку. Ну&lt;br /&gt;
и наконец, если вы являетесь приверженцем Vim, почему бы просто из&lt;br /&gt;
любопытства не посмотреть на то, как ваши любимые функции реализованы в Emacs? Kate/Gedit конечно же очень просты, однако в них нет и&lt;br /&gt;
двадцатой части функций Emacs.&lt;br /&gt;
&lt;br /&gt;
Да, Emacs довольно непрост в конфигурировании, но зато настройке поддается абсолютно все!&lt;br /&gt;
&lt;br /&gt;
К сожалению, современной русскоязычной документации по Emacs&lt;br /&gt;
не существует, есть лишь перевод руководства к уже давно устаревшей&lt;br /&gt;
19-й версии от Алекса Отта (см. http://linux.org.ru/books/emacsmanual).&lt;br /&gt;
Впрочем, разобраться с Emacs можно и без официального&lt;br /&gt;
руководства, благо теперь вы знаете основы, так что дальше дело пойдет быстрее. Некоторое количество полезной информации можно почерпнуть из Emacs wiki (http://www.emacswiki.org), на которой есть&lt;br /&gt;
и русскоязычный раздел.&lt;br /&gt;
&lt;br /&gt;
В крайнем случае, если вам что-то непонятно, пишите мне на [mailto:rc_4096@list.ru rc_4096@list.ru].&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Собери сам&lt;br /&gt;
|Содержание=Эта врезка специально для неутомимых экспериментаторов, которые всегда хотят иметь самые новые версии программ, и при этом готовы мириться с возможными ошибками.&lt;br /&gt;
&lt;br /&gt;
Среди пользователей Vim широко распространено мнение о том, что, дескать, разработка Emacs ведется слишком медленно, поэтому новые версии выпускаются слишком редко. На самом же деле Emacs обновляется каждый&lt;br /&gt;
день – достаточно посмотреть на CVS.&lt;br /&gt;
&lt;br /&gt;
Emacs с каждым новым релизом содержит все больше&lt;br /&gt;
и больше модулей: разработчики следят за тем, какие&lt;br /&gt;
модули пользуются наибольшей популярностью, и стараются включить их в следующую стабильную версию редактора. Да и сами создатели модулей часто проявляют инициативу. Так, например, в 22-ю версию, которая сейчас&lt;br /&gt;
активно развивается, попали популярные модули ido (см.&lt;br /&gt;
врезку) и cua, позволяющий использовать стандартные&lt;br /&gt;
для Windows/MacOS-программ горячие клавиши (кстати,&lt;br /&gt;
ido и cua – творения одного человека – Kim F. Storm, см.&lt;br /&gt;
http://www.cua.dk).&lt;br /&gt;
&lt;br /&gt;
В новой версии улучшена поддержка Unicode, появилась новая документация (в том числе и на русском&lt;br /&gt;
языке). Кроме того, теперь для сборки редактора можно&lt;br /&gt;
использовать GTK2, что, безусловно, порадует ценителей&lt;br /&gt;
прекрасного.&lt;br /&gt;
&lt;br /&gt;
Итак, если вы хотите уже сейчас воспользоваться всеми&lt;br /&gt;
благами Emacs 22, то приготовьтесь к трудностям: рабочие&lt;br /&gt;
снимки CVS-дерева регулярно никто не выкладывает. А&lt;br /&gt;
поскольку редактор обновляется каждый день, невозможно&lt;br /&gt;
точно сказать, соберется у вас сегодняшняя версия или нет.&lt;br /&gt;
&lt;br /&gt;
Если вас это не пугает, то можно приступить к получению CVS-дерева:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;export CVS_RSH=&amp;quot;ssh&amp;quot;&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs&amp;lt;/source&amp;gt;&lt;br /&gt;
После завершения этой довольно длительной операции&lt;br /&gt;
(еще бы, исходные тексты Emacs со всеми включенными&lt;br /&gt;
модулями занимают около 90 Мб!) можно приступить к&lt;br /&gt;
сборке:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd emacs&lt;br /&gt;
./configure --prefix=/usr --with-xpm --with-jpeg --with-tiff --with-png --with-gtk&lt;br /&gt;
make bootstrap&lt;br /&gt;
make install&amp;lt;/source&amp;gt;&lt;br /&gt;
Опция --with-gtk говорит о том, что Emacs будет собран с поддержкой GTK2. Опции --with-xpm --with-jpeg&lt;br /&gt;
--with-tiff и --with-png, в принципе, можно и не указывать – если вам не нужна поддержка соответствующих&lt;br /&gt;
графических форматов (да, в Emacs можно смотреть картинки!).&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Буфер *scratch*&lt;br /&gt;
|Содержание=Многие специально отключают этот буфер, а зря: никаких&lt;br /&gt;
неудобств он не создает, а вот кое-какую пользу из него&lt;br /&gt;
извлечь можно. Содержащийся в нем текст гласит, что&lt;br /&gt;
его можно использовать для временного хранения какого-нибудь текста или для выполнения Lisp-операций. То есть&lt;br /&gt;
это простейший интерфейс для Emacs Lisp. Попробуйте,&lt;br /&gt;
например, ввести такое выражение:&lt;br /&gt;
 (+ 3 4)&lt;br /&gt;
и для перехода на новую строку нажать не Enter, а C-j.&lt;br /&gt;
Как видите, интерпретатор Elisp выдал ответ: 7. Таким&lt;br /&gt;
образом, этот буфер можно использовать как&lt;br /&gt;
продвинутый калькулятор с поддержкой переменных,&lt;br /&gt;
сложных функций, рекурсии. Если, конечно, привыкните&lt;br /&gt;
к обратной польской записи и скобкам, принятым во&lt;br /&gt;
всех диалектах Lisp. Попробуйте еще несколько&lt;br /&gt;
примеров:&lt;br /&gt;
 (- (+ 5 9) (- 4 9))&lt;br /&gt;
 (* (+ (/ 90 10) (+ 2 3)) (sqrt 4))&lt;br /&gt;
 (setq g 9.8)&lt;br /&gt;
 (* 5 g)&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Начинающему Емаксеру&lt;br /&gt;
|Содержание=&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Действие&lt;br /&gt;
!Клавиатурная комбинация&lt;br /&gt;
!Название функции&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Создать/Открыть файл {{!}}{{!}}C-x C-f {{!}}{{!}}find-file&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить буфер в файл {{!}}{{!}}C-x C-s {{!}}{{!}}save-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить буфер под новым именем {{!}}{{!}}C-x C-w {{!}}{{!}}save-with-newname&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить все измененные буферы в файлы {{!}}{{!}}C-x s {{!}}{{!}}save-some-buffers&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Переключиться в другой буфер {{!}}{{!}}C-x C-b {{!}}{{!}}switch-to-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно редактирования и открыть другой буфер {{!}}{{!}}— {{!}}{{!}}switch-to-buffer-other-window&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Закрыть активный буфер {{!}}{{!}}C-x k {{!}}{{!}}kill-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Установить метку {{!}}{{!}}C-&amp;lt;пробел&amp;gt; {{!}}{{!}}set-mark-command&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Вырезать выделенный текст {{!}}{{!}}C-w {{!}}{{!}}kill-region&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Скопировать выделенный текст {{!}}{{!}}M-w {{!}}{{!}}copy-region-as-kill&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Вставить скопированый/вырезаный текст {{!}}{{!}}C-y {{!}}{{!}}yank&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно по горизонтали {{!}}{{!}}C-x 3 {{!}}{{!}}split-window-horizontally&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно по вертикали {{!}}{{!}}C-x 2 {{!}}{{!}}split-window-vertically&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Поиск текста с подсветкой всех найденных участков {{!}}{{!}}C-s {{!}}{{!}}isearch-forward&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Отменить последнюю операцию {{!}}{{!}}C-x u {{!}}{{!}}undo&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Выйти из минибуфера {{!}}{{!}}C-g {{!}}{{!}}keyboard-quit&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Закрыть Emacs {{!}}{{!}}C-x C-c {{!}}{{!}}save-buffers-kill-emacs&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=N причин, по которым Emacs лучше Vim&lt;br /&gt;
|Содержание=Думаю, после прочтения статьи приверженцы&lt;br /&gt;
редактора Vim очень хотят услышать ответ на вопрос, чем&lt;br /&gt;
же все-таки Emacs лучше, чем Vim.&lt;br /&gt;
&lt;br /&gt;
Около полугода назад у меня были установлены оба&lt;br /&gt;
этих редактора, и оба казались мне жутко неудобными.&lt;br /&gt;
Для правки конфигурационных файлов я предпочитал&lt;br /&gt;
использовать nano, а для редактирования исходных&lt;br /&gt;
текстов – mcedit. Так и продолжалось, пока я не стал&lt;br /&gt;
изучать документацию по Vim и Emacs. Обнаружилась&lt;br /&gt;
интересная вещь – к Vim в его первоначальном виде&lt;br /&gt;
привыкнуть гораздо легче, да и к сносному&lt;br /&gt;
редактированию чего угодно он готов сразу же. Emacs же&lt;br /&gt;
требует настройки любой мелочи, зато его можно&lt;br /&gt;
превратить хоть в nano, хоть в IDE Visual C++.&lt;br /&gt;
&lt;br /&gt;
По количеству расширений Emacs оставляет Vim&lt;br /&gt;
далеко позади. Да и функциональность Vim’овских&lt;br /&gt;
скриптов по сравнению с расширениями Emacs оставляет&lt;br /&gt;
желать лучшего. Так, например, Vim’овского аналога&lt;br /&gt;
Emacs Code Browser (ecb) и LaTeX-preview мне найти так и&lt;br /&gt;
не удалось, как не удалось найти и других, не столь&lt;br /&gt;
значимых для меня вещей. Emacs лучше интегрируется&lt;br /&gt;
со сторонними приложениями: попробуйте заставить Vim&lt;br /&gt;
работать с Maxima или Gnuplot. В основном это заслуга&lt;br /&gt;
Emacs Lisp, на котором очень просто дописываются те&lt;br /&gt;
функции, которых вам не хватает.&lt;br /&gt;
&lt;br /&gt;
Если редактор вам нужен только для правки&lt;br /&gt;
конфигурационных файлов, то вам одинаково подойдут&lt;br /&gt;
и Emacs, и Vim. Если же вы намерены получить от&lt;br /&gt;
текстового редактора нечто большее, то просто&lt;br /&gt;
установите и тот, и другой, и вы сами без труда найдете&lt;br /&gt;
эти самые N причин. Ну а если вы не хотите тратить&lt;br /&gt;
время на чтение документации и настройку «какого-то&lt;br /&gt;
там текстового редактора», то может быть стоит&lt;br /&gt;
попробовать jEdit?&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=ido.el&lt;br /&gt;
|Содержание=Несмотря на функцию автодополнения, вас наверняка раздражает&lt;br /&gt;
отсутствие в Emacs обычного диалога открытия файла. Но ведь будь в Emacs&lt;br /&gt;
такой диалог, любители делать-все-только-с-клавиатуры справедливо бы&lt;br /&gt;
возмутились. Тем не менее, к Emacs есть отличное дополнение, делающее&lt;br /&gt;
открытие файла и переключение между буферами невероятно простым и&lt;br /&gt;
приятным. Называется оно ido, и, как и все дополнения к Emacs, представляет&lt;br /&gt;
собой обычный Elisp-скрипт. Получить ido.el можно на сайте разработчика&lt;br /&gt;
http://www.cua.dk. Давайте рассмотрим установку этого дополнения.&lt;br /&gt;
&lt;br /&gt;
Для активации и использования функций любого дополнения Emacs, его&lt;br /&gt;
нужно поместить в директорию автоматической загрузки (load-path).&lt;br /&gt;
Рекомендую вам создать в своем домашнем каталоге директорию emacs, в&lt;br /&gt;
которой будут располагаться дополнения. Скопируйте ido.el в ~/emacs/, а в .emacs добавьте следующие строки:&lt;br /&gt;
 (add-to-list ‘load-path «~/emacs»)&lt;br /&gt;
 (require ‘ido)&lt;br /&gt;
Первая строка добавляет ~/emacs в список директорий автозагрузки,&lt;br /&gt;
вторая говорит о том, что при запуске редактора необходимо загрузить файл&lt;br /&gt;
ido.el. Это значит, что теперь в редакторе стали доступны функции&lt;br /&gt;
дополнения ido.el – в данном случае их имена начинаются с ido-. Однако для&lt;br /&gt;
активации дополнения этого недостаточно, нужно еще включить ido-режим:&lt;br /&gt;
 (ido-mode t)&lt;br /&gt;
Слово «t» в различных диалектах языка Lisp означает «true». Тем самым вы&lt;br /&gt;
включили дополнение, и теперь можете посмотреть, как будет огранизовано&lt;br /&gt;
открытие файла (нажмите C-x C-f). Отныне к этой комбинации привязана&lt;br /&gt;
функция ido-find-file (это произошло после включение режима ido-mode).&lt;br /&gt;
Для перемещения между директориями в ido-find-file можно использовать&lt;br /&gt;
кнопки-стрелки, для выбора файла/директории – Enter, для выхода в&lt;br /&gt;
родительский каталог – Backspace. Намного удобнее, чем обычный find-file, не&lt;br /&gt;
правда ли? Подобным же образом теперь работает и переключение между&lt;br /&gt;
буферами (C-x C-b).&lt;br /&gt;
&lt;br /&gt;
Если вы будете постоянно пользоваться этим дополнением, логично было бы&lt;br /&gt;
переназначить функции ido-find-file и ido-switch-buffer на более удобные&lt;br /&gt;
комбинации:&lt;br /&gt;
 (global-set-key [f1] ‘ido-find-file)&lt;br /&gt;
 (global-set-key [f11] ‘ido-switch-buffer)&lt;br /&gt;
[[Изображение:img 77 85 1.png|thumb|center|570px|Вот так преобразился процесс открытия файлов и переключения между буферами.]]&lt;br /&gt;
|Ширина=}}&lt;/div&gt;</summary>
		<author><name>Guest</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Emacs</id>
		<title>LXF77:Emacs</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Emacs"/>
				<updated>2010-02-01T11:28:55Z</updated>
		
		<summary type="html">&lt;p&gt;Guest: /* Проверка орфографии */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Emacs для пользователя ==&lt;br /&gt;
''часть 1 И вновь продолжается бой! '''Александр Кузьменков''' подливает масла в огонь древнего противостояния Vi и не-Vi.''&lt;br /&gt;
&lt;br /&gt;
Emacs — пожалуй, один из самых известных проектов-долгожителей, разрабатываемых под лицензией GPL. Когда-то&lt;br /&gt;
давно, когда деревья были маленькими, а компьютеры -&lt;br /&gt;
большими, небезызвестный Ричард Столлмен (Richard Stollmen) начал&lt;br /&gt;
разрабатывать свою свободную Unix-подобную операционную систему&lt;br /&gt;
GNU (Gnu’s Not Unix). Ричард относительно легко справился с написанием комплекта компиляторов GCC и множества других программ, среди&lt;br /&gt;
которых был и Emacs, который задумывался им как текстовый редактор&lt;br /&gt;
для программирования. И хотя своей главной цели Столлман пока не достиг (проекту ОС GNU не хватает стабильного ядра: работа над Hurd ведется довольно вяло), его GCC и Emacs приобрели такую популярность,&lt;br /&gt;
что были портированы на большинство распространенных операционных систем и платформ.&lt;br /&gt;
&lt;br /&gt;
Наверняка вы уже наслышаны о «святых войнах юниксоидов» на&lt;br /&gt;
тему «Vim против Emacs», и скорее всего пробовали запускать Emacs.&lt;br /&gt;
А может быть, вы — приверженец Vim и решили посмотреть на вечного&lt;br /&gt;
конкурента своего любимого редактора?. Скорее всего потыкавшись в&lt;br /&gt;
кнопки, расположенные на панели инструментов, вы побыстрее закрыли его, чтобы с чистой совестью вернуться в любимый Kate/Gedit/Evim/Tea, где все просто, логично и знакомо. Да, Emacs никак не подходит&lt;br /&gt;
под определение «дружественной к пользователю программы» и вряд&lt;br /&gt;
ли вам понравится с первого взгляда, но поработав с ним недельку-другую и «заточив» под свои нужды, вы вряд ли будете продолжать использовать Kate/Gedit для правки текста, а KDevelop/Anjuta/Eclipse — в&lt;br /&gt;
качестве IDE. Подлинная мощь Emacs состоит в расширяемости: с помощью дополнительных компонентов он может заменить и почтовый&lt;br /&gt;
клиент, и web-браузер, и ICQ/Jabber/IRC-клиент, и даже MP3-плеер.&lt;br /&gt;
&lt;br /&gt;
Ядро Emacs, написанное на C, по сути, представляет собой интерпретатор языка Elisp (Emacs Lisp), а остальная часть редактора написана на этом языке. К чему такие сложности? На самом деле все довольно просто: Emacs — поистине огромный проект, и такой подход к разработке сделал его портирование на другие платформы и ОС довольно&lt;br /&gt;
несложным делом. То есть оно сводится к портированию ядра программы — интерпретатора Elisp.&lt;br /&gt;
&lt;br /&gt;
Cтоит упомянуть, что существует несколько различных версий&lt;br /&gt;
Emacs: это GNU Emacs, до сих пор поддерживаемый Ричардом&lt;br /&gt;
Столлменом; отпочковавшийся от него XEmacs; microEmacs, по слухам,&lt;br /&gt;
являющийся любимым редактором Линуса Торвальдса, и еще несколько других. Мы будем ориентироваться на GNU Emacs, как на самую рас-&lt;br /&gt;
пространенную версию, поскольку она есть во всех известных дистрибутивах, в отличие от тех же XEmacs и microEmacs.&lt;br /&gt;
&lt;br /&gt;
=== Основы основ ===&lt;br /&gt;
[[Изображение:img 77 83 1.png|thumb|Emacs по умолчанию.]]&lt;br /&gt;
[[Изображение:img 77 83 2.png|thumb|Emacs минималиста.]]&lt;br /&gt;
Давайте разберемся с тем, как работает этот монстр. Запустите Emacs&lt;br /&gt;
и нажмите C-x C-f. В терминологии Emacs С означает клавишу Ctrl, а&lt;br /&gt;
M — клавишу Meta, соответствующую клавишам Alt или Esc. То есть&lt;br /&gt;
«нажмите C-x C-f» означает, что вы должны нажать x при зажатом&lt;br /&gt;
Ctrl, а затем, не отпуская Ctrl, нажать f. Эта комбинация используется&lt;br /&gt;
для открытия и создания файлов, а для сохранения служит C-x C-s. Да,&lt;br /&gt;
вот такие неудобные на первый взгляд «горячие клавиши» выбраны в&lt;br /&gt;
Emacs для таких простых действий. Впрочем, стоит сказать, что каждый&lt;br /&gt;
опытный «емаксер» создает свою собственную раскладку клавиатурных&lt;br /&gt;
комбинаций. При нажатии C-x C-f в нижней части окна, называемой&lt;br /&gt;
минибуфером, появится приглашение к вводу имени файла для редактирования. Вы можете ввести имя как существующего файла (тогда он&lt;br /&gt;
откроется для редактирования), так и не существующего. В последнем&lt;br /&gt;
случае Emacs откроет пустой буфер, который впоследствии будет сохранен в указанный файл.&lt;br /&gt;
&lt;br /&gt;
Буфер — одно из ключевых понятий Emacs, он представляет собой&lt;br /&gt;
просто текст, открытый в данный момент в Emacs. На самом деле, это&lt;br /&gt;
определение довольно неточное, но для начала сойдет: проникнувшись философией Emacs, вы и сами увидите, что буфер может содержать что угодно — и таблицу процессов, и текст, и даже PNG-картинку.&lt;br /&gt;
По умолчанию при открытии Emacs создает два буфера — scratch и&lt;br /&gt;
Messages. О первом вы можете прочесть в соответствующей врезке, а&lt;br /&gt;
второй содержит отладочные сообщения редактора.&lt;br /&gt;
&lt;br /&gt;
Минибуфер поддерживает функцию автодополнения имен файлов/каталогов по клавише Tab, на манер командной оболочки Bash.&lt;br /&gt;
&lt;br /&gt;
Думаю, с открытием файла вы разобрались. Теперь попробуйте&lt;br /&gt;
открыть другой файл, или создать новый. Как видите, он открылся, но&lt;br /&gt;
куда делся предыдущий? Никуда — он просто находится в другом буфере! При открытии или создании файла Emacs создает для него новый&lt;br /&gt;
буфер, который становится активным. Для переключения между буферами используется комбинация C-x C-b, после нажатия которой в минибуфере появится приглашение к вводу имени буфера, на который вы&lt;br /&gt;
хотите переключится. Если вместо ввода имени буфера просто нажать&lt;br /&gt;
Enter, то Emacs переместит вас к предыдущему буферу.&lt;br /&gt;
&lt;br /&gt;
Для выхода из редактора служит комбинация C-x C-c. Если на момент выхода у вас будут измененные буферы, которые вы не сохранили,&lt;br /&gt;
обратите внимания на строку минибуфера — Emacs обязательно спросит, не хотите ли вы сохранить изменения. Для закрытия одного лишь&lt;br /&gt;
активного буфера применяется сочетание клавиш C-x C-k.&lt;br /&gt;
&lt;br /&gt;
Окно редактирования Emacs можно заставить отображать сразу несколько буферов, разделив его на несколько независимых частей. Для&lt;br /&gt;
разделения окна по горизонтали нажмите C-x 2, по вертикали — C-x 3.&lt;br /&gt;
Перемещаться между различными частями окна редактирования можно при помощи сочетания C-x o. Для того, чтобы вернуться в обычный&lt;br /&gt;
режим с отображением одного буфера в окне редактирования, нажмите&lt;br /&gt;
C-x 1. Обратите внимание, что активным станет тот буфер, в которым&lt;br /&gt;
вы находились до нажатия C-x 1.&lt;br /&gt;
&lt;br /&gt;
Конечно же, не все команды Emacs имеют горячие клавиши — функций у редактора слишком много, да и каждое установленное дополнение добавляет свои собственные. Поэтому все команды можно вводить в минибуфере вручную. Если вы просто щелкните мышью на&lt;br /&gt;
строке минибуфера, ничего путного из этого не выйдет. Для выполнения внутренних команд есть комбинация M-x (напомню, это Alt-x или&lt;br /&gt;
последовательное нажатие Esc и x). Давайте потренируемся. Нажмите&lt;br /&gt;
M-x, введите в минибуфер команду save-buffer (для имен команд так-же работает функция автодополнения) и нажмите Enter. В результате&lt;br /&gt;
активный буфер (то есть редактируемый в данный момент) будет сохранен в файл. Как вы уже, наверное, догадались, именно эта команда&lt;br /&gt;
привязана к комбинации C-x C-s.&lt;br /&gt;
&lt;br /&gt;
Если вы случайно нажмете C-x или, например M-x, или просто передумаете вызывать какую-нибудь внутреннюю команду, нажмите C-g.&lt;br /&gt;
После этого информация в минибуфере уничтожится, а сам он станет&lt;br /&gt;
неактивным.&lt;br /&gt;
&lt;br /&gt;
Процесс копирования-вставки в Emacs имеет свои особенности. Для копирования куска текста установите курсор на его начало и&lt;br /&gt;
нажмите M-пробел. В минибуфере в это время должно появиться сообщение Mark Set («метка установлена»). Теперь с помощью клавиш-стрелок, PgUp/PgDown или Home/End доберитесь до конца нужного&lt;br /&gt;
куска и нажмите C-w. Это команда вырезает часть текста и заносит его&lt;br /&gt;
в буфер обмена. Для копирования нажмите вместо C-w M-w, а для&lt;br /&gt;
вставки из буфера обмена — C-y. Конечно, можно вместо C-пробел&lt;br /&gt;
использовать для выделения мышь, но быть может вы такой же мышефоб, как и я? Когда вы выделяете текст мышью, он подсвечивается, а&lt;br /&gt;
при выделении с помощью комбинации C-пробел этого, по умолчанию,&lt;br /&gt;
не происходит. Это можно исправить, активировав в главном меню&lt;br /&gt;
опцию Active Region Highlighting (Transient Mark Mode), которая&lt;br /&gt;
находится в подменю Options.&lt;br /&gt;
&lt;br /&gt;
=== Путь к СУТРМ ===&lt;br /&gt;
Ну что ж, думаю, самые основы работы с Emacs вы постигли, давайте же&lt;br /&gt;
превратим его в СУТРМ , то есть в Самый Удобный Текстовый Редактор&lt;br /&gt;
в Мире. Во-первых, удалите файл .emacs из вашего домашнего каталога, если он там есть и перезапустите редактор — начнем, как говорится,&lt;br /&gt;
с чистого листа.&lt;br /&gt;
&lt;br /&gt;
Во-первых стоит рассказать Emacs’у, что мы по умолчанию хотим&lt;br /&gt;
сохранять наши файлы в кодировке koi8-r. Для этого выберите&lt;br /&gt;
в главном меню Options-&amp;gt;Mule (Multilingual Environment)-&amp;gt;Set&lt;br /&gt;
Language Environment-&amp;gt;Cyrillic-&amp;gt;Cyrillic-KOI8. Теперь, если хотите, включите подсветку активного участка текста: Options-&amp;gt;Active&lt;br /&gt;
Region Highlighting (Transient Mark Mode) и подсветку парных скобок: (Options-&amp;gt;Paren Match Highlighting (Show Paren Mode). Это,&lt;br /&gt;
пожалуй, все, что лично я доверяю «автоматике» Emacs’а. Сохраните&lt;br /&gt;
эти настройки, выбрав в меню Options-&amp;gt;Save Options, дальше мы&lt;br /&gt;
будем редактировать конфигурационный файл вручную.&lt;br /&gt;
&lt;br /&gt;
Главным конфигурационным файлом Emacs, как вы уже поняли,&lt;br /&gt;
является .emacs, находящийся в домашнем каталоге. Он, кстати, представляет собой самый настоящий скрипт на языке Emacs Lisp — именно поэтому его лучше редактировать вручную, тем более что в главном&lt;br /&gt;
меню Emacs доступно меньше 10 % всех настроек Emacs.&lt;br /&gt;
&lt;br /&gt;
Не кажется ли вам панель инструментов Emacs бесполезной? Мне&lt;br /&gt;
вот, например, кажется, тем более, что клавиатурные сочетания всех&lt;br /&gt;
кнопок, находящихся на ней, можно запомнить меньше чем за 10&lt;br /&gt;
минут. Для того, чтобы панель не появлялась при запуске Emacs, в&lt;br /&gt;
.emacs нужно добавить такую строку:&lt;br /&gt;
 (tool-bar-mode nil)&lt;br /&gt;
Истинные минималисты вроде меня могут добавить еще (menu-bar-mode nil) для скрытия главного меню и (scroll-bar-mode nil)&lt;br /&gt;
для удаления полос прокрутки. К меню всегда можно обратиться с помощью щелчка правой кнопки мыши в буфере при зажатом Ctrl. Кстати,&lt;br /&gt;
переключаться между буферами можно таким же образом, только&lt;br /&gt;
вместо правой кнопки используйте левую.&lt;br /&gt;
&lt;br /&gt;
Я знаю, вас раздражают эти C-x C-f и C-x C-s. Давайте же «перевесим» команды открытия и сохранения файла на другие комбинации.&lt;br /&gt;
Добавьте следующие строки в свой .emacs:&lt;br /&gt;
 (global-set-key «\C-s» ‘save-buffer)&lt;br /&gt;
 (global-set-key «\C-o» ‘find-file)&lt;br /&gt;
 (global-set-key «\M-f» ‘isearch-forward)&lt;br /&gt;
Таким образом мы назначили команды сохранения (save-buffer) и&lt;br /&gt;
открытия файла (find-file) на C-s и C-o соответственно. Но зачем мы&lt;br /&gt;
назначили на M-f какой-то isearch-forward? На самом деле это очень&lt;br /&gt;
удобная функция линейного поиска по тексту, которая по умолчанию&lt;br /&gt;
привязана к C-s (таким образом, без этой строки мы могли бы ее использовать лишь набрав вручную имя в минибуфере). Для поклонников&lt;br /&gt;
mcedit можно порекомендовать такую конфигурацию:&lt;br /&gt;
 (global-set-key [f2] ‘save-buffer)&lt;br /&gt;
 (global-set-key [f1] ‘find-file)&lt;br /&gt;
 (global-set-key [f7] ‘isearch-forward)&lt;br /&gt;
Подобным образом можно назначить любую комбинацию для&lt;br /&gt;
любой функции. Главное, не забывайте обрамлять сочетания клавиш&lt;br /&gt;
двойными кавычками (к функциональным клавишам это не относится)&lt;br /&gt;
и ставить перед именами функций апострофы.&lt;br /&gt;
&lt;br /&gt;
=== Наводим марафет ===&lt;br /&gt;
Вряд ли вас устраивает цветовая схема Emacs, которая установлена&lt;br /&gt;
по умолчанию, да и шрифты никуда не годятся: латинские одного размера, кириллические — другого. Нужно исправлять ситуацию. Для изменения цветов редактора предусмотрены функции set-face-background и&lt;br /&gt;
set-face-foreground. Первая отвечает за фон, вторая — за цвет раположенных на нем объектов. Например, в .emacs следующих строк:&lt;br /&gt;
 (set-face-background ‘default «red»)&lt;br /&gt;
 (set-face-foreground ‘default «blue»)&lt;br /&gt;
заставит Emacs выводить текст красными буквами на синем фоне&lt;br /&gt;
(адское сочетание! Не повторяйте этого дома, ну или хотя бы предварительно к окулисту запишитесь). Вместо «red» или «blue» можно использовать цвета вроде «#3743ec», так что откройте палитру в Gimp&lt;br /&gt;
и не ограничивайте себя всякими «green» и «black». Для изменения&lt;br /&gt;
цветов меню нужно заменить ‘default на ‘menu.&lt;br /&gt;
&lt;br /&gt;
Я предпочитаю использовать немного другой способ, который потребует значительно меньше телодвижений. Наверняка в вашем домашнем каталоге есть файл с описанием параметров ресурсов X-Window&lt;br /&gt;
(он обычно называется .Xresources или .Xdefaults). Если его нет — создайте его и внесите в этот файл всего две строки:&lt;br /&gt;
 Emacs*background: #3d3d3d&lt;br /&gt;
 Emacs*foreground: #e1e1e1&lt;br /&gt;
Теперь запустите xrdb ~/.Xresources для обновления параметров ресурсов. После этого и в меню, и в панели инструментов, и в буфере фоном будет «#3d3d3d», а цветом переднего плана (шрифта) -&lt;br /&gt;
«#e1e1e1». Гораздо удобнее, не правда ли?&lt;br /&gt;
&lt;br /&gt;
Так же дело обстоит и со шрифтами: есть функции set-face-font,&lt;br /&gt;
работающие таким же образом, как и set-face-background, но удобнее использовать .Xresources. Мне нравится полужирный шрифт&lt;br /&gt;
terminus:&lt;br /&gt;
 Emacs*font: -xos4-terminus-bold-r-normal--14-140-72-72-c-80-koi8-r&lt;br /&gt;
Для выбора шрифта (а заодно и корректного составления его имени) рекомендую воспользоваться утилитой xfontsel, входящей в комплект X-Window.&lt;br /&gt;
&lt;br /&gt;
Что ж, надеюсь, теперь вам приятнее смотреть на ваш Emacs…&lt;br /&gt;
&lt;br /&gt;
=== Проверка орфографии ===&lt;br /&gt;
[[Изображение:img 77 84 1.png|300px|thumb|Ispell не знает слова «юниксоид». Непростительная ошибка!]]&lt;br /&gt;
Что еще не помешало бы текстовому редактору? Наверное, проверка&lt;br /&gt;
орфографии. В Emacs для проверки орфографии используется внешняя утилита ispell. Плюс ко всему существует специальный режим -&lt;br /&gt;
flyspell-mode (для его работы также необходима ispell), который&lt;br /&gt;
сделан на манер проверки орфографии в текстовых процессорах: вы&lt;br /&gt;
печатаете слово, а flyspell сразу же проверяет его. Если такое слово&lt;br /&gt;
не найдено в словаре, оно выделяется и подчеркивается. Щелкнув&lt;br /&gt;
на подчеркнутом слове средней кнопкой мыши, вы сможете выбрать&lt;br /&gt;
нужный вариант из тех, что подобрал flyspell или занести это слово&lt;br /&gt;
в словарь. Разумеется, для работы flyspell вы должны установить в&lt;br /&gt;
своей системе пакеты ispell и ispell-ru. Если ispell есть практически в любом дистрибутиве, то с ispell-ru (который содержит русский&lt;br /&gt;
словарь для ispell) не все так гладко. Если вы не найдете его в своем дистрибутиве, вам придется скачать один из словарей отсюда:&lt;br /&gt;
http://fmg-www.cs.ucla.edu/geoff/ispell-dictionaries.html.&lt;br /&gt;
&lt;br /&gt;
После этого нужно указать Emacs, чтобы он использовал для проверки орфографии русский словарь. За имя словаря, используемого&lt;br /&gt;
ispell и flyspell, отвечает внутренняя переменная ispell-dictionary.&lt;br /&gt;
Очевидно, необходимо установить для нее значение «russian». Есть&lt;br /&gt;
несколько способов сделать это. Если хотите установить какую-либо&lt;br /&gt;
переменную только для текущего сеанса, то для этого прекрасно подойдет функция customize-variable. Но если вы захотите, например,&lt;br /&gt;
всегда использовать русский словарь, то проще прописать значение&lt;br /&gt;
соответствующей переменной в файл .emacs:&lt;br /&gt;
 (setq flyspell-dictionary «russian»)&lt;br /&gt;
Давайте назначим командам проверки орфографии какие-нибудь&lt;br /&gt;
простые комбинации:&lt;br /&gt;
 (global-set-key [f11] ‘ispell-buffer)&lt;br /&gt;
 (global-set-key [f12] ‘flyspell-mode)&lt;br /&gt;
Теперь по клавише F12 вы сможете включать/выключать режим&lt;br /&gt;
проверки «на лету», а по F11 производить пошаговую проверку.&lt;br /&gt;
Возможно у читателя появится вопрос — а зачем нужно возиться с&lt;br /&gt;
Emacs, если тот же Vim/Gedit/Kate подходит для удобного редактирования текста практически «из коробки»? Да, но ведь к Vim’у тоже нужно&lt;br /&gt;
привыкать, а без документации использование Vim сродни ловле черного кота в темной комнате — можно ориентироваться только по звуку. Ну&lt;br /&gt;
и наконец, если вы являетесь приверженцем Vim, почему бы просто из&lt;br /&gt;
любопытства не посмотреть на то, как ваши любимые функции реализованы в Emacs? Kate/Gedit конечно же очень просты, однако в них нет и&lt;br /&gt;
двадцатой части функций Emacs.&lt;br /&gt;
&lt;br /&gt;
Да, Emacs довольно непрост в конфигурировании, но зато настройке поддается абсолютно все!&lt;br /&gt;
&lt;br /&gt;
К сожалению, современной русскоязычной документации по Emacs&lt;br /&gt;
не существует, есть лишь перевод руководства к уже давно устаревшей&lt;br /&gt;
19-й версии от Алекса Отта (см. http://linux.org.ru/books/emacsmanual).&lt;br /&gt;
Впрочем, разобраться с Emacs можно и без официального&lt;br /&gt;
руководства, благо теперь вы знаете основы, так что дальше дело пойдет быстрее. Некоторое количество полезной информации можно почерпнуть из Emacs wiki (http://www.emacswiki.org), на которой есть&lt;br /&gt;
и русскоязычный раздел.&lt;br /&gt;
&lt;br /&gt;
В крайнем случае, если вам что-то непонятно, пишите мне на [mailto:rc_4096@list.ru rc_4096@list.ru].&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Собери сам&lt;br /&gt;
|Содержание=Эта врезка специально для неутомимых экспериментаторов, которые всегда хотят иметь самые новые версии программ, и при этом готовы мириться с возможными ошибками.&lt;br /&gt;
&lt;br /&gt;
Среди пользователей Vim широко распространено мнение о том, что, дескать, разработка Emacs ведется слишком медленно, поэтому новые версии выпускаются слишком редко. На самом же деле Emacs обновляется каждый&lt;br /&gt;
день – достаточно посмотреть на CVS.&lt;br /&gt;
&lt;br /&gt;
Emacs с каждым новым релизом содержит все больше&lt;br /&gt;
и больше модулей: разработчики следят за тем, какие&lt;br /&gt;
модули пользуются наибольшей популярностью, и стараются включить их в следующую стабильную версию редактора. Да и сами создатели модулей часто проявляют инициативу. Так, например, в 22-ю версию, которая сейчас&lt;br /&gt;
активно развивается, попали популярные модули ido (см.&lt;br /&gt;
врезку) и cua, позволяющий использовать стандартные&lt;br /&gt;
для Windows/MacOS-программ горячие клавиши (кстати,&lt;br /&gt;
ido и cua – творения одного человека – Kim F. Storm, см.&lt;br /&gt;
http://www.cua.dk).&lt;br /&gt;
&lt;br /&gt;
В новой версии улучшена поддержка Unicode, появилась новая документация (в том числе и на русском&lt;br /&gt;
языке). Кроме того, теперь для сборки редактора можно&lt;br /&gt;
использовать GTK2, что, безусловно, порадует ценителей&lt;br /&gt;
прекрасного.&lt;br /&gt;
&lt;br /&gt;
Итак, если вы хотите уже сейчас воспользоваться всеми&lt;br /&gt;
благами Emacs 22, то приготовьтесь к трудностям: рабочие&lt;br /&gt;
снимки CVS-дерева регулярно никто не выкладывает. А&lt;br /&gt;
поскольку редактор обновляется каждый день, невозможно&lt;br /&gt;
точно сказать, соберется у вас сегодняшняя версия или нет.&lt;br /&gt;
&lt;br /&gt;
Если вас это не пугает, то можно приступить к получению CVS-дерева:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;export CVS_RSH=&amp;quot;ssh&amp;quot;&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs&amp;lt;/source&amp;gt;&lt;br /&gt;
После завершения этой довольно длительной операции&lt;br /&gt;
(еще бы, исходные тексты Emacs со всеми включенными&lt;br /&gt;
модулями занимают около 90 Мб!) можно приступить к&lt;br /&gt;
сборке:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd emacs&lt;br /&gt;
./configure --prefix=/usr --with-xpm --with-jpeg --with-tiff --with-png --with-gtk&lt;br /&gt;
make bootstrap&lt;br /&gt;
make install&amp;lt;/source&amp;gt;&lt;br /&gt;
Опция --with-gtk говорит о том, что Emacs будет собран с поддержкой GTK2. Опции --with-xpm --with-jpeg&lt;br /&gt;
--with-tiff и --with-png, в принципе, можно и не указывать – если вам не нужна поддержка соответствующих&lt;br /&gt;
графических форматов (да, в Emacs можно смотреть картинки!).&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Буфер *scratch*&lt;br /&gt;
|Содержание=Многие специально отключают этот буфер, а зря: никаких&lt;br /&gt;
неудобств он не создает, а вот кое-какую пользу из него&lt;br /&gt;
извлечь можно. Содержащийся в нем текст гласит, что&lt;br /&gt;
его можно использовать для временного хранения какого-нибудь текста или для выполнения Lisp-операций. То есть&lt;br /&gt;
это простейший интерфейс для Emacs Lisp. Попробуйте,&lt;br /&gt;
например, ввести такое выражение:&lt;br /&gt;
 (+ 3 4)&lt;br /&gt;
и для перехода на новую строку нажать не Enter, а C-j.&lt;br /&gt;
Как видите, интерпретатор Elisp выдал ответ: 7. Таким&lt;br /&gt;
образом, этот буфер можно использовать как&lt;br /&gt;
продвинутый калькулятор с поддержкой переменных,&lt;br /&gt;
сложных функций, рекурсии. Если, конечно, привыкните&lt;br /&gt;
к обратной польской записи и скобкам, принятым во&lt;br /&gt;
всех диалектах Lisp. Попробуйте еще несколько&lt;br /&gt;
примеров:&lt;br /&gt;
 (- (+ 5 9) (- 4 9))&lt;br /&gt;
 (* (+ (/ 90 10) (+ 2 3)) (sqrt 4))&lt;br /&gt;
 (setq g 9.8)&lt;br /&gt;
 (* 5 g)&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Начинающему Емаксеру&lt;br /&gt;
|Содержание=&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Действие&lt;br /&gt;
!Клавиатурная комбинация&lt;br /&gt;
!Название функции&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Создать/Открыть файл {{!}}{{!}}C-x C-f {{!}}{{!}}find-file&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить буфер в файл {{!}}{{!}}C-x C-s {{!}}{{!}}save-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить буфер под новым именем {{!}}{{!}}C-x C-w {{!}}{{!}}save-with-newname&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить все измененные буферы в файлы {{!}}{{!}}C-x s {{!}}{{!}}save-some-buffers&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Переключиться в другой буфер {{!}}{{!}}C-x C-b {{!}}{{!}}switch-to-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно редактирования и открыть другой буфер {{!}}{{!}}— {{!}}{{!}}switch-to-buffer-other-window&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Закрыть активный буфер {{!}}{{!}}C-x k {{!}}{{!}}kill-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Установить метку {{!}}{{!}}C-&amp;lt;пробел&amp;gt; {{!}}{{!}}set-mark-command&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Вырезать выделенный текст {{!}}{{!}}C-w {{!}}{{!}}kill-region&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Скопировать выделенный текст {{!}}{{!}}M-w {{!}}{{!}}copy-region-as-kill&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Вставить скопированый/вырезаный текст {{!}}{{!}}C-y {{!}}{{!}}yank&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно по горизонтали {{!}}{{!}}C-x 3 {{!}}{{!}}split-window-horizontally&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно по вертикали {{!}}{{!}}C-x 2 {{!}}{{!}}split-window-vertically&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Поиск текста с подсветкой всех найденных участков {{!}}{{!}}C-s {{!}}{{!}}isearch-forward&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Отменить последнюю операцию {{!}}{{!}}C-x u {{!}}{{!}}undo&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Выйти из минибуфера {{!}}{{!}}C-g {{!}}{{!}}keyboard-quit&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Закрыть Emacs {{!}}{{!}}C-x C-c {{!}}{{!}}save-buffers-kill-emacs&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=N причин, по которым Emacs лучше Vim&lt;br /&gt;
|Содержание=Думаю, после прочтения статьи приверженцы&lt;br /&gt;
редактора Vim очень хотят услышать ответ на вопрос, чем&lt;br /&gt;
же все-таки Emacs лучше, чем Vim.&lt;br /&gt;
&lt;br /&gt;
Около полугода назад у меня были установлены оба&lt;br /&gt;
этих редактора, и оба казались мне жутко неудобными.&lt;br /&gt;
Для правки конфигурационных файлов я предпочитал&lt;br /&gt;
использовать nano, а для редактирования исходных&lt;br /&gt;
текстов – mcedit. Так и продолжалось, пока я не стал&lt;br /&gt;
изучать документацию по Vim и Emacs. Обнаружилась&lt;br /&gt;
интересная вещь – к Vim в его первоначальном виде&lt;br /&gt;
привыкнуть гораздо легче, да и к сносному&lt;br /&gt;
редактированию чего угодно он готов сразу же. Emacs же&lt;br /&gt;
требует настройки любой мелочи, зато его можно&lt;br /&gt;
превратить хоть в nano, хоть в IDE Visual C++.&lt;br /&gt;
&lt;br /&gt;
По количеству расширений Emacs оставляет Vim&lt;br /&gt;
далеко позади. Да и функциональность Vim’овских&lt;br /&gt;
скриптов по сравнению с расширениями Emacs оставляет&lt;br /&gt;
желать лучшего. Так, например, Vim’овского аналога&lt;br /&gt;
Emacs Code Browser (ecb) и LaTeX-preview мне найти так и&lt;br /&gt;
не удалось, как не удалось найти и других, не столь&lt;br /&gt;
значимых для меня вещей. Emacs лучше интегрируется&lt;br /&gt;
со сторонними приложениями: попробуйте заставить Vim&lt;br /&gt;
работать с Maxima или Gnuplot. В основном это заслуга&lt;br /&gt;
Emacs Lisp, на котором очень просто дописываются те&lt;br /&gt;
функции, которых вам не хватает.&lt;br /&gt;
&lt;br /&gt;
Если редактор вам нужен только для правки&lt;br /&gt;
конфигурационных файлов, то вам одинаково подойдут&lt;br /&gt;
и Emacs, и Vim. Если же вы намерены получить от&lt;br /&gt;
текстового редактора нечто большее, то просто&lt;br /&gt;
установите и тот, и другой, и вы сами без труда найдете&lt;br /&gt;
эти самые N причин. Ну а если вы не хотите тратить&lt;br /&gt;
время на чтение документации и настройку «какого-то&lt;br /&gt;
там текстового редактора», то может быть стоит&lt;br /&gt;
попробовать jEdit?&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=ido.el&lt;br /&gt;
|Содержание=Несмотря на функцию автодополнения, вас наверняка раздражает&lt;br /&gt;
отсутствие в Emacs обычного диалога открытия файла. Но ведь будь в Emacs&lt;br /&gt;
такой диалог, любители делать-все-только-с-клавиатуры справедливо бы&lt;br /&gt;
возмутились. Тем не менее, к Emacs есть отличное дополнение, делающее&lt;br /&gt;
открытие файла и переключение между буферами невероятно простым и&lt;br /&gt;
приятным. Называется оно ido, и, как и все дополнения к Emacs, представляет&lt;br /&gt;
собой обычный Elisp-скрипт. Получить ido.el можно на сайте разработчика&lt;br /&gt;
http://www.cua.dk. Давайте рассмотрим установку этого дополнения.&lt;br /&gt;
&lt;br /&gt;
Для активации и использования функций любого дополнения Emacs, его&lt;br /&gt;
нужно поместить в директорию автоматической загрузки (load-path).&lt;br /&gt;
Рекомендую вам создать в своем домашнем каталоге директорию emacs, в&lt;br /&gt;
которой будут располагаться дополнения. Скопируйте ido.el в ~/emacs/, а в .emacs добавьте следующие строки:&lt;br /&gt;
 (add-to-list ‘load-path «~/emacs»)&lt;br /&gt;
 (require ‘ido)&lt;br /&gt;
Первая строка добавляет ~/emacs в список директорий автозагрузки,&lt;br /&gt;
вторая говорит о том, что при запуске редактора необходимо загрузить файл&lt;br /&gt;
ido.el. Это значит, что теперь в редакторе стали доступны функции&lt;br /&gt;
дополнения ido.el – в данном случае их имена начинаются с ido-. Однако для&lt;br /&gt;
активации дополнения этого недостаточно, нужно еще включить ido-режим:&lt;br /&gt;
 (ido-mode t)&lt;br /&gt;
Слово «t» в различных диалектах языка Lisp означает «true». Тем самым вы&lt;br /&gt;
включили дополнение, и теперь можете посмотреть, как будет огранизовано&lt;br /&gt;
открытие файла (нажмите C-x C-f). Отныне к этой комбинации привязана&lt;br /&gt;
функция ido-find-file (это произошло после включение режима ido-mode).&lt;br /&gt;
Для перемещения между директориями в ido-find-file можно использовать&lt;br /&gt;
кнопки-стрелки, для выбора файла/директории – Enter, для выхода в&lt;br /&gt;
родительский каталог – Backspace. Намного удобнее, чем обычный find-file, не&lt;br /&gt;
правда ли? Подобным же образом теперь работает и переключение между&lt;br /&gt;
буферами (C-x C-b).&lt;br /&gt;
&lt;br /&gt;
Если вы будете постоянно пользоваться этим дополнением, логично было бы&lt;br /&gt;
переназначить функции ido-find-file и ido-switch-buffer на более удобные&lt;br /&gt;
комбинации:&lt;br /&gt;
 (global-set-key [f1] ‘ido-find-file)&lt;br /&gt;
 (global-set-key [f11] ‘ido-switch-buffer)&lt;br /&gt;
[[Изображение:img 77 85 1.png|thumb|center|570px|Вот так преобразился процесс открытия файлов и переключения между буферами.]]&lt;br /&gt;
|Ширина=}}&lt;/div&gt;</summary>
		<author><name>Guest</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF77:Emacs</id>
		<title>LXF77:Emacs</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF77:Emacs"/>
				<updated>2010-02-01T10:50:37Z</updated>
		
		<summary type="html">&lt;p&gt;Guest: /* Путь к СУТРМ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Emacs для пользователя ==&lt;br /&gt;
''часть 1 И вновь продолжается бой! '''Александр Кузьменков''' подливает масла в огонь древнего противостояния Vi и не-Vi.''&lt;br /&gt;
&lt;br /&gt;
Emacs — пожалуй, один из самых известных проектов-долгожителей, разрабатываемых под лицензией GPL. Когда-то&lt;br /&gt;
давно, когда деревья были маленькими, а компьютеры -&lt;br /&gt;
большими, небезызвестный Ричард Столлмен (Richard Stollmen) начал&lt;br /&gt;
разрабатывать свою свободную Unix-подобную операционную систему&lt;br /&gt;
GNU (Gnu’s Not Unix). Ричард относительно легко справился с написанием комплекта компиляторов GCC и множества других программ, среди&lt;br /&gt;
которых был и Emacs, который задумывался им как текстовый редактор&lt;br /&gt;
для программирования. И хотя своей главной цели Столлман пока не достиг (проекту ОС GNU не хватает стабильного ядра: работа над Hurd ведется довольно вяло), его GCC и Emacs приобрели такую популярность,&lt;br /&gt;
что были портированы на большинство распространенных операционных систем и платформ.&lt;br /&gt;
&lt;br /&gt;
Наверняка вы уже наслышаны о «святых войнах юниксоидов» на&lt;br /&gt;
тему «Vim против Emacs», и скорее всего пробовали запускать Emacs.&lt;br /&gt;
А может быть, вы — приверженец Vim и решили посмотреть на вечного&lt;br /&gt;
конкурента своего любимого редактора?. Скорее всего потыкавшись в&lt;br /&gt;
кнопки, расположенные на панели инструментов, вы побыстрее закрыли его, чтобы с чистой совестью вернуться в любимый Kate/Gedit/Evim/Tea, где все просто, логично и знакомо. Да, Emacs никак не подходит&lt;br /&gt;
под определение «дружественной к пользователю программы» и вряд&lt;br /&gt;
ли вам понравится с первого взгляда, но поработав с ним недельку-другую и «заточив» под свои нужды, вы вряд ли будете продолжать использовать Kate/Gedit для правки текста, а KDevelop/Anjuta/Eclipse — в&lt;br /&gt;
качестве IDE. Подлинная мощь Emacs состоит в расширяемости: с помощью дополнительных компонентов он может заменить и почтовый&lt;br /&gt;
клиент, и web-браузер, и ICQ/Jabber/IRC-клиент, и даже MP3-плеер.&lt;br /&gt;
&lt;br /&gt;
Ядро Emacs, написанное на C, по сути, представляет собой интерпретатор языка Elisp (Emacs Lisp), а остальная часть редактора написана на этом языке. К чему такие сложности? На самом деле все довольно просто: Emacs — поистине огромный проект, и такой подход к разработке сделал его портирование на другие платформы и ОС довольно&lt;br /&gt;
несложным делом. То есть оно сводится к портированию ядра программы — интерпретатора Elisp.&lt;br /&gt;
&lt;br /&gt;
Cтоит упомянуть, что существует несколько различных версий&lt;br /&gt;
Emacs: это GNU Emacs, до сих пор поддерживаемый Ричардом&lt;br /&gt;
Столлменом; отпочковавшийся от него XEmacs; microEmacs, по слухам,&lt;br /&gt;
являющийся любимым редактором Линуса Торвальдса, и еще несколько других. Мы будем ориентироваться на GNU Emacs, как на самую рас-&lt;br /&gt;
пространенную версию, поскольку она есть во всех известных дистрибутивах, в отличие от тех же XEmacs и microEmacs.&lt;br /&gt;
&lt;br /&gt;
=== Основы основ ===&lt;br /&gt;
[[Изображение:img 77 83 1.png|thumb|Emacs по умолчанию.]]&lt;br /&gt;
[[Изображение:img 77 83 2.png|thumb|Emacs минималиста.]]&lt;br /&gt;
Давайте разберемся с тем, как работает этот монстр. Запустите Emacs&lt;br /&gt;
и нажмите C-x C-f. В терминологии Emacs С означает клавишу Ctrl, а&lt;br /&gt;
M — клавишу Meta, соответствующую клавишам Alt или Esc. То есть&lt;br /&gt;
«нажмите C-x C-f» означает, что вы должны нажать x при зажатом&lt;br /&gt;
Ctrl, а затем, не отпуская Ctrl, нажать f. Эта комбинация используется&lt;br /&gt;
для открытия и создания файлов, а для сохранения служит C-x C-s. Да,&lt;br /&gt;
вот такие неудобные на первый взгляд «горячие клавиши» выбраны в&lt;br /&gt;
Emacs для таких простых действий. Впрочем, стоит сказать, что каждый&lt;br /&gt;
опытный «емаксер» создает свою собственную раскладку клавиатурных&lt;br /&gt;
комбинаций. При нажатии C-x C-f в нижней части окна, называемой&lt;br /&gt;
минибуфером, появится приглашение к вводу имени файла для редактирования. Вы можете ввести имя как существующего файла (тогда он&lt;br /&gt;
откроется для редактирования), так и не существующего. В последнем&lt;br /&gt;
случае Emacs откроет пустой буфер, который впоследствии будет сохранен в указанный файл.&lt;br /&gt;
&lt;br /&gt;
Буфер — одно из ключевых понятий Emacs, он представляет собой&lt;br /&gt;
просто текст, открытый в данный момент в Emacs. На самом деле, это&lt;br /&gt;
определение довольно неточное, но для начала сойдет: проникнувшись философией Emacs, вы и сами увидите, что буфер может содержать что угодно — и таблицу процессов, и текст, и даже PNG-картинку.&lt;br /&gt;
По умолчанию при открытии Emacs создает два буфера — scratch и&lt;br /&gt;
Messages. О первом вы можете прочесть в соответствующей врезке, а&lt;br /&gt;
второй содержит отладочные сообщения редактора.&lt;br /&gt;
&lt;br /&gt;
Минибуфер поддерживает функцию автодополнения имен файлов/каталогов по клавише Tab, на манер командной оболочки Bash.&lt;br /&gt;
&lt;br /&gt;
Думаю, с открытием файла вы разобрались. Теперь попробуйте&lt;br /&gt;
открыть другой файл, или создать новый. Как видите, он открылся, но&lt;br /&gt;
куда делся предыдущий? Никуда — он просто находится в другом буфере! При открытии или создании файла Emacs создает для него новый&lt;br /&gt;
буфер, который становится активным. Для переключения между буферами используется комбинация C-x C-b, после нажатия которой в минибуфере появится приглашение к вводу имени буфера, на который вы&lt;br /&gt;
хотите переключится. Если вместо ввода имени буфера просто нажать&lt;br /&gt;
Enter, то Emacs переместит вас к предыдущему буферу.&lt;br /&gt;
&lt;br /&gt;
Для выхода из редактора служит комбинация C-x C-c. Если на момент выхода у вас будут измененные буферы, которые вы не сохранили,&lt;br /&gt;
обратите внимания на строку минибуфера — Emacs обязательно спросит, не хотите ли вы сохранить изменения. Для закрытия одного лишь&lt;br /&gt;
активного буфера применяется сочетание клавиш C-x C-k.&lt;br /&gt;
&lt;br /&gt;
Окно редактирования Emacs можно заставить отображать сразу несколько буферов, разделив его на несколько независимых частей. Для&lt;br /&gt;
разделения окна по горизонтали нажмите C-x 2, по вертикали — C-x 3.&lt;br /&gt;
Перемещаться между различными частями окна редактирования можно при помощи сочетания C-x o. Для того, чтобы вернуться в обычный&lt;br /&gt;
режим с отображением одного буфера в окне редактирования, нажмите&lt;br /&gt;
C-x 1. Обратите внимание, что активным станет тот буфер, в которым&lt;br /&gt;
вы находились до нажатия C-x 1.&lt;br /&gt;
&lt;br /&gt;
Конечно же, не все команды Emacs имеют горячие клавиши — функций у редактора слишком много, да и каждое установленное дополнение добавляет свои собственные. Поэтому все команды можно вводить в минибуфере вручную. Если вы просто щелкните мышью на&lt;br /&gt;
строке минибуфера, ничего путного из этого не выйдет. Для выполнения внутренних команд есть комбинация M-x (напомню, это Alt-x или&lt;br /&gt;
последовательное нажатие Esc и x). Давайте потренируемся. Нажмите&lt;br /&gt;
M-x, введите в минибуфер команду save-buffer (для имен команд так-же работает функция автодополнения) и нажмите Enter. В результате&lt;br /&gt;
активный буфер (то есть редактируемый в данный момент) будет сохранен в файл. Как вы уже, наверное, догадались, именно эта команда&lt;br /&gt;
привязана к комбинации C-x C-s.&lt;br /&gt;
&lt;br /&gt;
Если вы случайно нажмете C-x или, например M-x, или просто передумаете вызывать какую-нибудь внутреннюю команду, нажмите C-g.&lt;br /&gt;
После этого информация в минибуфере уничтожится, а сам он станет&lt;br /&gt;
неактивным.&lt;br /&gt;
&lt;br /&gt;
Процесс копирования-вставки в Emacs имеет свои особенности. Для копирования куска текста установите курсор на его начало и&lt;br /&gt;
нажмите M-пробел. В минибуфере в это время должно появиться сообщение Mark Set («метка установлена»). Теперь с помощью клавиш-стрелок, PgUp/PgDown или Home/End доберитесь до конца нужного&lt;br /&gt;
куска и нажмите C-w. Это команда вырезает часть текста и заносит его&lt;br /&gt;
в буфер обмена. Для копирования нажмите вместо C-w M-w, а для&lt;br /&gt;
вставки из буфера обмена — C-y. Конечно, можно вместо C-пробел&lt;br /&gt;
использовать для выделения мышь, но быть может вы такой же мышефоб, как и я? Когда вы выделяете текст мышью, он подсвечивается, а&lt;br /&gt;
при выделении с помощью комбинации C-пробел этого, по умолчанию,&lt;br /&gt;
не происходит. Это можно исправить, активировав в главном меню&lt;br /&gt;
опцию Active Region Highlighting (Transient Mark Mode), которая&lt;br /&gt;
находится в подменю Options.&lt;br /&gt;
&lt;br /&gt;
=== Путь к СУТРМ ===&lt;br /&gt;
Ну что ж, думаю, самые основы работы с Emacs вы постигли, давайте же&lt;br /&gt;
превратим его в СУТРМ , то есть в Самый Удобный Текстовый Редактор&lt;br /&gt;
в Мире. Во-первых, удалите файл .emacs из вашего домашнего каталога, если он там есть и перезапустите редактор — начнем, как говорится,&lt;br /&gt;
с чистого листа.&lt;br /&gt;
&lt;br /&gt;
Во-первых стоит рассказать Emacs’у, что мы по умолчанию хотим&lt;br /&gt;
сохранять наши файлы в кодировке koi8-r. Для этого выберите&lt;br /&gt;
в главном меню Options-&amp;gt;Mule (Multilingual Environment)-&amp;gt;Set&lt;br /&gt;
Language Environment-&amp;gt;Cyrillic-&amp;gt;Cyrillic-KOI8. Теперь, если хотите, включите подсветку активного участка текста: Options-&amp;gt;Active&lt;br /&gt;
Region Highlighting (Transient Mark Mode) и подсветку парных скобок: (Options-&amp;gt;Paren Match Highlighting (Show Paren Mode). Это,&lt;br /&gt;
пожалуй, все, что лично я доверяю «автоматике» Emacs’а. Сохраните&lt;br /&gt;
эти настройки, выбрав в меню Options-&amp;gt;Save Options, дальше мы&lt;br /&gt;
будем редактировать конфигурационный файл вручную.&lt;br /&gt;
&lt;br /&gt;
Главным конфигурационным файлом Emacs, как вы уже поняли,&lt;br /&gt;
является .emacs, находящийся в домашнем каталоге. Он, кстати, представляет собой самый настоящий скрипт на языке Emacs Lisp — именно поэтому его лучше редактировать вручную, тем более что в главном&lt;br /&gt;
меню Emacs доступно меньше 10 % всех настроек Emacs.&lt;br /&gt;
&lt;br /&gt;
Не кажется ли вам панель инструментов Emacs бесполезной? Мне&lt;br /&gt;
вот, например, кажется, тем более, что клавиатурные сочетания всех&lt;br /&gt;
кнопок, находящихся на ней, можно запомнить меньше чем за 10&lt;br /&gt;
минут. Для того, чтобы панель не появлялась при запуске Emacs, в&lt;br /&gt;
.emacs нужно добавить такую строку:&lt;br /&gt;
 (tool-bar-mode nil)&lt;br /&gt;
Истинные минималисты вроде меня могут добавить еще (menu-bar-mode nil) для скрытия главного меню и (scroll-bar-mode nil)&lt;br /&gt;
для удаления полос прокрутки. К меню всегда можно обратиться с помощью щелчка правой кнопки мыши в буфере при зажатом Ctrl. Кстати,&lt;br /&gt;
переключаться между буферами можно таким же образом, только&lt;br /&gt;
вместо правой кнопки используйте левую.&lt;br /&gt;
&lt;br /&gt;
Я знаю, вас раздражают эти C-x C-f и C-x C-s. Давайте же «перевесим» команды открытия и сохранения файла на другие комбинации.&lt;br /&gt;
Добавьте следующие строки в свой .emacs:&lt;br /&gt;
 (global-set-key «\C-s» ‘save-buffer)&lt;br /&gt;
 (global-set-key «\C-o» ‘find-file)&lt;br /&gt;
 (global-set-key «\M-f» ‘isearch-forward)&lt;br /&gt;
Таким образом мы назначили команды сохранения (save-buffer) и&lt;br /&gt;
открытия файла (find-file) на C-s и C-o соответственно. Но зачем мы&lt;br /&gt;
назначили на M-f какой-то isearch-forward? На самом деле это очень&lt;br /&gt;
удобная функция линейного поиска по тексту, которая по умолчанию&lt;br /&gt;
привязана к C-s (таким образом, без этой строки мы могли бы ее использовать лишь набрав вручную имя в минибуфере). Для поклонников&lt;br /&gt;
mcedit можно порекомендовать такую конфигурацию:&lt;br /&gt;
 (global-set-key [f2] ‘save-buffer)&lt;br /&gt;
 (global-set-key [f1] ‘find-file)&lt;br /&gt;
 (global-set-key [f7] ‘isearch-forward)&lt;br /&gt;
Подобным образом можно назначить любую комбинацию для&lt;br /&gt;
любой функции. Главное, не забывайте обрамлять сочетания клавиш&lt;br /&gt;
двойными кавычками (к функциональным клавишам это не относится)&lt;br /&gt;
и ставить перед именами функций апострофы.&lt;br /&gt;
&lt;br /&gt;
=== Наводим марафет ===&lt;br /&gt;
Вряд ли вас устраивает цветовая схема Emacs, которая установлена&lt;br /&gt;
по умолчанию, да и шрифты никуда не годятся: латинские одного размера, кириллические — другого. Нужно исправлять ситуацию. Для изменения цветов редактора предусмотрены функции set-face-background и&lt;br /&gt;
set-face-foreground. Первая отвечает за фон, вторая — за цвет раположенных на нем объектов. Например, в .emacs следующих строк:&lt;br /&gt;
 (set-face-background ‘default «red»)&lt;br /&gt;
 (set-face-foreground ‘default «blue»)&lt;br /&gt;
заставит Emacs выводить текст красными буквами на синем фоне&lt;br /&gt;
(адское сочетание! Не повторяйте этого дома, ну или хотя бы предварительно к окулисту запишитесь). Вместо «red» или «blue» можно использовать цвета вроде «#3743ec», так что откройте палитру в Gimp&lt;br /&gt;
и не ограничивайте себя всякими «green» и «black». Для изменения&lt;br /&gt;
цветов меню нужно заменить ‘default на ‘menu.&lt;br /&gt;
&lt;br /&gt;
Я предпочитаю использовать немного другой способ, который потребует значительно меньше телодвижений. Наверняка в вашем домашнем каталоге есть файл с описанием параметров ресурсов X-Window&lt;br /&gt;
(он обычно называется .Xresources или .Xdefaults). Если его нет — создайте его и внесите в этот файл всего две строки:&lt;br /&gt;
 Emacs*background: #3d3d3d&lt;br /&gt;
 Emacs*foreground: #e1e1e1&lt;br /&gt;
Теперь запустите xrdb ~/.Xresources для обновления параметров ресурсов. После этого и в меню, и в панели инструментов, и в буфере фоном будет «#3d3d3d», а цветом переднего плана (шрифта) -&lt;br /&gt;
«#e1e1e1». Гораздо удобнее, не правда ли?&lt;br /&gt;
&lt;br /&gt;
Так же дело обстоит и со шрифтами: есть функции set-face-font,&lt;br /&gt;
работающие таким же образом, как и set-face-background, но удобнее использовать .Xresources. Мне нравится полужирный шрифт&lt;br /&gt;
terminus:&lt;br /&gt;
 Emacs*font: -xos4-terminus-bold-r-normal--14-140-72-72-c-80-koi8-r&lt;br /&gt;
Для выбора шрифта (а заодно и корректного составления его имени) рекомендую воспользоваться утилитой xfontsel, входящей в комплект X-Window.&lt;br /&gt;
&lt;br /&gt;
Что ж, надеюсь, теперь вам приятнее смотреть на ваш Emacs…&lt;br /&gt;
&lt;br /&gt;
=== Проверка орфографии ===&lt;br /&gt;
[[Изображение:img 77 84 1.png|300px|thumb|Ispell не знает слова «юниксоид». Непростительная ошибка!]]&lt;br /&gt;
Что еще не помешало бы текстовому редактору? Наверное, проверка&lt;br /&gt;
орфографии. В Emacs для проверки орфографии используется внешняя утилита ispell. Плюс ко всему существует специальный режим -&lt;br /&gt;
flyspell-mode (для его работы также необходима ispell), который&lt;br /&gt;
сделан на манер проверки орфографии в текстовых процессорах: вы&lt;br /&gt;
печатаете слово, а flyspell сразу же проверяет его. Если такое слово&lt;br /&gt;
не найдено в словаре, оно выделяется и подчеркивается. Щелкнув&lt;br /&gt;
на подчеркнутом слове средней кнопкой мыши, вы сможете выбрать&lt;br /&gt;
нужный вариант из тех, что подобрал flyspell или занести это слово&lt;br /&gt;
в словарь. Разумеется, для работы flyspell вы должны установить в&lt;br /&gt;
своей системе пакеты ispell и ispell-ru. Если ispell есть практически в любом дистрибутиве, то с ispell-ru (который содержит русский&lt;br /&gt;
словарь для ispell) не все так гладко. Если вы не найдете его в своем дистрибутиве, вам придется скачать один из словарей отсюда:&lt;br /&gt;
http://fmg-www.cs.ucla.edu/geoff/ispell-dictionaries.html.&lt;br /&gt;
&lt;br /&gt;
После этого нужно указать Emacs, чтобы он использовал для проверки орфографии русский словарь. За имя словаря, используемого&lt;br /&gt;
ispell и flyspell, отвечает внутренняя переменная ispell-dictionary.&lt;br /&gt;
Очевидно, необходимо установить для нее значение «russian». Есть&lt;br /&gt;
несколько способов сделать это. Если хотите установить какую-либо&lt;br /&gt;
переменную только для текущего сеанса, то для этого прекрасно подойдет функция customize-variable. Но если вы захотите, например,&lt;br /&gt;
всегда использовать русский словарь, то проще прописать значение&lt;br /&gt;
соответствующей переменной в файл .emacs:&lt;br /&gt;
 (setq flyspell-dictionary «russian»)&lt;br /&gt;
Давайте назначим командам проверки орфографии какие-нибудь&lt;br /&gt;
простые комбинации:&lt;br /&gt;
 (global-set-key [f11] ‘ispell-buffer)&lt;br /&gt;
 (global-set-key [f12] ‘flyspell-mode)&lt;br /&gt;
Теперь по клавише F12 вы сможете включать/выключать режим&lt;br /&gt;
проверки «на лету», а по F11 производить пошаговую проверку.&lt;br /&gt;
Возможно у читателя появится вопрос — а зачем нужно возиться с&lt;br /&gt;
Emacs, если тот же Vim/Gedit/Kate подходит для удобного редактирования текста практически «из коробки»? Да, но ведь к Vim’у тоже нужно&lt;br /&gt;
привыкать, а без документации использование Vim сродни ловле черного кота в темной комнате — можно ориентироваться только по звуку. Ну&lt;br /&gt;
и наконец, если вы являетесь приверженцем Vim, почему бы просто из&lt;br /&gt;
любопытства не посмотреть на то, как ваши любимые функции реализованы в Emacs? Kate/Gedit конечно же очень просты, однако в них нет и&lt;br /&gt;
двадцатой части функций Emacs.&lt;br /&gt;
&lt;br /&gt;
Да, Emacs довольно непрост в конфигурировании, но зато настройке поддается абсолютно все!&lt;br /&gt;
&lt;br /&gt;
К сожалению, современной русскоязычной документации по Emacs&lt;br /&gt;
не существует, есть лишь перевод руководства к уже давно устаревшей&lt;br /&gt;
19-й версии от Алекса Отта (см. http://linux.org.ru/books/emacsmanual).&lt;br /&gt;
Впрочем, разобраться с Emacs можно и без официального&lt;br /&gt;
руководства, благо теперь вы знаете основы, так что дальше дело пойдет быстрее. Некоторое количество полезной информации можно почерпнуть из Emacs wiki (http://www.emacswiki.org), на которой есть&lt;br /&gt;
и русскоязычный раздел.&lt;br /&gt;
&lt;br /&gt;
В крайнем случае, если вам что-то непонятно, пишите мне на [mailto:rc_4096@list.ru rc_4096@list.ru].&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Собери сам&lt;br /&gt;
|Содержание=Эта врезка специально для неутомимых экспериментаторов, которые всегда хотят иметь самые новые версии программ, и при этом готовы мириться с возможными ошибками.&lt;br /&gt;
&lt;br /&gt;
Среди пользователей Vim широко распространено мнение о том, что, дескать, разработка Emacs ведется слишком медленно, поэтому новые версии выпускаются слишком редко. На самом же деле Emacs обновляется каждый&lt;br /&gt;
день – достаточно посмотреть на CVS.&lt;br /&gt;
&lt;br /&gt;
Emacs с каждым новым релизом содержит все больше&lt;br /&gt;
и больше модулей: разработчики следят за тем, какие&lt;br /&gt;
модули пользуются наибольшей популярностью, и стараются включить их в следующую стабильную версию редактора. Да и сами создатели модулей часто проявляют инициативу. Так, например, в 22-ю версию, которая сейчас&lt;br /&gt;
активно развивается, попали популярные модули ido (см.&lt;br /&gt;
врезку) и cua, позволяющий использовать стандартные&lt;br /&gt;
для Windows/MacOS-программ горячие клавиши (кстати,&lt;br /&gt;
ido и cua – творения одного человека – Kim F. Storm, см.&lt;br /&gt;
http://www.cua.dk).&lt;br /&gt;
&lt;br /&gt;
В новой версии улучшена поддержка Unicode, появилась новая документация (в том числе и на русском&lt;br /&gt;
языке). Кроме того, теперь для сборки редактора можно&lt;br /&gt;
использовать GTK2, что, безусловно, порадует ценителей&lt;br /&gt;
прекрасного.&lt;br /&gt;
&lt;br /&gt;
Итак, если вы хотите уже сейчас воспользоваться всеми&lt;br /&gt;
благами Emacs 22, то приготовьтесь к трудностям: рабочие&lt;br /&gt;
снимки CVS-дерева регулярно никто не выкладывает. А&lt;br /&gt;
поскольку редактор обновляется каждый день, невозможно&lt;br /&gt;
точно сказать, соберется у вас сегодняшняя версия или нет.&lt;br /&gt;
&lt;br /&gt;
Если вас это не пугает, то можно приступить к получению CVS-дерева:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;export CVS_RSH=&amp;quot;ssh&amp;quot;&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs&amp;lt;/source&amp;gt;&lt;br /&gt;
После завершения этой довольно длительной операции&lt;br /&gt;
(еще бы, исходные тексты Emacs со всеми включенными&lt;br /&gt;
модулями занимают около 90 Мб!) можно приступить к&lt;br /&gt;
сборке:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd emacs&lt;br /&gt;
./configure --prefix=/usr --with-xpm --with-jpeg --with-tiff --with-png --with-gtk&lt;br /&gt;
make bootstrap&lt;br /&gt;
make install&amp;lt;/source&amp;gt;&lt;br /&gt;
Опция --with-gtk говорит о том, что Emacs будет собран с поддержкой GTK2. Опции --with-xpm --with-jpeg&lt;br /&gt;
--with-tiff и --with-png, в принципе, можно и не указывать – если вам не нужна поддержка соответствующих&lt;br /&gt;
графических форматов (да, в Emacs можно смотреть картинки!).&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Буфер *scratch*&lt;br /&gt;
|Содержание=Многие специально отключают этот буфер, а зря: никаких&lt;br /&gt;
неудобств он не создает, а вот кое-какую пользу из него&lt;br /&gt;
извлечь можно. Содержащийся в нем текст гласит, что&lt;br /&gt;
его можно использовать для временного хранения какого-нибудь текста или для выполнения Lisp-операций. То есть&lt;br /&gt;
это простейший интерфейс для Emacs Lisp. Попробуйте,&lt;br /&gt;
например, ввести такое выражение:&lt;br /&gt;
 (+ 3 4)&lt;br /&gt;
и для перехода на новую строку нажать не Enter, а Cj.&lt;br /&gt;
Как видите, интерпретатор Elisp выдал ответ: 7. Таким&lt;br /&gt;
образом, этот буфер можно использовать как&lt;br /&gt;
продвинутый калькулятор с поддержкой переменных,&lt;br /&gt;
сложных функций, рекурсии. Если, конечно, привыкните&lt;br /&gt;
к обратной польской записи и скобкам, принятым во&lt;br /&gt;
всех диалектах Lisp. Попробуйте еще несколько&lt;br /&gt;
примеров:&lt;br /&gt;
 (- (+ 5 9) (- 4 9))&lt;br /&gt;
 (* (+ (/ 90 10) (+ 2 3)) (sqrt 4))&lt;br /&gt;
 (setq g 9.8)&lt;br /&gt;
 (* 5 g)&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Начинающему Емаксеру&lt;br /&gt;
|Содержание=&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Действие&lt;br /&gt;
!Клавиатурная комбинация&lt;br /&gt;
!Название функции&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Создать/Открыть файл {{!}}{{!}}C-x C-f {{!}}{{!}}find-file&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить буфер в файл {{!}}{{!}}C-x C-s {{!}}{{!}}save-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить буфер под новым именем {{!}}{{!}}C-x C-w {{!}}{{!}}save-with-newname&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Сохранить все измененные буферы в файлы {{!}}{{!}}C-x s {{!}}{{!}}save-some-buffers&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Переключиться в другой буфер {{!}}{{!}}C-x C-b {{!}}{{!}}switch-to-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно редактирования и открыть другой буфер {{!}}{{!}}— {{!}}{{!}}switch-to-buffer-other-window&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Закрыть активный буфер {{!}}{{!}}C-x k {{!}}{{!}}kill-buffer&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Установить метку {{!}}{{!}}C-&amp;lt;пробел&amp;gt; {{!}}{{!}}set-mark-command&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Вырезать выделенный текст {{!}}{{!}}C-w {{!}}{{!}}kill-region&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Скопировать выделенный текст {{!}}{{!}}M-w {{!}}{{!}}copy-region-as-kill&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Вставить скопированый/вырезаный текст {{!}}{{!}}C-y {{!}}{{!}}yank&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно по горизонтали {{!}}{{!}}C-x 3 {{!}}{{!}}split-window-horizontally&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Разделить окно по вертикали {{!}}{{!}}C-x 2 {{!}}{{!}}split-window-vertically&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Поиск текста с подсветкой всех найденных участков {{!}}{{!}}C-s {{!}}{{!}}isearch-forward&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Отменить последнюю операцию {{!}}{{!}}C-x u {{!}}{{!}}undo&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Выйти из минибуфера {{!}}{{!}}C-g {{!}}{{!}}keyboard-quit&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Закрыть Emacs {{!}}{{!}}C-x C-c {{!}}{{!}}save-buffers-kill-emacs&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=N причин, по которым Emacs лучше Vim&lt;br /&gt;
|Содержание=Думаю, после прочтения статьи приверженцы&lt;br /&gt;
редактора Vim очень хотят услышать ответ на вопрос, чем&lt;br /&gt;
же все-таки Emacs лучше, чем Vim.&lt;br /&gt;
&lt;br /&gt;
Около полугода назад у меня были установлены оба&lt;br /&gt;
этих редактора, и оба казались мне жутко неудобными.&lt;br /&gt;
Для правки конфигурационных файлов я предпочитал&lt;br /&gt;
использовать nano, а для редактирования исходных&lt;br /&gt;
текстов – mcedit. Так и продолжалось, пока я не стал&lt;br /&gt;
изучать документацию по Vim и Emacs. Обнаружилась&lt;br /&gt;
интересная вещь – к Vim в его первоначальном виде&lt;br /&gt;
привыкнуть гораздо легче, да и к сносному&lt;br /&gt;
редактированию чего угодно он готов сразу же. Emacs же&lt;br /&gt;
требует настройки любой мелочи, зато его можно&lt;br /&gt;
превратить хоть в nano, хоть в IDE Visual C++.&lt;br /&gt;
&lt;br /&gt;
По количеству расширений Emacs оставляет Vim&lt;br /&gt;
далеко позади. Да и функциональность Vim’овских&lt;br /&gt;
скриптов по сравнению с расширениями Emacs оставляет&lt;br /&gt;
желать лучшего. Так, например, Vim’овского аналога&lt;br /&gt;
Emacs Code Browser (ecb) и LaTeX-preview мне найти так и&lt;br /&gt;
не удалось, как не удалось найти и других, не столь&lt;br /&gt;
значимых для меня вещей. Emacs лучше интегрируется&lt;br /&gt;
со сторонними приложениями: попробуйте заставить Vim&lt;br /&gt;
работать с Maxima или Gnuplot. В основном это заслуга&lt;br /&gt;
Emacs Lisp, на котором очень просто дописываются те&lt;br /&gt;
функции, которых вам не хватает.&lt;br /&gt;
&lt;br /&gt;
Если редактор вам нужен только для правки&lt;br /&gt;
конфигурационных файлов, то вам одинаково подойдут&lt;br /&gt;
и Emacs, и Vim. Если же вы намерены получить от&lt;br /&gt;
текстового редактора нечто большее, то просто&lt;br /&gt;
установите и тот, и другой, и вы сами без труда найдете&lt;br /&gt;
эти самые N причин. Ну а если вы не хотите тратить&lt;br /&gt;
время на чтение документации и настройку «какого-то&lt;br /&gt;
там текстового редактора», то может быть стоит&lt;br /&gt;
попробовать jEdit?&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=ido.el&lt;br /&gt;
|Содержание=Несмотря на функцию автодополнения, вас наверняка раздражает&lt;br /&gt;
отсутствие в Emacs обычного диалога открытия файла. Но ведь будь в Emacs&lt;br /&gt;
такой диалог, любители делать-все-только-с-клавиатуры справедливо бы&lt;br /&gt;
возмутились. Тем не менее, к Emacs есть отличное дополнение, делающее&lt;br /&gt;
открытие файла и переключение между буферами невероятно простым и&lt;br /&gt;
приятным. Называется оно ido, и, как и все дополнения к Emacs, представляет&lt;br /&gt;
собой обычный Elisp-скрипт. Получить ido.el можно на сайте разработчика&lt;br /&gt;
http://www.cua.dk. Давайте рассмотрим установку этого дополнения.&lt;br /&gt;
&lt;br /&gt;
Для активации и использования функций любого дополнения Emacs, его&lt;br /&gt;
нужно поместить в директорию автоматической загрузки (load-path).&lt;br /&gt;
Рекомендую вам создать в своем домашнем каталоге директорию emacs, в&lt;br /&gt;
которой будут располагаться дополнения. Скопируйте ido.el в ~/emacs/, а в .emacs добавьте следующие строки:&lt;br /&gt;
 (add-to-list ‘load-path «~/emacs»)&lt;br /&gt;
 (require ‘ido)&lt;br /&gt;
Первая строка добавляет ~/emacs в список директорий автозагрузки,&lt;br /&gt;
вторая говорит о том, что при запуске редактора необходимо загрузить файл&lt;br /&gt;
ido.el. Это значит, что теперь в редакторе стали доступны функции&lt;br /&gt;
дополнения ido.el – в данном случае их имена начинаются с ido-. Однако для&lt;br /&gt;
активации дополнения этого недостаточно, нужно еще включить ido-режим:&lt;br /&gt;
 (ido-mode t)&lt;br /&gt;
Слово «t» в различных диалектах языка Lisp означает «true». Тем самым вы&lt;br /&gt;
включили дополнение, и теперь можете посмотреть, как будет огранизовано&lt;br /&gt;
открытие файла (нажмите C-x C-f). Отныне к этой комбинации привязана&lt;br /&gt;
функция ido-find-file (это произошло после включение режима ido-mode).&lt;br /&gt;
Для перемещения между директориями в ido-find-file можно использовать&lt;br /&gt;
кнопки-стрелки, для выбора файла/директории – Enter, для выхода в&lt;br /&gt;
родительский каталог – Backspace. Намного удобнее, чем обычный find-file, не&lt;br /&gt;
правда ли? Подобным же образом теперь работает и переключение между&lt;br /&gt;
буферами (C-x C-b).&lt;br /&gt;
&lt;br /&gt;
Если вы будете постоянно пользоваться этим дополнением, логично было бы&lt;br /&gt;
переназначить функции ido-find-file и ido-switch-buffer на более удобные&lt;br /&gt;
комбинации:&lt;br /&gt;
 (global-set-key [f1] ‘ido-find-file)&lt;br /&gt;
 (global-set-key [f11] ‘ido-switch-buffer)&lt;br /&gt;
[[Изображение:img 77 85 1.png|thumb|center|570px|Вот так преобразился процесс открытия файлов и переключения между буферами.]]&lt;br /&gt;
|Ширина=}}&lt;/div&gt;</summary>
		<author><name>Guest</name></author>	</entry>

	</feed>