Emacs as a Python IDE Emacs Programming General Major modes - - PowerPoint PPT Presentation

emacs as a python ide
SMART_READER_LITE
LIVE PREVIEW

Emacs as a Python IDE Emacs Programming General Major modes - - PowerPoint PPT Presentation

Emacs as a Python IDE Noufal Ibrahim Introduction Emacs as a Python IDE Emacs Programming General Major modes Utilites Noufal Ibrahim Power tools Work tracking Introduction Consulting software developer Task tracking Task collection


slide-1
SLIDE 1

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Emacs as a Python IDE

Noufal Ibrahim

Consulting software developer

PyCon India 2011 - Symbiosys, Pune

http://nibrahim.net.in @noufalibrahim noufal@nibrahim.net.in

slide-2
SLIDE 2

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Outline

Introduction Emacs Programming General Major modes Utilites Power tools Work tracking Introduction Task tracking Task collection Finally References

slide-3
SLIDE 3

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

What is Emacs?

◮ Programmers editor. Customisable using elisp.

◮ Customisability is a feature (not an add on). ◮ Hence lots of “applications” in Emacs.

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

slide-4
SLIDE 4

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

What is Emacs?

◮ Programmers editor. Customisable using elisp.

◮ Customisability is a feature (not an add on). ◮ Hence lots of “applications” in Emacs.

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

slide-5
SLIDE 5

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

What is Emacs?

◮ Programmers editor. Customisable using elisp.

◮ Customisability is a feature (not an add on). ◮ Hence lots of “applications” in Emacs.

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

slide-6
SLIDE 6

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

What is Emacs?

◮ Programmers editor. Customisable using elisp.

◮ Customisability is a feature (not an add on). ◮ Hence lots of “applications” in Emacs.

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

slide-7
SLIDE 7

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

◮ Common terms have different meanings. ◮ Major modes are “environments”. ◮ Minor modes are “utilities”.

slide-8
SLIDE 8

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

◮ Common terms have different meanings. ◮ Major modes are “environments”. ◮ Minor modes are “utilities”.

slide-9
SLIDE 9

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

◮ Common terms have different meanings. ◮ Major modes are “environments”. ◮ Minor modes are “utilities”.

slide-10
SLIDE 10

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Elisp

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

slide-11
SLIDE 11

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Elisp

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

slide-12
SLIDE 12

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Elisp

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

slide-13
SLIDE 13

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Elisp

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

slide-14
SLIDE 14

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Elisp

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

slide-15
SLIDE 15

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Useful features

◮ The kill ring

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

the ring.

◮ Keyboard Macros

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

◮ Expansion

◮ Expand abbreviations intelligently.

slide-16
SLIDE 16

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Useful features

◮ The kill ring

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

the ring.

◮ Keyboard Macros

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

◮ Expansion

◮ Expand abbreviations intelligently.

slide-17
SLIDE 17

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Useful features

◮ The kill ring

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

the ring.

◮ Keyboard Macros

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

◮ Expansion

◮ Expand abbreviations intelligently.

slide-18
SLIDE 18

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-19
SLIDE 19

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-20
SLIDE 20

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-21
SLIDE 21

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-22
SLIDE 22

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-23
SLIDE 23

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-24
SLIDE 24

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-25
SLIDE 25

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Major modes

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

community.

◮ Both provide

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

slide-26
SLIDE 26

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python.el

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

slide-27
SLIDE 27

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python.el

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

slide-28
SLIDE 28

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python.el

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

slide-29
SLIDE 29

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python.el

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

slide-30
SLIDE 30

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python.el

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

slide-31
SLIDE 31

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python.el

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

slide-32
SLIDE 32

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python-mode.el

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

slide-33
SLIDE 33

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python-mode.el

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

slide-34
SLIDE 34

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python-mode.el

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

slide-35
SLIDE 35

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python-mode.el

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

slide-36
SLIDE 36

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

python-mode.el

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

slide-37
SLIDE 37

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PyMacs

◮ PyMacs is a library that allows Emacs extensions to

be written in Python.

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

slide-38
SLIDE 38

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PyMacs

◮ PyMacs is a library that allows Emacs extensions to

be written in Python.

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

slide-39
SLIDE 39

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PyMacs

◮ PyMacs is a library that allows Emacs extensions to

be written in Python.

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

slide-40
SLIDE 40

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PyMacs

◮ PyMacs is a library that allows Emacs extensions to

be written in Python.

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

slide-41
SLIDE 41

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Virtualenv integration

◮ virtualenv.el allows setting virtualenv for

Emacs.

◮ Simply specify the virtualenv and the major modes

will use it.

◮ Never worked for me. :( ◮ Available at

https://github.com/aculich/virtualenv.el

slide-42
SLIDE 42

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Virtualenv integration

◮ virtualenv.el allows setting virtualenv for

Emacs.

◮ Simply specify the virtualenv and the major modes

will use it.

◮ Never worked for me. :( ◮ Available at

https://github.com/aculich/virtualenv.el

slide-43
SLIDE 43

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Virtualenv integration

◮ virtualenv.el allows setting virtualenv for

Emacs.

◮ Simply specify the virtualenv and the major modes

will use it.

◮ Never worked for me. :( ◮ Available at

https://github.com/aculich/virtualenv.el

slide-44
SLIDE 44

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Virtualenv integration

◮ virtualenv.el allows setting virtualenv for

Emacs.

◮ Simply specify the virtualenv and the major modes

will use it.

◮ Never worked for me. :( ◮ Available at

https://github.com/aculich/virtualenv.el

slide-45
SLIDE 45

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PDBTrack

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

trick.

◮ When the interpreter enters the debugger, Emacs

will track the active file.

◮ Works out of the box for both modes.

slide-46
SLIDE 46

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PDBTrack

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

trick.

◮ When the interpreter enters the debugger, Emacs

will track the active file.

◮ Works out of the box for both modes.

slide-47
SLIDE 47

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PDBTrack

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

trick.

◮ When the interpreter enters the debugger, Emacs

will track the active file.

◮ Works out of the box for both modes.

slide-48
SLIDE 48

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

PDBTrack

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

trick.

◮ When the interpreter enters the debugger, Emacs

will track the active file.

◮ Works out of the box for both modes.

slide-49
SLIDE 49

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Syntax checkers

◮ Emacs has flymake-mode to run compliations and

highlight errors.

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

slide-50
SLIDE 50

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Syntax checkers

◮ Emacs has flymake-mode to run compliations and

highlight errors.

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

slide-51
SLIDE 51

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Syntax checkers

◮ Emacs has flymake-mode to run compliations and

highlight errors.

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

slide-52
SLIDE 52

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Syntax checkers

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

slide-53
SLIDE 53

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Syntax checkers

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

slide-54
SLIDE 54

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Syntax checkers

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

slide-55
SLIDE 55

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Syntax checkers

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

slide-56
SLIDE 56

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-57
SLIDE 57

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-58
SLIDE 58

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-59
SLIDE 59

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-60
SLIDE 60

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-61
SLIDE 61

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-62
SLIDE 62

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-63
SLIDE 63

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Rope

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

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

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

slide-64
SLIDE 64

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

CEDET

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

slide-65
SLIDE 65

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

CEDET

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

slide-66
SLIDE 66

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

CEDET

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

slide-67
SLIDE 67

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

CEDET

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

slide-68
SLIDE 68

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

CEDET

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

slide-69
SLIDE 69

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org mode

◮ Rule #6: Always mention org-mode in an Emacs

talk.

◮ Org mode is an outline mode that can also be used

as a PIM and to keep notes.

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

slide-70
SLIDE 70

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org mode

◮ Rule #6: Always mention org-mode in an Emacs

talk.

◮ Org mode is an outline mode that can also be used

as a PIM and to keep notes.

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

slide-71
SLIDE 71

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org mode

◮ Rule #6: Always mention org-mode in an Emacs

talk.

◮ Org mode is an outline mode that can also be used

as a PIM and to keep notes.

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

slide-72
SLIDE 72

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org mode

◮ Rule #6: Always mention org-mode in an Emacs

talk.

◮ Org mode is an outline mode that can also be used

as a PIM and to keep notes.

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

slide-73
SLIDE 73

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

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

slide-74
SLIDE 74

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

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

slide-75
SLIDE 75

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

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

slide-76
SLIDE 76

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

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

slide-77
SLIDE 77

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Basics

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

slide-78
SLIDE 78

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Sample tasks

slide-79
SLIDE 79

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Agenda

slide-80
SLIDE 80

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Sources of tasks

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

slide-81
SLIDE 81

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Sources of tasks

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

slide-82
SLIDE 82

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Sources of tasks

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

slide-83
SLIDE 83

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Sources of tasks

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

slide-84
SLIDE 84

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Sources of tasks

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

slide-85
SLIDE 85

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Sources of tasks

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

slide-86
SLIDE 86

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org-capture

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

slide-87
SLIDE 87

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org-capture

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

slide-88
SLIDE 88

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org-capture

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

slide-89
SLIDE 89

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org-capture

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

slide-90
SLIDE 90

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org-capture

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

slide-91
SLIDE 91

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Org-capture

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

slide-92
SLIDE 92

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Resources

◮ http://www.emacswiki.org/emacs/PythonProgrammingInEmacs ◮ http://orgmode.org/ and http://members.optusnet.com.au/ charles57/GTD/ ◮ http://nibrahim.net.in/2011/07/17/my_org_mode_setup.html ◮ https://github.com/nibrahim/Config-files

slide-93
SLIDE 93

Emacs as a Python IDE Noufal Ibrahim Introduction

Emacs

Programming

General Major modes Utilites Power tools

Work tracking

Introduction Task tracking Task collection

Finally

References

Questions