22
Emacs: многофункциональный комбайн Alex Ott alexott@gmail . com December 10, 2011 Alex Ott (alexott@gmail . com) Emacs: многофункциональный комбайн December 10, 2011 1 / 22

Emacs: многофункциональный комбайн

Embed Size (px)

DESCRIPTION

Презентация о Emacs, сделанная на 7-й встрече Scala.by: http://scala.by/meetups/2011/12/10/7.html

Citation preview

Emacs: многофункциональный комбайн

Alex Ott

alexott@gmail .com

December 10, 2011

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 1 / 22

О чем пойдет речь?

1 Распространенные мифы

2 Работа с Emacs

3 Emacs для программистов

4 Прочие применения

5 Разное

6 Демонстрация

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 2 / 22

Мифы: Emacs тяжел в освоении

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 3 / 22

Мифы: Вам нужно знать все сочетания клавиш

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 4 / 22

Еще мифы

Emacs потребляет слишком много ресурсов

Eight Megabytes And Constantly SwappingEMACS: EMACS Makes A Computer Slow

Emacs требует знания Emacs Lisp для конфигурации

Используйте customizeEmacs Lisp нужен в основном для хуковEmacs Lisp – простой язык

Emacs слишком долго стартует

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 5 / 22

Установка и настройка

Бинарные пакеты

LinuxMS WindowsMac OS X

Базовые конфигурации

Emacs Starter KitEmacs Prelude

Дополнительная настройка

механизмы customize: customize-variable,customize-face и т.д.hook’и

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 6 / 22

Начало работы

Пройдите встроенный учебник (C-h t)

Научитесь пользоваться справочной системой (C-h i)

Поиск и получение информации

M-x apropos (C-h a) – поиск по регулярному выражениюM-x describe-variable (C-h v) – описание заданнойпеременнойM-x describe-function (C-h f) – описание заданнойфункцииM-x describe-key (C-h k) – описание сочетания клавишM-x describe-mode (C-h m) – описание режима длятекущего буфераC-h ? – справка о справке

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 7 / 22

Режимы, пакеты, буфера и т.д.

РежимыОсновные (major)Вспомогательные (minor)

Пакетывстроенные пакеты – поставляемые с Emacsсторонние пакеты – установленные пользователем (вручную,или через package.el, el-get, и т.д.)

Основные объекты EmacsБуфер/ФайлОкноФрейм

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 8 / 22

Emacs для программистов: C/C++/Java/. . .

C/C++CC-mode

основной режим для редактирования кода наC/C++/Obj-C/Java/. . .подсветка синтаксиса

gdb – работа с отладчиком прямо в EmacsCTags/ETags/GNU Global/CScopeCEDET/SemanticECB

JavaJDEEmalabar-mode

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 9 / 22

Emacs для программистов: Lisp-like языки

Режимы для редактирования кодаlisp-modeemacs-lisp-modescheme-mode & Geiserclojure-modeparedit

Интерактивная работаSLIME

поддержка разных Lisp’овинтерактивная работа с кодом, в том числе и удаленнаядополнение именотладчикдоступ к документации (online & в коде)навигация по кодуинспектор объектов

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 10 / 22

Emacs для программистов: прочие языки

Haskellhaskell-modehaskell-emacs

OCaml: tuareg-modeErlang

erlang-modeDistel

Scalascala-modeEnsime

Pythonpython-modepymacs/rope/. . .

Rubyи еще десятки. . .

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 11 / 22

Emacs для программистов: IDE-related

CEDETSemanticEDESRecodeSpeedbarEIEIOCOGREинтеграция с внешними утилитами

CTagsGNU GlobalCScope

ECB

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 12 / 22

Emacs для программистов: контроль версий

VC и DVC – унифицированный интерфейс к системамконтроля версийmagit – удобная поддержка Gitpsvn – Subversionahg & mercurial.el – MercurialDarcsPerforceClearCasePCL CVS+ всяческая экзотика. . .

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 13 / 22

Emacs для программистов: разные утилиты

EDiffFlymake

mk-project/eproject

Интеграция с отладчиками

yasnippet и другие шаблонизаторы

auto-complete & company-mode

ctags/etags/cscope/ebrowser

работа с SQL

EAssistElDoc

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 14 / 22

Работа с текстом

AUCTeX/LATEX-preview/RefTeX/BibTeX

nxml-modenxhtml-mode ((X)HTML со вставками CSS & JavaScript)

Поддержка разных Wiki

FlySpell

Table-mode. . .

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 15 / 22

Org-Mode

TODO-менеджер/планировщик задач/Wiki/GTD/. . .

Plain Text!Поддерживает:

ТагиДаты начала и окончанияПриоритетыЗависимости между задачамимногое другое. . .

Богатые возможности экспорта - HTML, LATEX, etc.

Таблицы с формулами

Babel: literate programming + активный код

MobileOrg: iOS/Android

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 16 / 22

Communications/Messaging

Email & NewsGnusWanderlustMH-EMailcrypt/EasyPG

IRCJabber/GTalk

Twitter

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 17 / 22

Полезные пакеты

tramp

anything

idodiredcalcESSShell/EShell

Desktop

+ сотни пакетов. . .

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 18 / 22

. . .

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 19 / 22

Ложка дегтя. . .

Отсутствие threading/синхронность

Не особо хорошая поддержка смешанного кодаHTML/PHPHTML/JavaScriptJSP. . .

Не всегда стабильная работа на MS Windows

Нет встроенного веб-браузера :-)

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 20 / 22

Дополнительная информация

Emacs ManualEmacs Lisp Introduction/ReferenceEmacsWiki: http://emacswiki.org/StackOverflow:http://stackoverflow.com/questions/tagged/emacsPlanet Emacsen: http://planet.emacsen.org/Русская планета Emacs: http://planet.emacsen.org/ru/Списки рассылкиIRC канал #emacs на irc.freenode.netEmacsRookie: http://emacsrookie.com/EmacsRocks: http://emacsrocks.com/ (скринкасты)

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 21 / 22

Вопросы

E-mail: [email protected]: http://alexott.net, http://gplus.to/alexott

Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 22 / 22