New to python, do I need an IDE or is vim still good enough?

Chris Angelico rosuav at
Fri Jan 4 16:34:56 CET 2013

On Fri, Jan 4, 2013 at 6:34 PM, Anssi Saari <as at> wrote:
> Ben Finney <ben+python at> writes:
>> And any decent Unix-alike (most OSen apart from Windows) comes with its
>> own IDE: the shell, a good text editor (Vim or Emacs being the primary
>> candidates), and a terminal multiplexor (such as ‘tmux’ or GNU Screen).
> Just curious since I read the same thing in a programming book recently
> (21st century C). So what's the greatness that terminal multiplexors
> offer over tabbed terminals? Especially for software development?

The main thing is that you'll need a _lot_ of terminals. On my Debian
and Ubuntu GNOME-based systems, I tend to assign one desktop to each
of several "modes", usually with my (tabbed) editor and browser on the
first desktop. At the moment, desktop #3 (hit Ctrl-Alt-RightArrow
twice) is for building Pike, running Gypsum, and git-managing Gypsum;
desktop #2 is for my poltergeist controllers (MIDI to my keyboard),
with a few different windows depending on what I'm doing; and desktop
#1 is... everything else. SciTE, Google Chrome, a couple of Nautilus
windows, and roughly twenty terminals doing various things like
Command & Conquer Renegade, iptables management, SSH sessions to two
other servers, the Yosemite project... wow, what a lot of random junk
I have running on Sikorsky at the moment. It seems I currently have 25
instances of bash running, in addition to the non-bash windows.

Tabbed terminals probably would work fine, but I've personally just
never gotten accustomed to any. You will want some kind of system that
lets you group related shell sessions together (eg one for 'make', one
for running the app, and one for git, all relating to one project),
and add more terminals to a group as required. The most important
editing key is command recall (up arrow or similar), and keeping three
or four different command histories per project is hugely


More information about the Python-list mailing list