Transcript
Page 1: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Emacs as a Python IDE

Noufal Ibrahim

Consulting software developer

PyCon India 2011 - Symbiosys, Pune

http://nibrahim.net.in@noufalibrahim

[email protected]

Page 2: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Outline

IntroductionEmacs

ProgrammingGeneralMajor modesUtilitesPower tools

Work trackingIntroductionTask trackingTask collection

FinallyReferences

Page 3: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

What is Emacs?

I Programmers editor. Customisable using elisp.I Customisability is a feature (not an add on).I Hence lots of “applications” in Emacs.

I Widely ported.I Older than many of us.I Almost religious following.

Page 4: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

What is Emacs?

I Programmers editor. Customisable using elisp.I Customisability is a feature (not an add on).I Hence lots of “applications” in Emacs.

I Widely ported.I Older than many of us.I Almost religious following.

Page 5: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

What is Emacs?

I Programmers editor. Customisable using elisp.I Customisability is a feature (not an add on).I Hence lots of “applications” in Emacs.

I Widely ported.I Older than many of us.I Almost religious following.

Page 6: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

What is Emacs?

I Programmers editor. Customisable using elisp.I Customisability is a feature (not an add on).I Hence lots of “applications” in Emacs.

I Widely ported.I Older than many of us.I Almost religious following.

Page 7: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Common terms have different meanings.

I Major modes are “environments”.I Minor modes are “utilities”.

Page 8: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Common terms have different meanings.

I Major modes are “environments”.I Minor modes are “utilities”.

Page 9: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Common terms have different meanings.

I Major modes are “environments”.I Minor modes are “utilities”.

Page 10: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Elisp

I Emacs’ own dialect of lisp.I Customisation and configuration language.I All modes, utils etc. implemented using this.I Quite old, not very fast but works.I Arguably one of the most popular lisp dialects today.

Page 11: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Elisp

I Emacs’ own dialect of lisp.I Customisation and configuration language.I All modes, utils etc. implemented using this.I Quite old, not very fast but works.I Arguably one of the most popular lisp dialects today.

Page 12: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Elisp

I Emacs’ own dialect of lisp.I Customisation and configuration language.I All modes, utils etc. implemented using this.I Quite old, not very fast but works.I Arguably one of the most popular lisp dialects today.

Page 13: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Elisp

I Emacs’ own dialect of lisp.I Customisation and configuration language.I All modes, utils etc. implemented using this.I Quite old, not very fast but works.I Arguably one of the most popular lisp dialects today.

Page 14: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Elisp

I Emacs’ own dialect of lisp.I Customisation and configuration language.I All modes, utils etc. implemented using this.I Quite old, not very fast but works.I Arguably one of the most popular lisp dialects today.

Page 15: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Useful features

I The kill ringI Each copy or kill (cut) is saved in a ring.I After doing a yank (paste), you can cycle through

the ring.I Keyboard Macros

I Save a long sequence of keystrokes.I Replay them (sometimes with minor changes).

I ExpansionI Expand abbreviations intelligently.

Page 16: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Useful features

I The kill ringI Each copy or kill (cut) is saved in a ring.I After doing a yank (paste), you can cycle through

the ring.I Keyboard Macros

I Save a long sequence of keystrokes.I Replay them (sometimes with minor changes).

I ExpansionI Expand abbreviations intelligently.

Page 17: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Useful features

I The kill ringI Each copy or kill (cut) is saved in a ring.I After doing a yank (paste), you can cycle through

the ring.I Keyboard Macros

I Save a long sequence of keystrokes.I Replay them (sometimes with minor changes).

I ExpansionI Expand abbreviations intelligently.

Page 18: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 19: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 20: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 21: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 22: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 23: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 24: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 25: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Major modes

I There are 2 major modes for Python.I python.el developed by the Emacs community.I python-mode.el developed by the Python

community.I Both provide

I Navigation.I Semantic selection.I Inferior interpreter process.I Intelligent indentation.I PDBTrack support.

Page 26: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python.el

I Distributed as part of Emacs.I The newer of the modes.I Less features than python-mode.el.I Uses an emacs.py module to introspect buffer code.I Inferior interpreter to evaluate buffers.I Buffer examination using pylint.

Page 27: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python.el

I Distributed as part of Emacs.I The newer of the modes.I Less features than python-mode.el.I Uses an emacs.py module to introspect buffer code.I Inferior interpreter to evaluate buffers.I Buffer examination using pylint.

Page 28: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python.el

I Distributed as part of Emacs.I The newer of the modes.I Less features than python-mode.el.I Uses an emacs.py module to introspect buffer code.I Inferior interpreter to evaluate buffers.I Buffer examination using pylint.

Page 29: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python.el

I Distributed as part of Emacs.I The newer of the modes.I Less features than python-mode.el.I Uses an emacs.py module to introspect buffer code.I Inferior interpreter to evaluate buffers.I Buffer examination using pylint.

Page 30: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python.el

I Distributed as part of Emacs.I The newer of the modes.I Less features than python-mode.el.I Uses an emacs.py module to introspect buffer code.I Inferior interpreter to evaluate buffers.I Buffer examination using pylint.

Page 31: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python.el

I Distributed as part of Emacs.I The newer of the modes.I Less features than python-mode.el.I Uses an emacs.py module to introspect buffer code.I Inferior interpreter to evaluate buffers.I Buffer examination using pylint.

Page 32: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python-mode.el

I Separately developed by the Python community.I Older and more features in addition to python.el.I Uses pymacs for code completion.I Has an accompanying doctest-mode.I Better syntax highlighting.

Page 33: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python-mode.el

I Separately developed by the Python community.I Older and more features in addition to python.el.I Uses pymacs for code completion.I Has an accompanying doctest-mode.I Better syntax highlighting.

Page 34: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python-mode.el

I Separately developed by the Python community.I Older and more features in addition to python.el.I Uses pymacs for code completion.I Has an accompanying doctest-mode.I Better syntax highlighting.

Page 35: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python-mode.el

I Separately developed by the Python community.I Older and more features in addition to python.el.I Uses pymacs for code completion.I Has an accompanying doctest-mode.I Better syntax highlighting.

Page 36: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

python-mode.el

I Separately developed by the Python community.I Older and more features in addition to python.el.I Uses pymacs for code completion.I Has an accompanying doctest-mode.I Better syntax highlighting.

Page 37: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PyMacs

I PyMacs is a library that allows Emacs extensions tobe written in Python.

I Runs a separate Python process.I Communicates via. a lispy protocol.I Many extensions use this.

Page 38: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PyMacs

I PyMacs is a library that allows Emacs extensions tobe written in Python.

I Runs a separate Python process.I Communicates via. a lispy protocol.I Many extensions use this.

Page 39: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PyMacs

I PyMacs is a library that allows Emacs extensions tobe written in Python.

I Runs a separate Python process.I Communicates via. a lispy protocol.I Many extensions use this.

Page 40: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PyMacs

I PyMacs is a library that allows Emacs extensions tobe written in Python.

I Runs a separate Python process.I Communicates via. a lispy protocol.I Many extensions use this.

Page 41: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Virtualenv integration

I virtualenv.el allows setting virtualenv forEmacs.

I Simply specify the virtualenv and the major modeswill use it.

I Never worked for me. :(I Available athttps://github.com/aculich/virtualenv.el

Page 42: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Virtualenv integration

I virtualenv.el allows setting virtualenv forEmacs.

I Simply specify the virtualenv and the major modeswill use it.

I Never worked for me. :(I Available athttps://github.com/aculich/virtualenv.el

Page 43: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Virtualenv integration

I virtualenv.el allows setting virtualenv forEmacs.

I Simply specify the virtualenv and the major modeswill use it.

I Never worked for me. :(I Available athttps://github.com/aculich/virtualenv.el

Page 44: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Virtualenv integration

I virtualenv.el allows setting virtualenv forEmacs.

I Simply specify the virtualenv and the major modeswill use it.

I Never worked for me. :(I Available athttps://github.com/aculich/virtualenv.el

Page 45: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PDBTrack

I Following code as it is stepped through the debugger.I Useful for the import pdb; pdb.set_trace()

trick.I When the interpreter enters the debugger, Emacs

will track the active file.I Works out of the box for both modes.

Page 46: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PDBTrack

I Following code as it is stepped through the debugger.I Useful for the import pdb; pdb.set_trace()

trick.I When the interpreter enters the debugger, Emacs

will track the active file.I Works out of the box for both modes.

Page 47: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PDBTrack

I Following code as it is stepped through the debugger.I Useful for the import pdb; pdb.set_trace()

trick.I When the interpreter enters the debugger, Emacs

will track the active file.I Works out of the box for both modes.

Page 48: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

PDBTrack

I Following code as it is stepped through the debugger.I Useful for the import pdb; pdb.set_trace()

trick.I When the interpreter enters the debugger, Emacs

will track the active file.I Works out of the box for both modes.

Page 49: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Syntax checkers

I Emacs has flymake-mode to run compliations andhighlight errors.

I This can integrate with pyflakes or pylint.I Highlights possible errors in your code as you type.

Page 50: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Syntax checkers

I Emacs has flymake-mode to run compliations andhighlight errors.

I This can integrate with pyflakes or pylint.I Highlights possible errors in your code as you type.

Page 51: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Syntax checkers

I Emacs has flymake-mode to run compliations andhighlight errors.

I This can integrate with pyflakes or pylint.I Highlights possible errors in your code as you type.

Page 52: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Syntax checkers

I Example with pylint.I Uses (ugly) tooltips by default.I Uses heuristics so not totally accurate.I Not virtualenv aware.

Page 53: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Syntax checkers

I Example with pylint.I Uses (ugly) tooltips by default.I Uses heuristics so not totally accurate.I Not virtualenv aware.

Page 54: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Syntax checkers

I Example with pylint.I Uses (ugly) tooltips by default.I Uses heuristics so not totally accurate.I Not virtualenv aware.

Page 55: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Syntax checkers

I Example with pylint.I Uses (ugly) tooltips by default.I Uses heuristics so not totally accurate.I Not virtualenv aware.

Page 56: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 57: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 58: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 59: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 60: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 61: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 62: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 63: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Rope

I Rope is a Python refactoring library.I You need PyMacs.I Makes refactoring tools available.

I Boilerplate for classes, functions etc.I Extraction, inlining.I Completion and assistance.I Finding occurrences.

I Undo is outside the regular emacs flow.I I don’t like things that generate code.

Page 64: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

CEDET

I Heavy duty IDE. Part of Emacs now.I Project supportI Mostly geared towards static languages.I Speedbar (file/class/function tree)

Page 65: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

CEDET

I Heavy duty IDE. Part of Emacs now.I Project supportI Mostly geared towards static languages.I Speedbar (file/class/function tree)

Page 66: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

CEDET

I Heavy duty IDE. Part of Emacs now.I Project supportI Mostly geared towards static languages.I Speedbar (file/class/function tree)

Page 67: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

CEDET

I Heavy duty IDE. Part of Emacs now.I Project supportI Mostly geared towards static languages.I Speedbar (file/class/function tree)

Page 68: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

CEDET

I Heavy duty IDE. Part of Emacs now.I Project supportI Mostly geared towards static languages.I Speedbar (file/class/function tree)

Page 69: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org mode

I Rule #6: Always mention org-mode in an Emacstalk.

I Org mode is an outline mode that can also be usedas a PIM and to keep notes.

I Very powerful and worth exploring.I Hard to describe without a demo.

Page 70: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org mode

I Rule #6: Always mention org-mode in an Emacstalk.

I Org mode is an outline mode that can also be usedas a PIM and to keep notes.

I Very powerful and worth exploring.I Hard to describe without a demo.

Page 71: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org mode

I Rule #6: Always mention org-mode in an Emacstalk.

I Org mode is an outline mode that can also be usedas a PIM and to keep notes.

I Very powerful and worth exploring.I Hard to describe without a demo.

Page 72: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org mode

I Rule #6: Always mention org-mode in an Emacstalk.

I Org mode is an outline mode that can also be usedas a PIM and to keep notes.

I Very powerful and worth exploring.I Hard to describe without a demo.

Page 73: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Create tasks.I Set schedules and deadlines.I Clock time spent.I Create agendas.I And finish them off.

Page 74: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Create tasks.I Set schedules and deadlines.I Clock time spent.I Create agendas.I And finish them off.

Page 75: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Create tasks.I Set schedules and deadlines.I Clock time spent.I Create agendas.I And finish them off.

Page 76: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Create tasks.I Set schedules and deadlines.I Clock time spent.I Create agendas.I And finish them off.

Page 77: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Basics

I Create tasks.I Set schedules and deadlines.I Clock time spent.I Create agendas.I And finish them off.

Page 78: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Sample tasks

Page 79: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Agenda

Page 80: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Sources of tasks

I #TBD while coding.I Via. Email (“Can you do this?”).I Via. Chat message (“Can you do this?”).I Via browser (“Nice article. I need to read this.”).I Via. real life (“Need to buy textbooks.”).I Repetitive tasks (“Need to pay rents”).

Page 81: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Sources of tasks

I #TBD while coding.I Via. Email (“Can you do this?”).I Via. Chat message (“Can you do this?”).I Via browser (“Nice article. I need to read this.”).I Via. real life (“Need to buy textbooks.”).I Repetitive tasks (“Need to pay rents”).

Page 82: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Sources of tasks

I #TBD while coding.I Via. Email (“Can you do this?”).I Via. Chat message (“Can you do this?”).I Via browser (“Nice article. I need to read this.”).I Via. real life (“Need to buy textbooks.”).I Repetitive tasks (“Need to pay rents”).

Page 83: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Sources of tasks

I #TBD while coding.I Via. Email (“Can you do this?”).I Via. Chat message (“Can you do this?”).I Via browser (“Nice article. I need to read this.”).I Via. real life (“Need to buy textbooks.”).I Repetitive tasks (“Need to pay rents”).

Page 84: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Sources of tasks

I #TBD while coding.I Via. Email (“Can you do this?”).I Via. Chat message (“Can you do this?”).I Via browser (“Nice article. I need to read this.”).I Via. real life (“Need to buy textbooks.”).I Repetitive tasks (“Need to pay rents”).

Page 85: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Sources of tasks

I #TBD while coding.I Via. Email (“Can you do this?”).I Via. Chat message (“Can you do this?”).I Via browser (“Nice article. I need to read this.”).I Via. real life (“Need to buy textbooks.”).I Repetitive tasks (“Need to pay rents”).

Page 86: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org-capture

I Single keystroke (C-c r) to capture something.I Captures current “context” as an org-mode task.I Works with email, code, chat buffers.I Hipster PDA to capture real life tasks.I Org can natively handle repetitive tasks.I Once in org, you can schedule etc. it.

Page 87: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org-capture

I Single keystroke (C-c r) to capture something.I Captures current “context” as an org-mode task.I Works with email, code, chat buffers.I Hipster PDA to capture real life tasks.I Org can natively handle repetitive tasks.I Once in org, you can schedule etc. it.

Page 88: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org-capture

I Single keystroke (C-c r) to capture something.I Captures current “context” as an org-mode task.I Works with email, code, chat buffers.I Hipster PDA to capture real life tasks.I Org can natively handle repetitive tasks.I Once in org, you can schedule etc. it.

Page 89: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org-capture

I Single keystroke (C-c r) to capture something.I Captures current “context” as an org-mode task.I Works with email, code, chat buffers.I Hipster PDA to capture real life tasks.I Org can natively handle repetitive tasks.I Once in org, you can schedule etc. it.

Page 90: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org-capture

I Single keystroke (C-c r) to capture something.I Captures current “context” as an org-mode task.I Works with email, code, chat buffers.I Hipster PDA to capture real life tasks.I Org can natively handle repetitive tasks.I Once in org, you can schedule etc. it.

Page 91: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Org-capture

I Single keystroke (C-c r) to capture something.I Captures current “context” as an org-mode task.I Works with email, code, chat buffers.I Hipster PDA to capture real life tasks.I Org can natively handle repetitive tasks.I Once in org, you can schedule etc. it.

Page 92: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Resources

I http://www.emacswiki.org/emacs/PythonProgrammingInEmacs

I http://orgmode.org/ andhttp://members.optusnet.com.au/ charles57/GTD/

I http://nibrahim.net.in/2011/07/17/my_org_mode_setup.html

I https://github.com/nibrahim/Config-files

Page 93: Emacs as a Python IDE - PyCon India · Emacs as a Python IDE Noufal Ibrahim Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task

Emacs as aPython IDE

Noufal Ibrahim

IntroductionEmacs

ProgrammingGeneral

Major modes

Utilites

Power tools

Work trackingIntroduction

Task tracking

Task collection

FinallyReferences

Questions


Recommended