Website development
Open source
March 2012 19

Emacs для начинающих: введение

Ist das Emacs? Sehr gut!



Начну с небольшой истории. Лет так 15 назад ездил я на подработку сисадмином программистом в славный городе Mannheim, West Germany. Когда я приехал на работу и развернул своё рабочее окружение, большинство дойчей вообще не сильно поняли в чём я работаю, а вот директор конторы сразу мне сказал: «Ist das Emacs? Sehr gut!», добавив также что никто кто из текущих программистов не смог его освоить. А по честному, не такой уж я особенный — мне просто повезло: готовый конфиг мне дал один добрый человек, и помог мне разобраться с редактором на первых шагах. Я, в свою очередь хочу поделиться своим опытом с остальными, и решил сделать серию статей для начинающих и не очень, с рассмотрением разных полезных фич emacs.

В этой статье я также хочу пошатнуть сложившийся миф — что Emacs — сложный в работе/настройке редактор. Я считаю, что правильно начав, процесс изучения не будет сложным, и надеюсь, доставит Вам массу удовольствия от использования удобного, мощного и быстрого инструмента как в работе так в жизни.

Первое — слабость emacs в его силе. Легкость освоения (learnability) пострадала от простоты переконфигурирования — каждый перестраивает радактор под себя, и часто настолько кардинально, что другой пользователь того же редактора может его не узнать.

Мой конфиг .emacs обростал новыми фичами последние 15 лет, и в этом одна из проблем Emacs: дать готовый конфиг в руки начинающему просто, а вот будет ли с этого толк? Расшарю я его допустим сейчас на Web (как впрочем уже давно собственно и сделано) как сотни других энтузиастов. Но, начинаещему это этого проку мало, т к скорее всего он сможет сделать только две вещи (из которых скорее всего не будет делать ни одну, по причине изначальной лени): (1) или взять конфиг целиком со всеми кастомными наворотами и дополнениями, или (2) попытаться скрестить «бульдога с носорогом» и надёргать рецептов из нескольких конфигов разных вендоров — а это долго, муторно.

Разрабочики Emacs пытаются снизить барьер входа новичков пытаясь выдать что то похожее на общепритяные стандарты (CUA mode: Ctrl+C, Ctrl+V, запись *scratch*, и т п) но этого явно мало для редактора с 20ти летней историей — барьер для освоения держится на высоте, отсекая новичков.

Я решил пойти другим путём и облегчить понимание того, насколько им нужна та или иная фича, сделав демонстрацию каждой. Вместо того, чтобы просто выложить свой конфиг (типа «кто надо тот разберётся») я постараюсь его сам разобрать по кусочкам, объяснив каждый отдельный модуль и настройку.

Ведь не бывает идеального конфига «для всех», и то, что хорошо для меня, может оказаться неудобным допустим тому же веб дизайнеру.

Поэтому, эта статья не будет описывать какую то отдельную фичу — я пройдусь по всем, удобным с моей точки зрения. Это будет [не]большой Tutorial который позволит выбрать то, что нужно каждому по отдельности.

Введение



В введении в emacs показан сам редактор, комбинации клавиш для начального изучения, и объяснения по ходу дела базовой концепции редактирования.

Изучение emacs чем-то сродни изучению иностранного языка: материала много, комбинации клавиш учить надо (не обязательно, но надо, если хотите, чтобы была практическая польза), некоторые новые концепции надо понять.

Базовые клавиши
  • C-x C-f — открыть файл
  • C-x C-s — записать файл
  • C-x C-c — выход из редактора


Buffers (buffer — открытый файл)
  • C-x b — перейти в другой открытый файл
  • C-x C-b — показать все открытые файлы,
  • C-x k — закрыть файл (но не редактор)


Окна
  • C-x 2 — разбить окно по горизонтали
  • C-x 3 — разбить окно по вертикали
  • C-x 0 — закрыть окно
  • C-x 1 — оставить только одно открытое окно


Видео:


После просмотра этого видео также рекомендую пройти английский туториал по emacs, который доступен в самом редакторе по клавише: C-h t.

IDO-mode



Удобный режим для быстрого доступа к файлам, открытым файлам, и другим спискам внутри редактора. В совокупности с активированным uniquify режимом позволяет *очень* быстро найти нужное.Особенности: по клавише C+<пробел> начинается ввод новой подстроки. По клавише C-f идёт fallback (возврат) на обычный (не-IDO) ввод.

Видео:


Настройка:
(require 'uniquify)
(require 'ido)
(ido-mode t)


Работа с файлами удалённо по протоколам SSH, FTP, Samba и т п



Возможно это не самая навороченная фича emacs, т к многие скажут что намного проще
зайти на удалённый сервер консолью и там уже всё отредактировать. Но консоль, увы не так удобна как GUI приложение, также часто файл удобнее и быстрее редактируется локально, и записывается уже результат, а не медленные нажатия клавиш в случае консоли. Открыв несколько файлов удалённо, легко можно перебрасывать куски текста любой длинны и содержания, избегая использования мышового буфера.

Видео:


Настройка:
(require 'tramp)


В заключение


Emacs — действительно не сильно сложный редактор. Но это как раз тот пример, когда освоив минимум, нелья на этом останавливаться, ибо сила emacs — в доступных библиотеках и дополнительных функциях. Единственный способ добиться максимального результата — это выучить комбинации клавиш, названия функций и сами по себе концепции и функционал.

В следующих статьях по этой теме я опишу работу с Dired (файл менеджер), работу с системами контроля версий на примере SVN и Mercurial, работу по поиску текста (rgrep), закладки по тексту, интерактивный показ ошибок, среду разработки для Python и многое другое. Просьба коментировать какие именно дополнительные функции интересны.
+52
7.5k 288
Comments 134
Top of the day