This is a bit overloaded presentation. This is a internal presentation where I show how to use Emacs to hack python code and to organize your life a-la GTD. Link to my configuration:
What is GNU Emacs? Emacs is the extensible, customizable, self-documenting real- time display editor. –– the EmacsManual Text editor with more 30 years of development. Comes from the Emacs family of Editors developed at MIT AI Lab. Started by Richard Stallman in the 70's.
Emacs characteristics Extensible Modern Customizable Multiplatform Support of many programming languages and format Integrates with external tools (i.e. Latex, compilers, etc…)
Editor Wars Editor war is the common name for the rivalry between users of the Emacs and Vi (Vim) text editors. The rivalry has become a lasting part of hacker culture and the free software community. – https://en.wikipedia.org/wiki/Editor_war
Everything is a command Eveything is a command (i.e. a function) Command can be link to keyboard-shortcut For example C t r l - x C t r l - s will execute s a v e - b u f f e r Abbreviated to C - x C - s . Other keys: M e t a (A l t ) -> M Search and execute using M - x (e.g M - x s e a r c h - f o r w a r d )
Modes Emacs contain editing modes that alter its basic behaviour Syntax highlighting Keyboard shortcut Autocompletion / Snippets Interaction with the Text Divided into major and minor modes 1 major mode and many minor modes. e.g. p y t h o n - m o d e is a m a j o r mode and f l y m a k e and p r o j e c t i l e are minor modes.
Elpy IDE Like environment in python. Use either J e d i or R o p e as backend. Integrates or replace previously mentioned modes. Custom project support Refactoring powers (imports, autopep8) Demo
My Personal History Looking for ways to organize my mental flow Tried different technologies. Todo Applications (Things, TimeTo, Things, etc) Note Taking applications (Tomboy, NotationalVelocity, etc)
Enter Org-Mode Org mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system.
Interactive (org-babel) Literate programming in many languages Supports Python, Ruby, Perl, Bash Store small script Create Notebooks for any technology. The Babel Fish is small, yellow, and simultaneously translates from one spoken language to another. – The Hitchhiker's Guide to the Galaxy, Douglas Adams
Export and Publishing org-mode is a light way publishing format supported by Github Export to many formats including (HTML, PDF, Markdown, Texinfo, Man, etc..) This presentation (using o r g - r e v e a l ) Org-Mode is Awesome!
And more, much more…: Calendar sysmtes (iCal, Google Calendar) Outlook Webbrowsers Github Sublime (Org-mode plugin) Trello and similars 40+ programming languages (org-babel) More….
Final Thoughts Emacs provide an nice environment to code in Python. Emacs/Org-mode can act as a powerful Personal Information Management It adapts to your workflow and not the opposite Also can be used as a publishing tool and documentation format.