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

Steven D'Aprano steve+comp.lang.python at
Tue Jan 1 04:46:25 CET 2013

On Sat, 29 Dec 2012 14:00:23 -0500, Mitya Sirenef wrote:

> I think the general idea is that with editors like Vim you don't get
> distracted by having to do some kind of an editor task, letting you keep
> your full attention on the code logic. For instance, if I need to change
> a block inside parens, I type ci) (stands for change inside parens),
> while with a regular editor I'd have to do it manually and by the time
> I'm done, I'd forget the bigger picture of what I'm doing with the code.

See, by the time I remembered what obscure (to me) command to type, or 
searched the help files and the Internet, I'd have forgotten what the 
hell it was I was trying to do. Well, almost. My memory is not quite that 
bad, but it would certainly be a much bigger disruption to my coding than 
just doing the edit by hand.

I do love the power of command line tools, but I think that for rich 
applications like editors, the interface is so clunky that I'd rather use 
a less-powerful editor, and do more editing manually, than try to 
memorize "hundreds" of commands.

With a GUI app, I can run the mouse over the menus and see a high-level 
overview of everything the app can do in a matter of a second or two. 
(Perhaps three or five seconds if the app over-uses hierarchical menus.) 
But with a text interface, commands are much less discoverable. I can 
also use *spacial* memory to zero in on commands much more easily than 
verbal memory -- I have no idea whether the command I want is called 
"Spam" or "Ham" or "Tinned Bully Beef", but I know it's in the top 
quarter of the "Lunch" menu, and I will recognise it when I see it.

On the other hand, it's a lot harder to use a GUI app over a slow SSH 
connection to a remote machine in a foreign country over a flaky link 
than it is to use a command line or text-interface app.

> Another example: >ap stands for "indent a paragraph (separated by blank
> lines)". And there are many dozens if not hundreds such commands that
> let you stay focused on the logic of your code.

Ah yes, the famous "a for indent" mnemonic. *wink*

> The trade-off, of course, is that you have to remember all (or most) of
> the commands, but I figured if I spend the next 20-30+ years programming
> in some version of Vim, it's well worth the initial investment.
> By the way, to help me remember the commands, I wrote a small script
> that lets me type in a few characters of a command or its description
> and filters out the list of matching commands. It really helps,
> especially when I change a lot of my mappings.

It seems to me, that by the time I would have searched for the right 
command to use, decided which of the (multiple) matching commands is the 
right one, then used the command, it would have been quicker and less 
distracting to have just done the editing by hand. But now I'm just 
repeating myself.


More information about the Python-list mailing list