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

Tim Chase python.list at tim.thechases.com
Fri Jan 4 11:59:23 EST 2013


On 01/04/13 01:34, Anssi Saari wrote:
> Ben Finney <ben+python at benfinney.id.au> 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?
>
> For sure I use screen at the remote end of ssh connections where I don't
> want the application like irssi to die if the connection goes down but
> other than that?

The reattaching is a nice feature--especially since you can start 
some work in one location, then SSH into the box remotely and 
reattach, resuming where you left off.  Other nice things include

- if it's a remote machine, only connecting once.  This is more a 
factor if you need to enter a password, rather than using 
passwordless public/private key auth.  But even with passwordless 
key-pairs, you still have to type "ssh user at host" rather than 
"{prefix key}c" to create a new connection on the same machine.

- the ability to monitor windows for activity/silence (at least GNU 
Screen offered this; I haven't dug for it yet in tmux which I'm 
learning).  This is nice for backgrounding a compile and being 
notified when it goes silent (usually means it's done) or watching a 
long-running quiet process to get notification when it finally has 
some output.  I used this feature a LOT back when I did C/C++ work.

- both offer the ability to do screen-sharing with other parties, as 
well as granting them various permissions (user X can watch but not 
interact with the session, while user Y can issue commands to the 
terminal as well) which is nice for remotely pair programming, or 
teaching somebody the ropes or troubleshooting.

- depending on your tabbed terminal windows, terminal multiplexors 
usually offer some split-screen abilities (last I checked, GNU 
Screen only offered horizontal splits; tmux had both vertical & 
horizontal splits).  As a Vim user (which doesn't have a way to 
include a terminal window inside Vim unless you rebuild it with 
unofficial patches), this allows me to have an editor in one 
{screen|tmux} window and a shell in the other and be able to see 
them together.  I don't use it much, but it's nice to have when I do 
need it.

- tmux offers the ability to transmit keyboard input to all 
linked/synchronized windows, so you can connect to multiple servers 
and then issue the same commands and they get run across all of 
them.  I believe Screen offers a similar ability to broadcast 
keystrokes to all windows, but with a clunkier interface.  Sort of a 
poor-man's "clusterssh".  I've not needed this one, but it's there 
in case you manage clusters or develop/deploy with them.


Those are just a few of the things that come to mind.  Some might be 
replicated by a tabbed terminal window; others less so.

-tkc






More information about the Python-list mailing list