[Tutor] Good Text Editor/IDE for Python

Cameron Simpson cs at zip.com.au
Mon Sep 1 03:57:08 CEST 2014


On 01Sep2014 11:13, Steven D'Aprano <steve at pearwood.info> wrote:
>On Sun, Aug 31, 2014 at 09:12:24PM -0300, Juan Christian wrote:
>> I've been using PyCharm to code in Python but it seems a bit "overpowered"
>> for this task, and there are some annoying bugs. I used Sublime Text 2 in
>> the past, but it seems to be dead now (last update was JUN/2013), so I
>> don't really know any good options.
>>
>> What do you guys use to code?
[...]
>You don't say what operating system you're using. I use Linux, and as
>far as I am concerned, the best IDE for Linux is Linux itself: [...]
>
>http://blog.sanctum.geek.nz/series/unix-as-ide/
>http://michaelochurch.wordpress.com/2013/01/09/ide-culture-vs-unix-philosophy/

I'm mostly on OSX, but of course that is a UNIX platform as well:-) So my IDE 
is somewhat like Steven's. BTW, there are many many discussions in the 
python-list archives on the various development environments people use.

>My IDE is:
>
>- A good programmer's editor, ideally one that supports a tabbed
>  interface. I normally use kate (from KDE 3, not KDE 4) or geany, or
>  at a pinch kwrite although it's not tabbed.

I'm a vim user, and use it for everything (email, programming, any other plain 
text editing). I've been using vi since, um, maybe 1985, and my fingers know 
it. Of course, I use emacs editing keystrokes (a very limited subset of it, 
anyway) in interactive shells, including the Python interactive prompt; it is 
better in that scenario for me because it is modeless - vi is modal, which I 
find a win for coding.

I don't use tabs or subwindows/panes in the editor. I do use tabs in the 
terminal (and my editor runs in a pane in my terminal).

>- A web browser, for looking up documentation and doing web searches.

Me too. And I find it very useful to have local copies of the Python doco on my 
desktop; accessing a local copy is really fast and also works when offline. I 
keep a local copy of the latest Python 2 and Python 3 doco to hand. This does 
rely on the doco having a good page size choice; I like a "page" to be a 
chapter. The Python doco does this well, a "page" per module. By contrast, the 
PostgreSQL doco is extremely finely sliced and very irritating to browse.

I use tabs heavily in the web browser.

>- A good tabbed terminal application. Konsole from KDE is my
>  preferred choice, but just about any one will do.

On OSX the winning choice is iTerm2; I use it exclusively. Tabs and also 
subpanes. It has many good features.

>In the terminal, I'll open anything up to half a dozen tabs. One for
>running source control (git or hg) and other utilities, another for
>running the application I'm writing and performing tests, and at least
>one interactive Python session for trying out small snippets and looking
>up interactive help.

I use a tab per dev environment. (So a tab for my main project, and I use 
another tab for whichever of its branches I'm working in.)

Within each tab I usually split the tab into 3 vertical panes: an editor in the 
middle )terminal running vim, for me) and a shell on either side. I open python 
interactive prompts at need as opposed to Steven's always-open instance. On 
occasions I split the vertical panes horizontally when I need an extra terminal 
for something short term.

>Just recently, I've customised my interactive Python with a powerful set
>of tab completion commands, similar to that provided by IPython. While
>typing, if I hit tab, it will try to complete the current variable,
>function, module or file name. I don't know how I programmed without it
>all these years :-)

I must try that sometime.

Cheers,
Cameron Simpson <cs at zip.com.au>

Baldrick: Sir, what shall we do if we stand on a mine?
Edmund: Well, Baldrick - I think the common practice is to jump several metres
         into the air, and scatter yourself in a wide radius on the way down.
                 - _Blackadder_


More information about the Tutor mailing list