SlideShare a Scribd company logo
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 Swapping
             EMACS: EMACS Makes A Computer Slow
      Emacs требует знания Emacs Lisp для конфигурации
             Используйте customize
             Emacs Lisp нужен в основном для хуков
             Emacs Lisp – простой язык
      Emacs слишком долго стартует




Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   5 / 22
Установка и настройка
      Бинарные пакеты
             Linux
             MS Windows
             Mac OS X
      Базовые конфигурации
             Emacs Starter Kit
             Emacs 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 – работа с отладчиком прямо в Emacs
             CTags/ETags/GNU Global/CScope
             CEDET/Semantic
             ECB
      Java
             JDEE
             malabar-mode




Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   9 / 22
Emacs для программистов: Lisp-like языки
      Режимы для редактирования кода
             lisp-mode
             emacs-lisp-mode
             scheme-mode & Geiser
             clojure-mode
             paredit
      Интерактивная работа
      SLIME
             поддержка разных Lisp’ов
             интерактивная работа с кодом, в том числе и удаленная
             дополнение имен
             отладчик
             доступ к документации (online & в коде)
             навигация по коду
             инспектор объектов
Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   10 / 22
Emacs для программистов: прочие языки
      Haskell
             haskell-mode
             haskell-emacs
      OCaml: tuareg-mode
      Erlang
             erlang-mode
             Distel
      Scala
             scala-mode
             Ensime
      Python
             python-mode
             pymacs/rope/. . .
      Ruby
      и еще десятки. . .
Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   11 / 22
Emacs для программистов: IDE-related
      CEDET
             Semantic
             EDE
             SRecode
             Speedbar
             EIEIO
             COGRE
             интеграция с внешними утилитами
                     CTags
                     GNU Global
                     CScope
      ECB




Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   12 / 22
Emacs для программистов: контроль версий
      VC и DVC – унифицированный интерфейс к системам
      контроля версий
      magit – удобная поддержка Git
      psvn – Subversion
      ahg & mercurial.el – Mercurial
      Darcs
      Perforce
      ClearCase
      PCL CVS
      + всяческая экзотика. . .




Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   13 / 22
Emacs для программистов: разные утилиты
      EDiff
      Flymake
      mk-project/eproject
      Интеграция с отладчиками
      yasnippet и другие шаблонизаторы
      auto-complete & company-mode
      ctags/etags/cscope/ebrowser
      работа с SQL
      EAssist
      ElDoc


Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   14 / 22
Работа с текстом
      AUCTeX/LTEX-preview/RefTeX/BibTeX
             A

      nxml-mode
      nxhtml-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, LTEX, etc.
                                           A

      Таблицы с формулами
      Babel: literate programming + активный код
      MobileOrg: iOS/Android

Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   16 / 22
Communications/Messaging
      Email & News
             Gnus
             Wanderlust
             MH-E
             Mailcrypt/EasyPG
      IRC
      Jabber/GTalk
      Twitter




Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   17 / 22
Полезные пакеты
      tramp
      anything
      ido
      dired
      calc
      ESS
      Shell/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/PHP
              HTML/JavaScript
              JSP
              ...
       Не всегда стабильная работа на MS Windows
       Нет встроенного веб-браузера :-)




 Alex Ott (alexott@gmail .com)   Emacs: многофункциональный комбайн   December 10, 2011   20 / 22
Дополнительная информация
      Emacs Manual
      Emacs Lisp Introduction/Reference
      EmacsWiki: http://emacswiki.org/
      StackOverflow:
      http://stackoverflow.com/questions/tagged/emacs
      Planet Emacsen: http://planet.emacsen.org/
      Русская планета Emacs: http://planet.emacsen.org/ru/
      Списки рассылки
      IRC канал #emacs на irc.freenode.net
      EmacsRookie: http://emacsrookie.com/
      EmacsRocks: http://emacsrocks.com/ (скринкасты)


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




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

More Related Content

PDF
Введение в Clojure (Margincon 2010)
PDF
Emacs: многофункциональный комбайн
ODP
Михаил Бараблин - "Emacs & Rails"
ODP
PPT
About emacs
PDF
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
PDF
Бэкенд, фронтенд — всё смешалось (nodkz)
PDF
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Введение в Clojure (Margincon 2010)
Emacs: многофункциональный комбайн
Михаил Бараблин - "Emacs & Rails"
About emacs
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки

Similar to EMACS: универсальный комбайн (20)

PPT
Теория и практика обработки естественного языка
PDF
Zend Framework и мультиязычность
ODP
игровая логика, проблемы и решения
PPSX
378 васильев куницын
PDF
Теория языков программирования некоторые слайды к лекциям
PPTX
6-лекция.pptx
PPTX
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
PPTX
Net framework
ODP
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
PPTX
СРС ADi.pptx интернет технологии и образование
PPTX
Custom Language Plugin for JetBrains IDEA
PPTX
Доклад в Mail.ru 01.11.12
PPT
XML Native Database на примере SednaXML
PDF
C++ STL & Qt. Занятие 11.
PDF
Used but not famous, or why Native JavaScript matters.pdf
PDF
Помоги ближнему, или Как потоки помогают друг другу
PDF
Помоги ближнему, или Как потоки помогают друг другу
PPT
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...
PDF
Erlang мгновенное просветление
Теория и практика обработки естественного языка
Zend Framework и мультиязычность
игровая логика, проблемы и решения
378 васильев куницын
Теория языков программирования некоторые слайды к лекциям
6-лекция.pptx
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Net framework
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
СРС ADi.pptx интернет технологии и образование
Custom Language Plugin for JetBrains IDEA
Доклад в Mail.ru 01.11.12
XML Native Database на примере SednaXML
C++ STL & Qt. Занятие 11.
Used but not famous, or why Native JavaScript matters.pdf
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другу
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...
Erlang мгновенное просветление
Ad

More from Vasil Remeniuk (20)

PPTX
Product Minsk - РТБ и Программатик
PDF
Работа с Akka Сluster, @afiskon, scalaby#14
PDF
Cake pattern. Presentation by Alex Famin at scalaby#14
PDF
Scala laboratory: Globus. iteration #3
PPTX
Testing in Scala by Adform research
PPTX
Spark Intro by Adform Research
PPTX
Types by Adform Research, Saulius Valatka
PPTX
Types by Adform Research
PPTX
Scalding by Adform Research, Alex Gryzlov
PPTX
Scalding by Adform Research, Alex Gryzlov
PPTX
Spark by Adform Research, Paulius
PPTX
Scala Style by Adform Research (Saulius Valatka)
PPTX
Spark intro by Adform Research
PPTX
SBT by Aform Research, Saulius Valatka
PDF
Scala laboratory: Globus. iteration #2
PPTX
Testing in Scala. Adform Research
PDF
Scala laboratory. Globus. iteration #1
PDF
Cassandra + Spark + Elk
PDF
Опыт использования Spark, Основано на реальных событиях
PDF
ETL со Spark
Product Minsk - РТБ и Программатик
Работа с Akka Сluster, @afiskon, scalaby#14
Cake pattern. Presentation by Alex Famin at scalaby#14
Scala laboratory: Globus. iteration #3
Testing in Scala by Adform research
Spark Intro by Adform Research
Types by Adform Research, Saulius Valatka
Types by Adform Research
Scalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex Gryzlov
Spark by Adform Research, Paulius
Scala Style by Adform Research (Saulius Valatka)
Spark intro by Adform Research
SBT by Aform Research, Saulius Valatka
Scala laboratory: Globus. iteration #2
Testing in Scala. Adform Research
Scala laboratory. Globus. iteration #1
Cassandra + Spark + Elk
Опыт использования Spark, Основано на реальных событиях
ETL со Spark
Ad

EMACS: универсальный комбайн

  • 1. Emacs: многофункциональный комбайн Alex Ott alexott@gmail .com December 10, 2011 Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 1 / 22
  • 2. О чем пойдет речь? 1 Распространенные мифы 2 Работа с Emacs 3 Emacs для программистов 4 Прочие применения 5 Разное 6 Демонстрация Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 2 / 22
  • 3. Мифы: Emacs тяжел в освоении Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 3 / 22
  • 4. Мифы: Вам нужно знать все сочетания клавиш Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 4 / 22
  • 5. Еще мифы Emacs потребляет слишком много ресурсов Eight Megabytes And Constantly Swapping EMACS: EMACS Makes A Computer Slow Emacs требует знания Emacs Lisp для конфигурации Используйте customize Emacs Lisp нужен в основном для хуков Emacs Lisp – простой язык Emacs слишком долго стартует Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 5 / 22
  • 6. Установка и настройка Бинарные пакеты Linux MS Windows Mac OS X Базовые конфигурации Emacs Starter Kit Emacs Prelude Дополнительная настройка механизмы customize: customize-variable, customize-face и т.д. hook’и Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 6 / 22
  • 7. Начало работы Пройдите встроенный учебник (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
  • 8. Режимы, пакеты, буфера и т.д. Режимы Основные (major) Вспомогательные (minor) Пакеты встроенные пакеты – поставляемые с Emacs сторонние пакеты – установленные пользователем (вручную, или через package.el, el-get, и т.д.) Основные объекты Emacs Буфер/Файл Окно Фрейм Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 8 / 22
  • 9. Emacs для программистов: C/C++/Java/. . . C/C++ CC-mode основной режим для редактирования кода на C/C++/Obj-C/Java/. . . подсветка синтаксиса gdb – работа с отладчиком прямо в Emacs CTags/ETags/GNU Global/CScope CEDET/Semantic ECB Java JDEE malabar-mode Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 9 / 22
  • 10. Emacs для программистов: Lisp-like языки Режимы для редактирования кода lisp-mode emacs-lisp-mode scheme-mode & Geiser clojure-mode paredit Интерактивная работа SLIME поддержка разных Lisp’ов интерактивная работа с кодом, в том числе и удаленная дополнение имен отладчик доступ к документации (online & в коде) навигация по коду инспектор объектов Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 10 / 22
  • 11. Emacs для программистов: прочие языки Haskell haskell-mode haskell-emacs OCaml: tuareg-mode Erlang erlang-mode Distel Scala scala-mode Ensime Python python-mode pymacs/rope/. . . Ruby и еще десятки. . . Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 11 / 22
  • 12. Emacs для программистов: IDE-related CEDET Semantic EDE SRecode Speedbar EIEIO COGRE интеграция с внешними утилитами CTags GNU Global CScope ECB Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 12 / 22
  • 13. Emacs для программистов: контроль версий VC и DVC – унифицированный интерфейс к системам контроля версий magit – удобная поддержка Git psvn – Subversion ahg & mercurial.el – Mercurial Darcs Perforce ClearCase PCL CVS + всяческая экзотика. . . Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 13 / 22
  • 14. Emacs для программистов: разные утилиты EDiff Flymake mk-project/eproject Интеграция с отладчиками yasnippet и другие шаблонизаторы auto-complete & company-mode ctags/etags/cscope/ebrowser работа с SQL EAssist ElDoc Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 14 / 22
  • 15. Работа с текстом AUCTeX/LTEX-preview/RefTeX/BibTeX A nxml-mode nxhtml-mode ((X)HTML со вставками CSS & JavaScript) Поддержка разных Wiki FlySpell Table-mode ... Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 15 / 22
  • 16. Org-Mode TODO-менеджер/планировщик задач/Wiki/GTD/. . . Plain Text! Поддерживает: Таги Даты начала и окончания Приоритеты Зависимости между задачами многое другое. . . Богатые возможности экспорта - HTML, LTEX, etc. A Таблицы с формулами Babel: literate programming + активный код MobileOrg: iOS/Android Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 16 / 22
  • 17. Communications/Messaging Email & News Gnus Wanderlust MH-E Mailcrypt/EasyPG IRC Jabber/GTalk Twitter Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 17 / 22
  • 18. Полезные пакеты tramp anything ido dired calc ESS Shell/EShell Desktop + сотни пакетов. . . Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 18 / 22
  • 19. ... Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 19 / 22
  • 20. Ложка дегтя. . . Отсутствие threading/синхронность Не особо хорошая поддержка смешанного кода HTML/PHP HTML/JavaScript JSP ... Не всегда стабильная работа на MS Windows Нет встроенного веб-браузера :-) Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 20 / 22
  • 21. Дополнительная информация Emacs Manual Emacs Lisp Introduction/Reference EmacsWiki: http://emacswiki.org/ StackOverflow: http://stackoverflow.com/questions/tagged/emacs Planet Emacsen: http://planet.emacsen.org/ Русская планета Emacs: http://planet.emacsen.org/ru/ Списки рассылки IRC канал #emacs на irc.freenode.net EmacsRookie: http://emacsrookie.com/ EmacsRocks: http://emacsrocks.com/ (скринкасты) Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 21 / 22
  • 22. Вопросы E-mail: alexott@gmail.com Sites: http://alexott.net, http://gplus.to/alexott Alex Ott (alexott@gmail .com) Emacs: многофункциональный комбайн December 10, 2011 22 / 22