SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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

Mais conteúdo relacionado

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

Теория и практика обработки естественного языка
Теория и практика обработки естественного языкаТеория и практика обработки естественного языка
Теория и практика обработки естественного языкаNikolay Karpov
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычностьStepan Tanasiychuk
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решенияВладимир Кожаев
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
6-лекция.pptx
6-лекция.pptx6-лекция.pptx
6-лекция.pptxssuserf4667c
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.UNETA
 
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo
 
Custom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEACustom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEAAlexander Zastashkov
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Alex Tutubalin
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXMLSlach
 
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.Igor Shkulipa
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуAlexey Fyodorov
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуCEE-SEC(R)
 
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...sadomovalex
 
Erlang мгновенное просветление
Erlang  мгновенное просветлениеErlang  мгновенное просветление
Erlang мгновенное просветлениеMaxim Sokhatsky
 
автоматическое построение оригинал макетов учебников как отч
автоматическое построение оригинал макетов учебников как отчавтоматическое построение оригинал макетов учебников как отч
автоматическое построение оригинал макетов учебников как отчanna_vereshchagina
 

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

Теория и практика обработки естественного языка
Теория и практика обработки естественного языкаТеория и практика обработки естественного языка
Теория и практика обработки естественного языка
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решения
 
378 васильев куницын
378 васильев куницын378 васильев куницын
378 васильев куницын
 
X text
X textX text
X text
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
6-лекция.pptx
6-лекция.pptx6-лекция.pptx
6-лекция.pptx
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
 
Net framework
Net frameworkNet framework
Net framework
 
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
 
Custom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEACustom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEA
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
 
C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.C++ STL & Qt. Занятие 11.
C++ STL & Qt. Занятие 11.
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другу
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другу
 
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...
Data retrieving in Sharepoint. Camlex.NET - tool for building CAML queries us...
 
Erlang мгновенное просветление
Erlang  мгновенное просветлениеErlang  мгновенное просветление
Erlang мгновенное просветление
 
автоматическое построение оригинал макетов учебников как отч
автоматическое построение оригинал макетов учебников как отчавтоматическое построение оригинал макетов учебников как отч
автоматическое построение оригинал макетов учебников как отч
 
мир без Jsp. thymeleaf 2.0
мир без Jsp. thymeleaf 2.0мир без Jsp. thymeleaf 2.0
мир без Jsp. thymeleaf 2.0
 

Mais de Vasil Remeniuk

Product Minsk - РТБ и Программатик
Product Minsk - РТБ и ПрограмматикProduct Minsk - РТБ и Программатик
Product Minsk - РТБ и ПрограмматикVasil Remeniuk
 
Работа с Akka Сluster, @afiskon, scalaby#14
Работа с Akka Сluster, @afiskon, scalaby#14Работа с Akka Сluster, @afiskon, scalaby#14
Работа с Akka Сluster, @afiskon, scalaby#14Vasil Remeniuk
 
Cake pattern. Presentation by Alex Famin at scalaby#14
Cake pattern. Presentation by Alex Famin at scalaby#14Cake pattern. Presentation by Alex Famin at scalaby#14
Cake pattern. Presentation by Alex Famin at scalaby#14Vasil Remeniuk
 
Scala laboratory: Globus. iteration #3
Scala laboratory: Globus. iteration #3Scala laboratory: Globus. iteration #3
Scala laboratory: Globus. iteration #3Vasil Remeniuk
 
Testing in Scala by Adform research
Testing in Scala by Adform researchTesting in Scala by Adform research
Testing in Scala by Adform researchVasil Remeniuk
 
Spark Intro by Adform Research
Spark Intro by Adform ResearchSpark Intro by Adform Research
Spark Intro by Adform ResearchVasil Remeniuk
 
Types by Adform Research, Saulius Valatka
Types by Adform Research, Saulius ValatkaTypes by Adform Research, Saulius Valatka
Types by Adform Research, Saulius ValatkaVasil Remeniuk
 
Types by Adform Research
Types by Adform ResearchTypes by Adform Research
Types by Adform ResearchVasil Remeniuk
 
Scalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex GryzlovScalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex GryzlovVasil Remeniuk
 
Scalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex GryzlovScalding by Adform Research, Alex Gryzlov
Scalding by Adform Research, Alex GryzlovVasil Remeniuk
 
Spark by Adform Research, Paulius
Spark by Adform Research, PauliusSpark by Adform Research, Paulius
Spark by Adform Research, PauliusVasil Remeniuk
 
Scala Style by Adform Research (Saulius Valatka)
Scala Style by Adform Research (Saulius Valatka)Scala Style by Adform Research (Saulius Valatka)
Scala Style by Adform Research (Saulius Valatka)Vasil Remeniuk
 
Spark intro by Adform Research
Spark intro by Adform ResearchSpark intro by Adform Research
Spark intro by Adform ResearchVasil Remeniuk
 
SBT by Aform Research, Saulius Valatka
SBT by Aform Research, Saulius ValatkaSBT by Aform Research, Saulius Valatka
SBT by Aform Research, Saulius ValatkaVasil Remeniuk
 
Scala laboratory: Globus. iteration #2
Scala laboratory: Globus. iteration #2Scala laboratory: Globus. iteration #2
Scala laboratory: Globus. iteration #2Vasil Remeniuk
 
Testing in Scala. Adform Research
Testing in Scala. Adform ResearchTesting in Scala. Adform Research
Testing in Scala. Adform ResearchVasil Remeniuk
 
Scala laboratory. Globus. iteration #1
Scala laboratory. Globus. iteration #1Scala laboratory. Globus. iteration #1
Scala laboratory. Globus. iteration #1Vasil Remeniuk
 
Cassandra + Spark + Elk
Cassandra + Spark + ElkCassandra + Spark + Elk
Cassandra + Spark + ElkVasil Remeniuk
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхVasil Remeniuk
 

Mais de Vasil Remeniuk (20)

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

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