SlideShare a Scribd company logo
1 of 22
Download to read 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

More Related Content

What's hot

C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.Igor Shkulipa
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.Igor Shkulipa
 
359.краткое введение в систему octave
359.краткое введение в систему octave359.краткое введение в систему octave
359.краткое введение в систему octaveivanov1566359955
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.genericsmuqaddas_m
 
Язык программирования C#
Язык программирования C#Язык программирования C#
Язык программирования C#Dmitri Soshnikov
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.Igor Shkulipa
 
Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Unguryan Vitaliy
 
алгоритмы stl
алгоритмы stlалгоритмы stl
алгоритмы stlmcroitor
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++mcroitor
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введениеmcroitor
 
Java. Многопоточность.
Java. Многопоточность.Java. Многопоточность.
Java. Многопоточность.Unguryan Vitaliy
 
библиотеки программирования
библиотеки программированиябиблиотеки программирования
библиотеки программированияmcroitor
 
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)ScalaNsk
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в javaUnguryan Vitaliy
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологииUnguryan Vitaliy
 
06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системеRoman Brovko
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияPlatonov Sergey
 

What's hot (20)

лек9 10
лек9 10лек9 10
лек9 10
 
C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.
 
PHP7 - что ожидать?
PHP7 - что ожидать?PHP7 - что ожидать?
PHP7 - что ожидать?
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
 
359.краткое введение в систему octave
359.краткое введение в систему octave359.краткое введение в систему octave
359.краткое введение в систему octave
 
Oop java.generics
Oop java.genericsOop java.generics
Oop java.generics
 
Язык программирования C#
Язык программирования C#Язык программирования C#
Язык программирования C#
 
Reactive extensions
Reactive extensionsReactive extensions
Reactive extensions
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.
 
Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.Java. Работа с файловой системой. Потоки ввода-вывода.
Java. Работа с файловой системой. Потоки ввода-вывода.
 
алгоритмы stl
алгоритмы stlалгоритмы stl
алгоритмы stl
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введение
 
Java. Многопоточность.
Java. Многопоточность.Java. Многопоточность.
Java. Многопоточность.
 
библиотеки программирования
библиотеки программированиябиблиотеки программирования
библиотеки программирования
 
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
 
06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе06 - Java. Ввод/вывод, доступ к файловой системе
06 - Java. Ввод/вывод, доступ к файловой системе
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализация
 

Viewers also liked

Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiYandex
 
JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"
JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"
JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"GeeksLab Odessa
 
Валкин, Мокевнин — Развитие IT-среды в Ульяновске
Валкин, Мокевнин — Развитие IT-среды в УльяновскеВалкин, Мокевнин — Развитие IT-среды в Ульяновске
Валкин, Мокевнин — Развитие IT-среды в УльяновскеDaria Oreshkina
 
Александр Жарков — Эволюция команды разработки: взгляд изнутри
Александр Жарков — Эволюция команды разработки: взгляд изнутриАлександр Жарков — Эволюция команды разработки: взгляд изнутри
Александр Жарков — Эволюция команды разработки: взгляд изнутриDaria Oreshkina
 
PiterPy 2015 - Трансдюсеры и Python
PiterPy 2015 - Трансдюсеры и PythonPiterPy 2015 - Трансдюсеры и Python
PiterPy 2015 - Трансдюсеры и PythonMax Klymyshyn
 
Транзакционная память (on Russian)
Транзакционная память (on Russian)Транзакционная память (on Russian)
Транзакционная память (on Russian)JIghtuse
 
Fact Extraction (ideograph)
Fact Extraction (ideograph)Fact Extraction (ideograph)
Fact Extraction (ideograph)NLPseminar
 
извлечение объектов и фактов из текстов
извлечение объектов и фактов из текстовизвлечение объектов и фактов из текстов
извлечение объектов и фактов из текстовYandex
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemAvleen Vig
 
Rambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и SwiftRambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и SwiftRAMBLER&Co
 
FlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in ClojureFlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in Clojuredenyslebediev
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental PrinciplesIntro C# Book
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016Brendan Gregg
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Brendan Gregg
 

Viewers also liked (20)

Объектная модель многофункциональных словарей
Объектная модель многофункциональных словарейОбъектная модель многофункциональных словарей
Объектная модель многофункциональных словарей
 
Методы морфологического анализа текстов
Методы морфологического анализа текстовМетоды морфологического анализа текстов
Методы морфологического анализа текстов
 
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiСергей Татаринцев — Тестирование CSS-регрессий с Gemini
Сергей Татаринцев — Тестирование CSS-регрессий с Gemini
 
JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"
JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"
JSLab. Максим Климишин. "Трансдюсеры, CSP каналы, неизменяемые структуры данных"
 
Валкин, Мокевнин — Развитие IT-среды в Ульяновске
Валкин, Мокевнин — Развитие IT-среды в УльяновскеВалкин, Мокевнин — Развитие IT-среды в Ульяновске
Валкин, Мокевнин — Развитие IT-среды в Ульяновске
 
Александр Жарков — Эволюция команды разработки: взгляд изнутри
Александр Жарков — Эволюция команды разработки: взгляд изнутриАлександр Жарков — Эволюция команды разработки: взгляд изнутри
Александр Жарков — Эволюция команды разработки: взгляд изнутри
 
PiterPy 2015 - Трансдюсеры и Python
PiterPy 2015 - Трансдюсеры и PythonPiterPy 2015 - Трансдюсеры и Python
PiterPy 2015 - Трансдюсеры и Python
 
Транзакционная память (on Russian)
Транзакционная память (on Russian)Транзакционная память (on Russian)
Транзакционная память (on Russian)
 
Fact Extraction (ideograph)
Fact Extraction (ideograph)Fact Extraction (ideograph)
Fact Extraction (ideograph)
 
Извлечение знаний и фактов из текстов
Извлечение знаний и фактов из текстовИзвлечение знаний и фактов из текстов
Извлечение знаний и фактов из текстов
 
извлечение объектов и фактов из текстов
извлечение объектов и фактов из текстовизвлечение объектов и фактов из текстов
извлечение объектов и фактов из текстов
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log system
 
Rambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и SwiftRambler.iOS #5: VIPER и Swift
Rambler.iOS #5: VIPER и Swift
 
FlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in ClojureFlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in Clojure
 
Clojure #2 (2014)
Clojure #2 (2014)Clojure #2 (2014)
Clojure #2 (2014)
 
Clojure #1
Clojure #1Clojure #1
Clojure #1
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 

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

Михаил Бараблин - "Emacs & Rails"
Михаил Бараблин - "Emacs & Rails"Михаил Бараблин - "Emacs & Rails"
Михаил Бараблин - "Emacs & Rails"railsclub
 
About emacs
About emacsAbout emacs
About emacsjskonst
 
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложенийWebinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложенийDenis Vasilyev
 
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиБэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиITCrowd Almaty
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Pavel Chertorogov
 
Теория и практика обработки естественного языка
Теория и практика обработки естественного языкаТеория и практика обработки естественного языка
Теория и практика обработки естественного языка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
 

Similar to Emacs: многофункциональный комбайн (20)

Михаил Бараблин - "Emacs & Rails"
Михаил Бараблин - "Emacs & Rails"Михаил Бараблин - "Emacs & Rails"
Михаил Бараблин - "Emacs & Rails"
 
Emacs и Rails
Emacs и RailsEmacs и Rails
Emacs и Rails
 
About emacs
About emacsAbout emacs
About emacs
 
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложенийWebinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
Webinar: Возможности RAD Studio 10 Seattle для разработки Windows 10 приложений
 
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиБэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)
 
Теория и практика обработки естественного языка
Теория и практика обработки естественного языкаТеория и практика обработки естественного языка
Теория и практика обработки естественного языка
 
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.
 

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