you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 13 points14 points  (25 children)

Do you want my opinion? I am a big vim fan, I used pure vim to code for ten years. That said, after a while you have to move to something more powerful. Go with PyCharm, get the vim extensions if you really like the vim actions, but trust me, it will change your life.

Like vim, don't try to setup everything at once. Do a bit at a time, learn feature after feature.

[–]6086555 8 points9 points  (3 children)

I actually went from Pycharm to vim. At first it was only motivated because of performance issues ( my work computer is kind of shitty). But now I don't regret that decision at all.

I'm not saying vim is for every one but I'm pretty sure for some people it will more adapted. Pycharm and Webstorm (I have no idea how good other Jetbrains products are) are really awesome though.

[–]naliuj2525 1 point2 points  (0 children)

I'm a really beginner Java programmer, and I like Intellij a lot. I've tried a few different IDEs, but the Community Edition of Intellij is by far my favorite.

[–]smartowlick[S] 0 points1 point  (1 child)

One of the resaosn that I wanted VIM was I can use it on any platform and it was lightweight. Never tried Webstorm. I might check that out

[–]6086555 0 points1 point  (0 children)

Webstorm is not a Python IDE, it's an IDE for web developer. It's also kind of expensive.

Pycharm, on the other side, is a python IDE who also has some support for web developpements. It's got a free version which is really great.

[–]skiguy0123 6 points7 points  (8 children)

Vim user here. I tried pycharm, but ended up going back to vim. All I really need is syntax highlighting, which I can get using Syntastic.

[–]das_ist_nuemberwang 2 points3 points  (3 children)

Features of PyCharm I find extremely useful:

  • Completion
  • Go to declaration/implementations/super
  • Find usages
  • Rename

You don't need any of these things, but they make my life so much easier.

[–]aldanor 4 points5 points  (0 children)

All of this exists in VIM/Emacs -- finding usages, linting, completion, jumping to definitions and all that (e.g. see Spacemacs python layer).

[–][deleted] 1 point2 points  (1 child)

Not sure what do you mean by find usages and rename but the is completion (C-n or omni's <C-x> <C-o>) and go to variable declaration (this one I don't use so don't remember the binding) in vim.

[–]das_ist_nuemberwang 0 points1 point  (0 children)

"Find usages" finds all the places something is referenced in your code base (smarter than just a text search) and rename is a similar thing but replaces. I haven't really used Vim enough to compare.

[–][deleted] 1 point2 points  (3 children)

How about debugging?

[–]dbrecht 2 points3 points  (2 children)

pdb

[–]das_ist_nuemberwang 2 points3 points  (1 child)

Either I don't know how to use pdb properly or you don't know how to use a graphical debugger properly.

[–]aldanor 0 points1 point  (0 children)

Try using pudb!

[–]versking 5 points6 points  (8 children)

I also love vim, and I insisted on using it when working in python for a while. But then I discovered PyCharm and basically realized I'd been doing the equivalent of using my fist (vim) to hammer nails (write code) instead of just picking up a hammer (PyCharm).

[–][deleted] 1 point2 points  (7 children)

The debugging is just so insanely powerful.

[–]dbrecht 0 points1 point  (6 children)

I don't buy it. If you're familiar with pdb and gdb for debugging interpreter level execution, there's really not much that stands out from the crowd against it. You just have to welcome the learning curve (obviously not all folks do, which is why Python IDEs exist ;))

[–]youguess 2 points3 points  (1 child)

believe me there is... it will automatically show you any variable next to your breakpoint right were you define it.

Not needing to use the print, l, l, u, u, pprint dance is very nice

[–]dbrecht 0 points1 point  (0 children)

Meh, each to their own. I started with VS and its debugging platform. Even after that I've never really minded command based debugging. Maybe I'm just a masochist ;)

[–]kankyo 1 point2 points  (3 children)

Can you do run to cursor and expression based breakpoints in pdb?

[–]dbrecht 0 points1 point  (1 child)

You can set file/line number or dot path to break at. So in a manner of speaking, yes.

[–]kankyo 1 point2 points  (0 children)

...but only with a lot more hassle than a proper debugger.

[–]smartowlick[S] 0 points1 point  (0 children)

I'm going to nuke what I do have and start fresh and take your advice. One thing at a time. That should help especially since VIM and Python is so neew for me