Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python and Life Hacking with Emacs

Python and Life Hacking with Emacs

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:

https://github.com/mfcabrera/dotemacs

Miguel Cabrera

October 09, 2015
Tweet

More Decks by Miguel Cabrera

Other Decks in Technology

Transcript

  1. 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.
  2. Emacs characteristics Extensible Modern Customizable Multiplatform Support of many programming

    languages and format Integrates with external tools (i.e. Latex, compilers, etc…)
  3. 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
  4. 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 )
  5. 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.
  6. Configuring Emacs Emacs is fully customizable But sometimes it has

    too many parameters Too many modules doing similar things Might get frustrating…
  7. Emacs Packaging System Starting with E m a c s

    2 4 . x , Emacs comes with a standard package system. It is now heavily used to create distributions.
  8. python.el Comes with Emacs by default Basic facilities to browse

    data and interact with python shell. When in doubt C - h m
  9. Complimentary Modes w h i t e s p a

    c e - m o d e F l y m a k e / F l y c h e c k Y a s n i p p e t s P r o j e c t i l e
  10. 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
  11. 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)
  12. 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.
  13. Basic concepts and usage Plain Text Note Taking Task Management

    Project Planning Authoring and Publishing Mobile Support
  14. 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
  15. 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!
  16. 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….
  17. 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.